跨平台:
Electro
Electro使开发者可以用HTML5技术编写UI,同时又能利用Node.js平台上众多library访问本地OS的能力,最终达到用Web技术就可以编写桌面应用的目的。
Electro有很多成功的案例:
1.Atom 编辑器 2. Slack (那个独角兽公司)3. Visual Studio Code 4. WordPress 等等。
Electron适合一些偏业务的应用,对性能没有很多要求(比较吃cpu,简单的应用打包出来都有40多MB),主要是业务逻辑和UI展示,比较轻量级的应用。因为Electron可以一份代码同时得到网页版和桌面版,所以如果应用还需要网页版,那么Electron可以极大地节省你的开发和维护成本,electron更多的是前端的一种延伸,前端本身在UI上的开发效率和轮子都是比较多的。
Qt+cef
Qt本身不是一种编程语言。它是一个用C++编写的框架。但它不仅仅只是一个GUI工具包,它提供了在网络,数据库,OpenGL,Web技术,传感器,通信协议(蓝牙,串行端口,NFC),XML和JSON处理,打印,PDF生成等领域的跨平台开发的模块。
Qt适合一些性能要求高的桌面应用,如果你只打算做桌面端的话。或者是一些特殊的场景,比如要做个类似绘声绘影的视频编辑器,做个类似word之类的桌面应用,那你用electron要么是没法做,要不就是体验非常烂。实际应用上,比如wps,yy语音,VirtualBox,以及部分adobe的桌面工具都是Qt做的。
可以通过前端做界面,c++提供底层支持
不跨平台(Windows):
WPF
WPF是新一代微软图形界面开发技术。它是随着Windows Vista推出的。.NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面。
采用XAML标签式语言开发UI,可以在Expression Blend可视化设计开发。美工也可以轻易上手。XAML支持DataBind, Data(Item)Template, Style, Storyboard, Rescoure,自定义控件等技术,开发速度快。
支持事件驱动(Code behind)或者数据驱动(MVVM)开发模式
使用GC回收垃圾,XMAL和C#将编译成CLR中间运行语言,效率比较低,占用内存大
WPF的技术理念非常先进,开发过程也非常友好,也可以做出极为绚丽的界面,可是开发出来的应用体积较大,运行效率比较低,占用内存大。(大部分我们常见的桌面应用都是C&C++开发)但是因为开发效率高,所以很多企业内部经常使用该技术。
UWP
Universal Windows App(UWP)也就是通用Window App 是微软最新的图形应用开发技术,它是基于WPF技术演进而来的。
UWP继承了所有WPF的优点,还可以使用C++和HTML&Javascript来开发,和WPF编译成中间代码不同,UWP直接将代码编译成机器码直接运行,极大的提高了效率。一次开发编译,可以同时在Windows 10,Windows 10 Mobile, XBOX,物联网IoT设备等其他Windows平台上运行
采用和iOS APP一样的沙盒机制,一样也有电话本,传感器,地图,推送等API。
采用响应式布局,可以适配任何分辨率等。
大量使用异步API,保证界面响应为最高级别。
JavaFx+swing
适合工具类型的小型软件