zoukankan      html  css  js  c++  java
  • 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的框架,业务逻辑有业务逻辑的框架,连接件也有相关框架。

    一些案例

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

    一些“壳”的介绍

    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是个不错的选择。

    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混合的应用非常方便。

    Linux

    一个是GTK+另一个是QT
    GTK+

    python https://python-gtk-3-tutorial.readthedocs.io/en/latest/install.html#

    总结

    尝试了duilib、qt、gtk、electorn,另外结合现阶段的趋势,个人感觉BS会越来越流行,所以,架构可以这样做:
    一般以BS为主,涉及到本地硬件等操作可以考虑使用socket与服务器通信,浏览器发送请求,服务器再去与本机通信。

    一些参考

    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源码剖析/ (vscode源码解析)
    https://www.zhihu.com/question/43666493 (vscode的界面用的是什么技术)
    http://www.ayqy.net/blog/vs-code源码简析/ (vscode源码解析)

  • 相关阅读:
    银行代码
    c#第二章
    c#第一章
    S1304HTML内测测试分析
    HTML第九章
    HTML第八章
    HTML第七章
    Jupyter Notebook与Jupyterhub的安装与配置
    如果你要拍一部微电影
    针对Excel的vbs操作
  • 原文地址:https://www.cnblogs.com/feipeng8848/p/10831842.html
Copyright © 2011-2022 走看看