javascript - 前端技术是否能应用于较底层的桌面程序开发
高洛峰
高洛峰 2017-04-11 11:35:50
[JavaScript讨论组]

背景:
本人存在比较多的桌面程序开放(功能主要有数据采集、数据计算、报告生成、excel导出)等功能,目前使用VC(MFC)、VB、CVI语言编写,界面设计非常头疼,并且比较丑。

一直有html+css+js的基础知识,想使用前端语言实现。目前了解的有nw,网易NEJ,有道hex,CEF等。因为存在硬件底层关系,准备在windows上VC平台使用,所以只有CEF可以实现。

问题:
1、CEF中JS与VC++通信的方式
2、一般直接填充html文本方式载入还是VC嵌套一个WEB server
3、除了CEF是否还有更合适的选择?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(4)
黄舟

说一下我的建议: 纯属个人建议,请慎重思考

  1. 既然是比较底层的桌面开发, 个人觉得还是选择专门负责桌面开发的语言工具比较好, 因为这些比较成熟. 虽然目前有一些可以把html,js,css这些内容,使用到桌面开发中. 但是,和底层打交道, 肯定就弱一些. 或很多.

  2. 至于题主,目前使用的语言工具. 做的界面比较丑, 那是肯定的. 主要是目前的软件都有所提高. 这个,后期可以找设计,设计一下就会好一些. 可能时间有些长. 同时,桌面程序的默认界面风格, 有一些是和系统有关的. 就像Win的风格和Mac的风格. 同一套代码,在不同的平台,会有所差距.

  3. 我个人比较了解的是Qt. C++ 的框架. 同时又是嵌入式的主力军. Qt的宗旨就是运行在任何的地方. 目前Qt5的版本,QGUI几乎都是支持HTML,css. 有些控件的样式,就是通过css设置的. 文字的样式html排版布局. Qt的富文本就是html代码. 至于QML,那简直就是桌面版的Web.后面语言也是js标准. 同时,还可以和C++交互. 前端设计有HTML,css,js管理,底层逻辑,有C++负责.而且很容易和系统交互. 同时还是嵌入式的. 这一条,确实很诱惑,但是请慎重考虑自己的情况.

阿神

鉴于你对于前端的基础,建议你采用Electron来构建桌面程序,通过electron,你可以快速构建自己应用程序,后台结合nodejs,前端可以自己选择,可以使用react、vue等前端框架

迷茫

我推荐你直接上C#用WPF,也是一种方案

虽然我是搞前端的

黄舟

同意 @springhack 的回答。介于你之前的经验,如果只是个人开发还是直接使用 WPF 比较符合你的习惯。

前端方案 nwjs 和 electron,其实限制越多(从传统客户端界面开发角度看)。而且这些方案都是 js 作为主开发语言,这个还是需要一些学习成本的(js没看上去那么简单);C/C++ 只能作为扩展存在,受限很大。

CEF 的方案,等于你要自己实现简易的 nwjs 或者 electron,需要学习和了解 chrome 的很多机制。关键是没人给你的项目持续优化的话,启动慢和程序包特别大是免不了的了,还可能有不少坑导致的bug。

需要很好界面效果的话,用 WPF 挺好的;如果是比较好的界面,Qt 也不错,还跨平台。

以上建议只针对个人开发。如果是团队项目,界面要求比较高或者已经有不错的js程序员的话(或者可以招一个),以上缺点可以忍受,用 electron 挺不错的。


利益相关:
C#做过一些传统客户端界面,目前是前端。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号