怎么将现有的 C# 应用程序做成 web 服务( rest api) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fffflyfish
V2EX    .NET

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

  •  
  •   fffflyfish 2017-06-15 11:29:57 +08:00 5952 次点击
    这是一个创建于 3089 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    http://m.blog.csdn.net/manimanihome/article/details/53178789
    kkeybbs
        21
    kkeybbs  
       2017-06-16 07:01:48 +08:00 via Android
    @beginor (●''●) 刚想起来这个东西
    bearqq
        22
    bearqq  
       2017-06-16 07:47:17 +08:00 via Android
    本地 python 调用别语言第一反应是用 dll→_→
    yesicoo
        23
    yesicoo  
       2017-06-16 08:39:28 +08:00
    Owin 不需要 IIS 部署 SelfHost
    dhssingle
        24
    dhssingle  
       2017-06-16 08:53:30 +08:00
    vscode+asp.net core web api +1
    Presbyter
        25
    Presbyter  
       2017-06-16 08:53:34 +08:00
    RabbitMQ 吧,顺带着都为服务化了.
    fffflyfish
        26
    fffflyfish  
    OP
       2017-06-16 10:10:32 +08:00
    @beginor 老哥不要误会,这里只是方便描述,其实就是只有我一个人,ironPython 是一个不错的思路,涨姿势了,谢谢
    fffflyfish
        27
    fffflyfish  
    OP
       2017-06-16 10:12:04 +08:00
    @XiaoFaye 学习了,谢谢大佬!
    pixes4world
        28
    pixes4world  
       2017-06-16 12:35:11 +08:00
    ASP.NET (core) Web API or Nancy,更推荐 Nancy,轻量简单
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2526 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 10:09 PVG 18:09 LAX 02:09 JFK 05:09
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86