一、 C# WPF
WPF是微软推出的基于Windows Vista的用户界面框架,属于.NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面。
优点:技术成熟;类库多;数据与视图分离;可实现自定义控件。
缺点:性能一般;强依赖windows;界面不美观;开发效率低;生成的程序体积庞大。
二、C++ QT
QT是一个跨平台的C++图形用户界面应用程序框架。它为应用程序开发者提供建立艺术级图形所需的所有功能。它是完全面向对象的,容易扩展,并且允许真正的组件编程。
优点:QT 技术成熟;算法处理快;开发效率高;跨平台。
缺点:性能不佳;使用非标准的C++。
三、C++ Duilib
Duilib 可以简单方便地实现大多数界面需求,包括换肤、换色、透明等功能,支持多种图片格式,使用 XML 可以方便地定制窗口,能较好地做到 UI 和逻辑相分离,尽量减少在代码里创建 UI 控件。目前,Duilib 已经在国内有较为广泛的使用,但多数公司为按照需求编写自己的duilib 库。
优点:基于GDI的窗口自绘;使用XML定义界面风格;数据与视图分离;兼容ActiveX控件。
缺点:库老旧,很多库已经无人维护,容易出现问题。
四、C++ CEF
CEF是个基于Google Chromium项目的开源Web browser控件,支持Windows,Linux,Mac平台。除了提供C/C++接口外,也有其他语言的移植版。CEF(Chromium Embedde FrameWork)与 Electron 定位类似,基于 Chromium,让开发者可以使用前端技术栈来构建桌面应用,跨平台。
优点:集成chromium内核;支持H5;内存占用较小;与客户端紧密集成。
缺点:不支持旧系统;打包后文件太大;多进程消耗资源。
五、前端语言 Electron/NW
内核与 CEF 类似,但Electron 可以使用前端技术便可以开发桌面应用。
优点:可以使用nodejs的资源,同时又自带了各种api的绑定,所以可以用的周边资源非常丰富;而基于js的开发方案,使得前端很容易上手。
缺点:不支持旧系统;打包后文件太大;多进程消耗资源,整体和CEF相似;由于始终复制一份chromium库而导致内存开销大。
目前有minielectron技术,minielectron技术对原electron进行了优化,其优缺点如下:
优点:优化了打包后的文件大小;优化内存开销;实现多electron共享主进程资源,可做关联性优化。
缺点:技术不完善,有些模块未支持;单进程架构限制了无法多次加载同个dll。
六、前端语言 Miniblink
CEF和Electron/NW已经拥有成熟的开发流程和技术,但是其也有明显的缺点,例如打包后文件体积大,没有紧跟chromium内核。而miniblink相对解决了以上的两个问题。miniblink对大小要求非常严格,去除原版chromium、blink里对音视频的处理,只专注于网页的排版和渲染,这一点是非常符合综合数据管控平台的要求。其次,miniblink紧跟最新chromium,这意味着chromium相关的资源都可以利用。并且,miniblink可无缝替代Electron 。
优点:适合嵌入其他程序中,作为界面组件;支持主流js界面库,开发快速,动态排版,可热更新。
缺点:技术较新,我看最新的版本更新修复bug情况,miniblink不是很稳定,可能会遇到很多问题。
七、Dart Flutter
Flutter 是 Google 开源的 UI 工具包,帮助开发者通过一套代码库高效构建多平台精美应用,支持移动、Web、桌面和嵌入式平台。
优点:性能强大,流畅;优秀的路由设计;优秀的动画设计;简单易学,Dart语言更具优势;跨多种平台,减少开发成本;支持插件,可以访问原生系统的调用。文章来源:https://www.toymoban.com/news/detail-460398.html
缺点:适配问题,开发工具版本升级后,修改量大;代码可读性较差,对代码质量和管理要求较高;打包后的安装包较大。文章来源地址https://www.toymoban.com/news/detail-460398.html
到了这里,关于windows桌面程序开发的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!