网友提问:
请问目前做windows桌面应用程序,MFC、QT、C#哪个更好?
优质回答:
做windows桌面应用当然是c#。
c#是.net框架下主力语言,与windows系统的集成度很高,win7,win8,win10都自带.net框架,根本就不需要什么依赖,c#语言目前已经更新到8.0版本,采用vs来开发桌面程序简直太完美,不管是winform还是wpf这两个都是一二十年很成熟的桌面程序框架,拖拖控件就能开发,效率高。wpf自定义程度高,可以设计出精美的ui界面来,一点不输web界面,而且还有配套的bland设计器来辅助做ui界面。
目前winform,wpf这两个桌面框架都已经支出.netcore,这是一个新出的垮平台框架,所以我觉得做桌面开发c#是首选。
以上我的看法,大家有什么想法也可以一起讨论。
其他网友观点
我是从MFC做二维图形CAD起步的。后来C#。回到你的问题,具体看做什么类型的应用,还有就是你能把握的技术栈是什么。简单的图形界面,C#最快,开发成本最低,其实我也用C#做过图形图像应用程序,优化一下,性能也马马虎虎。如果追求性能,MFC肯定是首选,缺点就是代码量巨大。再说QT,QT是个万金油,提供了不少方便的类库,还跨平台。如果做三维应用,首选推荐QT。
总之用什么工具还是综合评估,技术人员能力构成,应用场景,开发成本等。举个例子的话,Windows上工控,管理软件,C#不犹豫。追求图形性能,计算性能,网络性能,C++。三维,跨平台,QT。为什么最后推荐qt,不是因为qt不好,是玩qt的人比较少。
其他网友观点
选择MFC、Qt还是C#开发界面,主要取决于你的技术栈,如果你对界面要求高,追求快速开发,但是对程序性能要求一般,可以试试C#。
如果对程序性能要求较高,且有一定的C++基础,可以考虑QT或其他C++界面库,比如Duilib这样的第三方库。下面简单介绍下C++界面开发过程中常用库。
1、QT
跨平台图形用户界面应用程序开发框架,C++开发首选界面库,除了界面之外,还封装了一整套多线程、数据库访问、图像处理、音频视频处理、网络通信、文件操作等常用框架。官方文档齐全、API设计优雅、跨平台支持、对新手友好。
新版本的QT提供的QSS技术,可以让我们在客户端开发过程中享受Web开发中CSS绘制界面的便利,例如下图是使用QT提供的QSS技术绘制的客户端UI界面换肤图(图片来源:CSDN博主一去、二三里)!
2、第三方界面库(以Duilib为例)
这里以Duilib为例(当然C++还有很多其他优秀的界面库,比如BCG)。
Duilib采用XML来描述界面风格和布局,将界面和逻辑分离,尽量减少在代码中创建UI控件。可让开发人员快速开发出美观的界面效果图,是一款开源的directUI界面库。目前很多的互联网PC端软件都是使用Duilib开发而来,比如: 钉钉、PP助手、微信、网易云信、TeamTalk、盘古越狱工具等。
下图是使用Duilib开发的模仿迅雷播放器开发的一款效果图。
唯一的缺点就是文档太少,duilib最初的开发人员目前也已经不在维护了,个人在使用过程中可能会遭遇各种坑,而各大公司都是在维护自己内部使用的duilib。
3、MFC
早在很多年前,业界就流传MFC已经被淘汰了 ,MFC==没饭吃,可是直到2020年的今天,这家伙居然还没有灭绝,甚至在招聘网站上也依稀可见MFC的岗位需求。但是不得不承认,但是不得不承认,它的学习成本实在太高了,如果想实现一些特效,难度还是比较大的。如果你的需求对界面要求不高,或者是做一些自用的小工具,选择MFC还是很不错的,其他情况下,不建议选择它。
其实,桌面开发,选择Electron(一个使用 JavaScript, HTML 和 CSS 等 Web 技术创建原生程序的框架)也是一个很好的选择。
其他网友观点
其实提问的人把顺序都排好了,反过来就是在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。
其他网友观点
Delphi C++Builder 做人机界面最好。
小型数据库就用Firebird 。
图形图像处理实际上都是调用Windows API实现。
三维图形用OpenGL编程。
其他网友观点
没有说那个更好,只能说更合适吧!
首先,个人觉得QT比较适合做桌面应用程序开发,像一些大型杀毒软件基本都是QT开发的,比如:360安全卫士,360杀毒,金山毒霸等等!
其次,当然C#也是可以做的,MFC就太老了基本很少用了,许多界面开发都得自绘,现成的类或者JDK比较少,所以用的人比较少,当然在医疗类软件用的多些,比如:多参数医疗监控等,QT开发是用的C++,不管从性能还是效率都比较高的,而且QT实现了界面开发跟业务处理逻辑是分开的,能开发出非常漂亮的桌面程序!
最后,说一下QT开发的优势所在之处,1、QT开发具有跨平台性
这样开发出来的应用程序就可以在多端运行了,避免重复轮胎的情况,比如:windows平台,Linux平台,Mac平台等
2、QT本身具有非常好的处理机制,让界面编程变得更加组件化
QT的类库非常丰富,有成千上万的API使用非常方便。个人观点仅供参考,欢迎指正![耶]
以上内容就是小编分享的关于请问目前做windows桌面应用程序,MFC、QT、C#哪个更好?.jpg”/>