C/S软件方案

互联网时代客户端软件的一些方案

纯Native开发, C++/C#/duilib+C++(Windows), Objective-c(Mac)
Qt(Windows/Mac)
NW.js/Electron(Windows/Mac)
CEF(Windows/Mac)
一个典型的方案是:用Rust来写业务逻辑,用Neon来作中间链接,用Electron来作UI层。分开作,UI层有UI的框架,业务逻辑有业务逻辑的框架,链接件也有相关框架。html

一些案例

微信电脑版:duilib
VisualStudioCode:electron+typescript
网易云音乐:c++ + js+cef框架
有道词典:Hex,网易自家的引擎,相似于node-webkit,当初作这个的时候node-webkit还不是很完善,因此他们本身搞了一个(http://hex.youdao.com/zh-cn/about/index.htmlnode

一些“壳”的介绍

CEF

Chromium Embedded Framework (CEF)是个基于Google Chromium项目的开源Web browser控件(俗称谷歌亲儿子),支持Windows, Linux, Mac平台, 其包含C/C++程序接口,可以完美的与C++库集成,完善的支持Html5 Web页面开发,而且能够经过修改编译选项和源代码后编译的方式来实现剪裁CEF和提供原CEF没有的功能,定制本身的窗口类型。
优势:
CEF能够经过编译和修改源代码的方式来定制
能够经过C++控制窗口类型,支持透明窗口
可以使用最新的CEF来兼容最新的Javascript标准和CSS,或者固定CEF的版原本支持Windows XP
底层与C++集成容易
可使用Javascript来开发UI,C++实现大计算量的任务
缺点:
与操做系统相关的功能,如读取注册表、写文件等功能,须要C++实现,增长了一些C++开发的工做量
不通过裁剪的CEF,安装包会过大
对于要实现透明窗口和集成大量的C++模块的应用,CEF是个不错的选择。c++

NW.js(node-webkit)/Electron

随着PC机不断提高的机器性能以及H5标准的发展,利用JS语言依靠Browser为载体的B/S体系软件,有着很强的交互表现力,使用Html/JS做为UI的开发语言,能够十分高效快速的完成各类复杂界面(尤为是各类动画效果)开发。
随着Nodejs和Chromium的CEF愈来愈成熟,出现了将Nodejs与Webkit集成的开源框架,比较成熟的有NW.js(前身node-webkit)和Electron(前身atom-shell), 该类型的框架既能使用Html/JS来开发UI界面,又能集成C++库来完成大计算量的任务,使得开发基于Web和Native混合的应用很是方便。git

一些参考

https://www.zhihu.com/question/19903210
https://segmentfault.com/a/1190000016229749
https://github.com/fanfeilong/cefutil (cef中文文档)
https://bitbucket.org/chromiumembedded/cef/src/master/ (cef官网)
https://electronjs.org/ (electron官网)
https://www.jianshu.com/p/c6bdb087e60d (搭建一个electron应用)
http://xzper.com/2016/04/17/vscode%E6%BA%90%E7%A0%81%E5%89%96%E6%9E%90/ (vscode源码解析)
https://www.zhihu.com/question/43666493 (vscode的界面用的是什么技术)
http://www.ayqy.net/blog/vs-code源码简析/ (vscode源码解析)github

相关文章
相关标签/搜索