请问目前做windows桌面应用程序,MFC、QT、C#哪个更好?
qt好些吧,C#涉及微软.net体积巨大。qt就几个dll,打个安装包都容易些。还有就是qt跨平台,小到ARM版,大到Windows,linux电脑都可以跑。MFC微软自己都不玩了,难用,bug多。。
其实提问的人把顺序都排好了,反过来就是在win下开发选择的顺序。
mfc比较古老,基本只是winapi的一层很薄封装,用起来挺累的。除非是维护古老的mfc程序,比如你维护腾讯的qq, 用mfc应当几乎是必须的,其他情况并不推荐。
qt方案是个重量级选择,因为qt很庞大,几乎覆盖了桌面所有领域,ui只是其中一个小部分。但qt ui组件并不是属于原生方案,类似现在的flutter的方式,那些控件几乎都是自己渲染出来的,模仿了特定平台风格罢了。快速建模和概念演示用qt的qml很不错,另外qt用于商业领域并不是
免费的,做产品需要还是考虑一下它的重量和价钱。
c#的winforms是ms的原生UI方案。根红苗正并且易用轻量,没有跨平台需求和不想折腾的话,用来做win桌面程序是最轻松和放心的方案。
值得一提就是如果应用中有很多需要展示web页面,或者嵌入了页面而不需要原生UI,用nodejs的方案会更方便,vscode用的就是electron,它其实就是内嵌了一个chrome浏览器,引出了一套js api罢了。而微信的电脑版用的是和electron类似的框架叫nwjs。
大部分跨平台方案因为都不是原生UI,体验上多少会差一些,比如操作不方便,压力大时反应慢,吃内存,包巨大等等
就我个人来说,大部分时间都在mac下工作,即使偶尔开发win桌面小应用,一般也是用mingw编译成exe/dll, 在Mac上用wine做业务逻辑测试。我选了wxwidgets做UI,它是原生方案,支持多个os平台,完全免费,支持各种脚本绑定,最关键比较轻量,整个UI包不到10M搞定。
展示一下最近做的一个windows下鼠标键盘操作记录+截屏数据的编辑器,用于生成自动操作文档和自动化录入工具,在mac m1下开发,x86-windows下运行, 用wxwidgets做UI。