怎么将现有的 C# 应用程序做成 web 服务( rest api)

2017-06-15 11:29:57 +08:00
 fffflyfish

大家好,这两天做项目遇到一个问题,同事 A 用 C#写了一个 winodws 窗口应用程序,然后同事 B 想调用同事 A 的部分功能,但是同事 B 使用的是 Python 相关的技术栈,如果要把两个人的工作接起来,为现在想到的最好的方式就是把同事 A 的应用程序做成一个 web 服务,就类似 rest api 的形式,但是本人的技术栈都在 python 这边,所以想问下各位大佬,有没有相关的教程或者其他什么建议? 先谢谢各位了

5177 次点击
所在节点    .NET
28 条回复
johnny23
2017-06-15 11:52:23 +08:00
webservice
johnny23
2017-06-15 11:53:23 +08:00
ashx asmx aspx 都可以做 千变万变 都是 http 协议 当然 asmx 可以支持 soap 等
johnny23
2017-06-15 11:53:37 +08:00
@johnny23 还有 wsdl
johnny23
2017-06-15 11:55:38 +08:00
还有 如果不想和 iis 耦合很紧 可以用 owin 这个组件 具体用法博客园多的很
hjc4869
2017-06-15 12:06:49 +08:00
ASP.NET Core MVC 的 Web API
anyele
2017-06-15 12:24:35 +08:00
ASP.NET Web API
fffflyfish
2017-06-15 15:05:41 +08:00
@johnny23 @hjc4869 @anyele 谢谢三位大佬,正是我要找的!
anyele
2017-06-15 15:35:05 +08:00
@fffflyfish #7 建议你直接用 ASP.NETCore
fffflyfish
2017-06-15 16:34:20 +08:00
@anyele 就是直接用 dotnet 这个命令创建吗,我其实也倾向于用这个,毕竟装一个 vs2013 费时费力
anyele
2017-06-15 17:17:06 +08:00
@fffflyfish #9 你要装 VS2017 才能用, 而且现在安装 VS 很快了
anyele
2017-06-15 17:19:31 +08:00
@fffflyfish #9 当然你可以用轻量级的其他的 IDE 比如 jetbrains 家的, 不过我还是推荐 VS2017,毕竟是官方的
fffflyfish
2017-06-15 18:54:41 +08:00
@anyele 懂了,谢谢大佬
Hyeongo
2017-06-15 20:44:03 +08:00
vscode 就可以写.net core 吧
kkeybbs
2017-06-15 23:49:18 +08:00
可以换个思路,不用走 web,毕竟改造 winform 成 web 还有点成本。编译加上 com,编译出来的 exe 可以当成 com 组件用。python 通过 win32com 直接调用 com 组件
fffflyfish
2017-06-16 00:07:40 +08:00
@kkeybbs 哦?还可以这样玩?我查查,看起来工作量少很多,谢谢大佬
PythonAnswer
2017-06-16 03:36:35 +08:00
com 组件方便很多的,如果只是本机使用的话,没必要 http
XiaoFaye
2017-06-16 03:44:17 +08:00
@kkeybbs 千万别用 COM,那是一个大坑,你总得考虑以后的移植问题,最好的方法就是在现有的 WinForm 上面加个 SelfHost,然后 RestAPI 输出。
kkeybbs
2017-06-16 06:59:01 +08:00
@XiaoFaye 赞同 com 有坑,更赞同“经济的满足使用要求”,这个 lz 自己平衡未来维护扩展
beginor
2017-06-16 07:00:20 +08:00
为啥总是折腾同事 A 呢, 同事 B 能否试试 Iron Python 呢,py 代码直接在 .net 上跑, 互操作也挺好。
kkeybbs
2017-06-16 07:00:37 +08:00
@fffflyfish 还有个办法,ironpython,直接调用 c#的 exe 和 dll,不过不是常用的那个“标准 python ”了

http://m.blog.csdn.net/manimanihome/article/details/53178789

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/368541

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX