开发 windows 桌面软件,现在主流用什么技术?

2015-03-25 23:12:25 +08:00
 yeelone
以前一直从事web开发,后来在公司里因各种原因我需要开发桌面应用程序 ,但我完全没有桌面开发经验,上次在V2er 的朋友推荐下我学习快手aauto并快速完成了几个小工具,感觉学习新技术确实拓宽了我的视野。
现在我的目标是开发企业软件,就想学习一下主流的桌面开发技术。请问现在主流的桌面开发技术是什么 ?


经过一翻了解之后 ,我发现有c# winform ,c# wpf ,Qt or PyQt 。我没学过c#,对c++只是好几年前学过点皮毛。对于 Qt,我觉得 C++ 是难点,而pyqt 是gpl协议,似乎不利于开发商业软件?对于 C#我关心的问题是对windows xp 的支持,我感觉我的目标用户可能大部分仍然在使用windows xp 。
如果选择c#,那么 是应该使用winform ,还是wpf ? 是否有出版的书推荐 ? 谢谢
30809 次点击
所在节点    问与答
55 条回复
leeyanjie
2015-03-26 08:13:27 +08:00
pyqt有商业授权可以买,也可以考虑用pyside,支持LGPL授权的python Qt binding.用法和pyqt差不多.还有pygtk,wxpython可以考虑。
FrankFang128
2015-03-26 08:19:35 +08:00
主流都是内嵌浏览器 webkit
leeyanjie
2015-03-26 08:20:44 +08:00
想要拖控件的话,qt有qtdesigner,wxwidgets也有。如果不是只需要在windows平台下运行,最好还是用跨平台的gui方案。
dong3580
2015-03-26 08:25:45 +08:00
建议c#,xp系统只需要安装对应的运行库,不存在什么兼容性问题。wpf效果可能在xp上不能很好的展示,winform即可。代码和asp.net雷同,只不过一个是前端稍微一点区别哈.
knightluffy
2015-03-26 09:01:52 +08:00
@em70 .net有部署问题,说明你没打过安装包。。
shakoon
2015-03-26 09:06:07 +08:00
vb6.0,十几年了都不过时,哈哈哈哈
zwzmzd
2015-03-26 09:12:41 +08:00
@yeelone 部署的话把运行环境打包就行,开启也只是一句话
zcbenz
2015-03-26 09:23:10 +08:00
Slack for Windows用的atom-shell。企业软件的话不在意大小和性能,开发速度才是最主要的。
ooxxcc
2015-03-26 09:30:12 +08:00
nw.js atom-shell
hjc4869
2015-03-26 09:53:42 +08:00
@zcbenz 所有Slack的Windows版烂到爆了。。
cxe2v
2015-03-26 09:53:50 +08:00
如果你不能控制客户机的环境,用winform比较好,不然可以使用WPF,效果刚刚的
hjc4869
2015-03-26 09:54:04 +08:00
@zcbenz
-所有
+所以
b821025551b
2015-03-26 09:59:27 +08:00
C#开发时把.NET平台改成2.0,只要不用高级的东西大部分都能跑,xp那边应该已经有.NET2.0,没有的话打包程序时封装一个就好了
Comdex
2015-03-26 10:00:04 +08:00
还是aauto
learnshare
2015-03-26 10:25:49 +08:00
C# .Net Qt 不都是很亲切的 Windows GUI 开发方式么
asan2006
2015-03-26 10:44:18 +08:00
C#和VB.NET,觉得还不错,有时候觉得VB.NET的效率更高~
em70
2015-03-26 10:50:34 +08:00
@knightluffy 安装包需要额外加几十M的环境,说明你没做过面向普通用户的桌面软件。
g00001
2015-03-26 11:01:06 +08:00
现在很多桌面软件都是客户端软件,一半功能都是在服务器上提供接口,云 + 端的模式,客户端很多时候都是一个简单的壳子。所以掌握服务端语言是很有必要的,python,nodejs 都不错,php当然也可以,至于C#还是算了吧。

真正想去学点桌面方向的,最值得去学的还是C语言,其次是C++。原因很明显,C语言最简单,投入的学习成本最少,是各种语言的基石,C/C++玩的好,无论你用什么语言有帮助,桌面上好一点的软件基本都是C,C++写的。

aauto对C,C++的支持也很好,范例里就有很多调用C/C++开源组件的例子。aauto 的优势是小轻快,不需要投入太多精力去学,有编程基础上手很快,开发工具加标准库全部范例才6.5MB. 而且动态语言用起来也灵活简便,写界面,写EXE很方便。

但是 delphi,vb,C#这些工具相对比较重,学习要投入大量的精力,C#的库非常多,但也需要惊人的记忆力,有个半年不玩就可能会忘的干干净净没留下多少属于自己的东西。C# 不错但是优势更多是在服务端或者企业应用,写小桌面软件会把简单的事搞复杂,写桌面软件不是C#的长项。

delphi,vb这些过气了除了维护老项目不值得去学,即使这些语言的全盛时期也有一定的吵作吹捧,谁用谁知道经不起时间的考验。已经证明是坑的,不要再往坑里钻。

道听途说终究是虚的,有时候很多人说好用的东西,最后你钻进去会发现一个又一个的坑,很多人乱骂的东西实际上用起来会很爽,网上的评价很多随口爆出不负责任,而且每个人的思维模式开发习惯各有不同,适合的工具也不同,所以别人的观点只能作为参考,最实际的:自己一个一个的去用一下,感受一下,用的爽的就是适合你的。
knightluffy
2015-03-26 11:28:29 +08:00
@em70 现在网速这么快,需要考虑吗?而且现在大部分都是win7了,默认就带framework。。你这么在乎大小,为什么不直接用windows api写,那样更小哦。。
ksc010
2015-03-26 11:50:20 +08:00

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

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

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

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

© 2021 V2EX