最近有同学咨询丁老师,公司要做一款设备的管理系统,是要安装在Windows上的桌面客户端软件,这种Windows桌面软件,用什么程序架构开发比较好、比较稳定呢?针对这个问题,丁老师做一下介绍。
Windows桌面客户端软件发展已久,自从Windows诞生以及计算机的普及,Windows桌面客户端就是我们使用最多的软件,比如QQ、微信PC客户端、Office、WPS、浏览器等等,平时我们在电脑上常用的这些都是Windows桌面客户端软件。随着2000年后的互联网革命,以及移动互联网的普及,现在越来越多的应用都做成了以Browser/Client(浏览器客户端)等B/S结构的软件,B/S结构应用的好处是不需要单独下载桌面软件安装包,即可在浏览器中运行使用。但是Window桌面软件依然占据着重要地位,特别是在日常办公领域,手机等移动终端即使再智能,也始终无法达到Windows桌面软件的操作便捷、性能高效、生态丰富等特点。
Windows桌面软件的开发,从程序架构上来说,最早可以追溯到以C语言、Visual Basic、Delphi为代表的早期开发平台,后来随着.Net生态的崛起,发展到C#框架平台开发,到2010年后,更是诞生了以Electron、Qt5、MAUI、Tauri、WinUI3为代表的跨平台前端开发框架,都可以实现Windows桌面软件的开发。下边丁老师将为你逐一介绍这些开发框架。
哪些程序开发框架可以开发Windows桌面软件?
C语言
C语言+Windows API(Win32 API)框架,是早期的Windows开发框架,是Windows桌面应用的最核心基础,现在的几乎所有高级框架均都是依赖于C语言框架的底层封装。该框架性能突出,但是开发效率太低,目前使用者甚少,只在工业领域软件以及基础系统程序中的开发中使用。
Visual Basic
简称VB,是以前最普及的Windows可视化开发工具,拖拽式UI设计,封装了Win32 API,开发效率远超纯C语言,2000年之前的的办公软件、桌面程序几乎都是由VB开发,但因其框架发展停滞,未能跟随时代进步,无法适应现代开发需求,且被被更好的开发语言取代,微软于2020年正式停止此项目,而全面转向了C#和.NET框架。
Delphi
性能接近C++,在2000年左右曾是最主流的Windows桌面程序开发软件,尤其在企业级、管理类桌面程序开发中占据重要地位,拖拽式UI设计、事件驱动模型,开发效率碾压同期的MFC。但仅适用于早期的Windows平台,后期随着 .Net的崛起而逐步式微,逐渐被.Net框架替代。
C#
是.net生态下首个桌面可视化开发框架,语法简洁、拖拽式UI设计,完全封装Win32底层API,开发效率远超MFC/VB6。后期以.Net Framework 3.0、C# + WPF的微软技术栈组合,结合了面向对象的编程语言和现代化的用户界面设计框架,是Windows桌面软件的首选开发方案之一,多用于企业级桌面软件,并且迄今为止微软仍在持续进行更新维护,是目前主流的桌面软件开发框架。
Qt 4/5
是C++支持跨平台的桌面开发框架,Windows/Linux/Mac可以统一封装,可使用Qt Designer进行可视化设计,至今仍是高性能跨平台桌面软件开发的选择,适用于跨平台工业软件、嵌入式配套桌面软件。
Electron
在2013年由Github发布,基于Chromium + Node.js的框架,是一款由前端技术栈实现的桌面程序开发框架,原理是使用Vue/React语法开发,然后进行跨平台打包,生成Windows桌面程序,一般适用于轻量级跨平台软件,以及需要和网页进行交互的桌面软件。
.NET Core/.NET 5+
是2016年微软跨平台软件的开发框架,支持在Windows、Linux和MacOS等操作系统上开发和部署应用程序,打破了.Net Framework只能开发Windows应用的限制,性能强大、轻量级部署,适合现代Windows原生软件开发。
.NET MAUI
也是微软推出的跨平台移动和桌面应用开发框架,使用C#程序编写代码,共享模型、服务和第三方库,可以开发同时运行于Windows、MacOS、Android、iOS等操作系统的应用,简单的说就是可以一次开发出Windows桌面软件,手机APP等应用。2022年发布,目前生态仍在完善,是.Net跨平台开发的未来方向。
Tauri
是一个轻量级的高性能跨平台桌面应用开发框架,支持Windows、macOS、Linux桌面操作系统,结合了Web技术栈的灵活性和Rust语言的强大性能,开发出的应用体积小,运行时资源消耗低,启动速度快,为用户提供更加流畅的使用体验。2021年发布,生态仍在完善中,适用于轻量跨平台应用。
WinUI 3
是微软为Windows 10及更高版本打造的现代原生UI平台,基于Fluent Design设计语言开发,支持Windows 10、11操作系统,适用于开发Windows 11桌面程序,以及开发高视觉UI效果的桌面软件。
那种框架比较好?
很难去抉择哪种Windows桌面软件开发框架比较好,每种开发框架和开发工具,都有各自的特点,可以根据具体的业务需求,结合每个开发框架的特点,去选择不同的开发工具。比如:
前端开发者
可以选择Electron进行开发,适用于前端开发者、小团队、新手,可以迅速的开发出易用的Windows桌面软件。如果不喜欢Electron,使用Tauri开发也能达到一样的效果。
打造Windows原生高性能软件
可以选择WinUI 3进行开发,如果是Windows10以下的应用,可以选择C# + WPF进行开发。
轻量Windows软件
如果要打造轻量级的Windows软件,比如小体积的工具、桌面小程序等,可以选择C#+WinForms进行开发。
跨平台软件开发
如果要开发适合Windows、MacOS、Linux的桌面软件,可以选择Qt进行开发。针对跨平台应用,Qt开发效率高、生态系统完善,并且有成熟的社区用户支持。当然,Electron和Tauri也都支持跨平台开发。
桌面软件+移动端统一开发
选择.Net MAUI,支持Windows桌面软件、原生Android App、iOS应用开发,界面UI可自动调整布局,以适应不同屏幕尺寸。
全文总结
以上就是关于“Windows桌面软件开发用什么程序框架”的全部内容,丁老师在本文中,整理了可以开发出Windows桌面软件的一些程序框架和工具,当然,除了以上内容,能开发Windows桌面软件的程序框架还有很多,比如java、Python、Rust等语言也都能实现开发Windows桌面软件,只是在适配性、用户体验和应用场景中,各有侧重(不是这些语言的主业)。因此在选择程序开发框架时,不用纠结于某一种语言、某一种框架,而是根据具体的使用场景、业务复杂程度、功能需求而定。
如果你也在想开发Windows桌面软件,或是在开发Windows桌面软件中,遇到了疑难问题,或是对本文有不同的看法和相关建议,欢迎联系丁老师进行咨询和交流。
phpstorm程序中,在打开html时总会出现对style属性的折叠和隐藏,这样在检查代码的时候非常不直观,容易漏掉很多东西,非常的不方便,如图:
支付宝支付接口公钥私钥写的很不清楚,即使是让多年的程序员配置起来也是很吃力。为了让大家在开发的过程中少走弯路,丁老师特意总结了一下配置方法
在Java中,提交请求时加入参数有两种方法:一、把参数直接写在url中,如:如请求url是https://www.aaa.com,参数是name=kevin,gender=2,那么可以直接把请求url写成https://www.aaa....
最近有读者来函咨询,dedecms在上传图片时提示“Uploadfiletypenotallow”,怎么也上传不了。丁老师在百度查询了后,发现问题的根本原因是php没有上传权限的原因造成的,一般来说是php的临时上传目录,没有写权限造成...
在使用idea旗下的产品,如intellijidea,phpstorm,webstorm时,有的时候编辑前端页面JS,在换行时经常会自动出现个}大括号,这一点程序不是很智能,其实后边都已经有括号了。比如下图这样:那么如何解决这个问题呢?丁老...
在使用PHP框架CI时,有个很恶心的地方就是他的URL需要带上index.php,比如我要建一个user模块,想要实现www.xxx.com/user/的效果,但是在CI框架下必须要www.xxx.com/index.php/user这样才...
videojs是一款非常不错的htmlvideo播放器插件,很多同学经常在群里问我,说丁老师这个videojs怎么设置为宽度或者高度自适应呢,不想把video的width和height写死,有没有什么办法呢。丁老师经过研究发现啊,video...
打开电脑的Nahimic软件,提示“您的nahimic驱动程序似乎已经过期,无法启动”,然后需要点击链接更新驱动,但点击进去后,也找不到什么驱动。经过研究发现解决办法:1.使用SDI安装,即SnappyDriverInstaller1.23...