开发 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 ? 是否有出版的书推荐 ? 谢谢
30761 次点击
所在节点    问与答
55 条回复
love
2015-03-25 23:29:21 +08:00
为什么不用web呢?桌面软件现在没什么优势了吧开发速度又慢
em70
2015-03-25 23:35:22 +08:00
桌面软件还是得win32,工具只有两个选择vc和delphi,不要用.net,存在部署问题.

企业软件最好还是基于web
yeelone
2015-03-25 23:36:54 +08:00
@love 有尝试过web的方式,但还是感觉不实际 。我是希望目标使用人群下载好我的软件之后可以直接使用的,中间不会有太麻烦的安装过程。web的话,让用户自己部署,会很麻烦吧。
hjc4869
2015-03-25 23:42:12 +08:00
桌面还是老老实实C#吧,看需求选择WPF或者Winforms
或者干脆激进一点,直接上win10的UAP?

另外我每天默念100遍,拿Web应付Windows的软件都去死吧,死干净点。这是作为用户的想法。拿web应付的多数吃内存是native app的几倍甚至几十倍,对高dpi支持和新技术支持也差,再加上写出来的烂js跑的也卡,体验简直差到爆。
想做就认真做,不想做就别做。
yeelone
2015-03-25 23:42:28 +08:00
@em70 由于没有相关经验,我大概设想以下这种做法:使用golang 作为服务端,前端由html,js,css开发。因golang可以编译成exe,所以部署起来方便。之后再使用某种桌面GUI技术写一个简单的服务管理程序 ,提供一个启动服务(启用golang服务端程序)和关闭服务的按钮。大概是这种方案,是否觉得可行? 但有无觉得比较麻烦?
yeelone
2015-03-25 23:44:54 +08:00
@hjc4869 是的,我前段时间有尝试过用Web来开发windows软件,但觉得太麻烦不实际,所以放弃之后学习快手aauto 快速开发了几个小工具。因现在时间空闲下来,所以是想学习一下主流的桌面软件开发技术。
yeelone
2015-03-25 23:47:21 +08:00
@hjc4869 但有个问题想请问一下,c#写的软件 ,需要如何做,才能完整的跑在windows xp 上? 在windows xp 上需要安装 .net 哪个版本。因为我听说c# 有.net 版本兼容问题,所以略有犹豫。
hjc4869
2015-03-25 23:47:27 +08:00
@yeelone 针对XP建议用winforms,虽说wpf能跑,但是XP上真的很慢很慢,而且用XP的电脑硬件配置也不可能特别好。
mimzy
2015-03-25 23:47:31 +08:00
只针对最后一个问题做回答:如果选择 C#,建议使用 WPF,但是我没测试过 XP 的兼容性。书籍推荐《WPF 编程宝典:使用 C# 2012 和 .NET 4.5》,不过貌似被翻译成翔了,我经常看不懂,你可以先看看《深入浅出 WPF》和《WPF 揭秘》热热身。至于为什么推荐 WPF,主要在于我个人不喜欢 WinForm 这种拖控件的技术,WPF 虽然要硬着头皮写 XAML 但是比较优雅(设计器不好用啊)。
其实最关键的看你们公司的需求,然后选择合适的技术……
hjc4869
2015-03-25 23:49:02 +08:00
@yeelone xp最多支持到.net 4.0。在安装包里带上大约40MB的.net安装包或者带上mono都行
ksupertu
2015-03-25 23:56:48 +08:00
想简单点以及很爽的开发就wpf+blend studio
想追求性能就c++加duilib
crab
2015-03-26 00:02:40 +08:00
会web开发,直接下个E语言就行了。
em70
2015-03-26 01:42:48 +08:00
@yeelone 绕那么大个圈子,delphi,VB很简单啊,不写一行代码就能做出漂亮的界面,玩玩就能做东西
weisoo
2015-03-26 03:10:11 +08:00
@em70 靠,一言惊醒梦中人,我也像楼主这样发过贴子求问用什么方法开发win程序好,听你一说才想起还有传说中上古时代的VB,并且我还学过VB
weisoo
2015-03-26 03:10:48 +08:00
@crab E语言是什么?
dalaomj
2015-03-26 04:19:00 +08:00
主流么,工业领域,持续维护更新的MFC仍然一大把。
dalaomj
2015-03-26 04:21:01 +08:00
易语言在非专业领域应用很广。民间好多小玩意易语言写的。但易语言误报严重,编译出的EXE也较大。所以商业领域不太适合。
yfdyh000
2015-03-26 04:52:36 +08:00
@dalaomj 易语言编译文件大的问题不是解决了吗,静态编译,用VC编译器。
Bluek404
2015-03-26 05:05:28 +08:00
关于go做后端那个可以看一下
https://github.com/go-nwui/nwui
当然这个坑好长时间没填了
msg7086
2015-03-26 07:34:05 +08:00
易语言挺好用的,十多年前没VS的时候一直用易语言做桌面开发。

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

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

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

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

© 2021 V2EX