fffflyfish
V2EX  ›  .NET

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

  •  
  •   fffflyfish · Jun 15, 2017 · 6759 views
    This topic created in 3428 days ago, the information mentioned may be changed or developed.

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

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

    http://m.blog.csdn.net/manimanihome/article/details/53178789
    kkeybbs
    kkeybbs
    Jun 16, 2017 via Android
    21
    @beginor (●'◡'●) 刚想起来这个东西
    bearqq
    bearqq
    Jun 16, 2017 via Android
    22
    本地 python 调用别语言第一反应是用 dll→_→
    yesicoo
    yesicoo
    Jun 16, 2017
    23
    Owin 不需要 IIS 部署 SelfHost
    dhssingle
    dhssingle
    Jun 16, 2017
    24
    vscode+asp.net core web api +1
    Presbyter
    Presbyter
    Jun 16, 2017
    25
    RabbitMQ 吧,顺带着都为服务化了.
    fffflyfish
    fffflyfish
    OP
    Jun 16, 2017
    26
    @beginor 老哥不要误会,这里只是方便描述,其实就是只有我一个人,ironPython 是一个不错的思路,涨姿势了,谢谢🙏
    fffflyfish
    fffflyfish
    OP
    Jun 16, 2017
    27
    @XiaoFaye 学习了,谢谢大佬!
    pixes4world
    pixes4world
    Jun 16, 2017
    28
    ASP.NET (core) Web API or Nancy,更推荐 Nancy,轻量简单
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4922 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 09:13 · PVG 17:13 · LAX 01:13 · JFK 04:13
    ♥ Do have faith in what you're doing.