鉴于python做winform之类的UI比较弱。于是想结合C#的winform 和 python的底层开发(windows平台)。
尝试做了一个RSS阅读器。在这里:http://download.csdn.net/detail/lion_awake/8240713。
主要从一些网站抓取rss,然后解析rss,并在界面上显示。
结构
这是一个c/s架构。
server端,用python编写,负责抓取rss并解析。
client端,从server端拿到数据然后显示。
client端和server端通过socket进行通讯。
掉进去过的坑
1. c# 正则表达式匹配中文的问题。
json_str = "\\u4e00" Regex = new Regex("[\\u4e00-\\u9fa5‘]+")//不起作用 Regex = new Regex("[\\\\u4e00-\\\\u9fa5‘]+")//ok
c# \\转换为\的问题,前一篇帖子已经提过。
2. c# socket发送数据问题:
帖子这里:http://bbs.csdn.net/topics/390949473
总结了下,问题的根源在于,服务器端用python-twisted中的LineReceiver这个Protocol,也就是说发送消息以"\r\n"为结束符(windows上)
感受
或许是对c#的语法不熟,相同的东西,用python实现可能只需要1~3h,用C#折腾了两天。主要是出了问题,google不好找答案,其次,很多东西底层调试不进去,最后问问c#同行,基本没有几个能够答个所以然。
或许为了他的界面而是用C#,但需要权衡下,你是否能够驾驭各种兼容问题以及时间成本。
虽然python有很多优秀的底层,以及web的ui都不错,但对于desktop ui来说,有所欠缺,特别是游戏。这块短板的弥补,暂时木有神马好的方案。优先级排行:成熟的开源方案 > 成熟的闭源方案> 不咋成熟的开源方案 > 不咋成熟的闭源方案。
其次还要考虑技能的熟练程度。也许结合这个以后的优先级可能是:成熟的开源方案 > 不咋成熟的开源方案 > 成熟的闭源方案> 不咋成熟的闭源方案。