Electron与WEB桌面应用程序开发及其它

这几天在构思项目,研究了一下Electron,记录下来。

说起WEB桌面程序,当前最火的就是Electron了。

Electron的架构用一句话总结,就是一个main.js进程加上一个或数个chrome窗口,每个窗口都包含一个独立的Node.js。

这样的架构,使得这种桌面应用必须是一个(或数个)单页面应用(SPA),而这个SPA还拥有访问本地API的能力(Node.js)。

一方面,程序对前端框架的依赖必然加强,想再JQuery打天下就不那么容易了;另一方面也大大加强了前端框架的能力与版图。

这样它把前端与后端的战火,从服务器蔓延到了桌面。使得JS解决一切的宗旨,又得到了贯彻。

相比较这种新的架构,还有三种早已出现在WEB桌面程序。一般基于嵌入式Chromium框架(CEF)。

一种就是CEF+远程访问。这种程序体验极差,就是个单页面的网站。

值得注意的是Electron+远程访问,是极度危险的,只需劫持JS,则可利用Node.js为所欲为。

另一种就CEF+本地服务。本地服务常见的有.net和java,也有用PHP和Node.js的。

这种组合与前一种组合体验类似,而且体积臃肿,但胜在页面延时较小。

最后一种就是CEF+本地资源+远程API接口。这种是手机WebAPP的常用模式。体验尚可。

和这些架构比较起来,Electron的体验和能力上得到很大的增强,但是有着天生的弱点。

一、安全性,这是脚本语言的弱点

二、投入大,SPA不同于原有的WEB开发,必然导致新的投入和旧资源的浪费。

三、体验,虽然WEB应用的体验在不断增强,但天生就必然限制在chrome窗口中

理想当中的混合应用应该是Electron作为模块嵌入其它编译型语言中,不必追求JS解决一切,更不要追求一切皆是WEB。

强强联合,团队作战的效果远大于语言或平台大一统带来的好处。

比如这个go-astilectron项目,使用GO语言开发主进程代替main.js,弱化JS的依赖是个不错的想法,但还远不成熟。

(完)

时间: 2024-12-21 01:10:48

Electron与WEB桌面应用程序开发及其它的相关文章

我为什么要录制Java Swing桌面应用程序开发课程

首先在我从事Swing编程的几年中我听到过各种奇谈怪论.大致意思就是Swing桌面软件不合适.我只能呵呵.一个人能力有高低.对事物的看法有不同,都可以接受.但是把无知当个性只能说你太勇敢了.尽管甲骨文如今力推JavaFX.但是Swing还是目前Java桌面开发的主流技术. 本人从事Java语言编程超过11年.其中有五年左右的时间是在从事Java Swing桌面应用程序开发.其它几年是在从事J2EE与spring3 MVC开发,结合自身实践感慨颇多,感觉自己技术进步最大最快的几年恰恰是从事J2SE

Electron 构建桌面应用程序开发资料整理

Electron 是什么? Electron 是一个程序库,基于Electron库我们可以使用HTML.CSS.JS来开发跨平台桌面应用程序(building cross-platform desktop applications with HTML, CSS, and JavaScript.) 学习资源  Electron 官网文档  https://electron.atom.io/docs/ Electron 实现原理 ? Electron 结合了 Chromium 开源浏览器和带有一系列

将现有vue项目基于electron打包成桌面应用程序

一.前言 项目本来打算采用B/S架构去做的,只是在"人群中多看了你一眼",便直接撸了. 二.使用electron集成桌面应用 本身项目是使用vue-cli开发的,在使用electron之前,需要将本身的项目打包好后打开index.html能显示网页.因为刚接触便直接拿官方demo进行打包了. 1.克隆官方demo:git clone https://github.com/electron/electron-quick-start 2.cd electron-quick-start-&g

QtQuick桌面应用程序开发指导 3)达到UI而功能_B 4)动态管理Note物_A

3.2 把Page Item和Marker Item绑定 之前我们实现了PagePanel组件, 使用了三个state来切换Page组件的opacity属性; 这一步我们会使用Marker和MarkerPanel组件来实现页面导航; 在原型阶段, MarkerPanel组件十分简单, 没有不论什么功能; 它使用了Repeater类型来产生三个QML Item以及Marker组件作为delegate; MarkerPanel应该存储当前激活的marker(标记), 即那个被用户点击的marker;

Web桌面应用框架3:Web桌面应用开发的N种Style

研究Web桌面应用开发有一段时间了,总结了Web桌面应用开发的一些主流方式. 一.前端Style 这种方式的就是直接实现一个Web程序,再封装一个浏览器展示,相当粗暴和有效.著名的框架就是Electron和NW.js了. 代表应用程序是atom. 一般是基于node.js.也有其它语言的. 各种前端框架的拥趸是这种Style的狂热粉丝.这里就不放Demo了.贴段代码就可以感受到它的霸气侧漏. app.on('ready', function() { // 创建浏览器窗口. mainWindow

第一章 Web应用程序开发基础

一.HTTP协议工作机制 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议.它是一种主流B/S架构中应用的通信协议.具有以下特点:1.无状态 服务端不会记录客户端每次提交的请求,服务器一旦相应客户端之后,就会结束本次的通信过程.客户端下一次的请求是一个新的 连接,和上一次通信没有任何关系.2.简单灵活 HTTP是基于请求(request)和响应(response)的模型3.支持客户端与服务端 支持主流的B/

Web应用程序开发,基于Ajax技术的JavaScript树形控件

感谢http://www.cnblogs.com/dgrew/p/3181769.html#undefined 在Web应用程序开发领域,基于Ajax技术的JavaScript树形控件已经被广泛使用,它用来在Html页面上展现具有层次结构的数据项. 目前市场上常见的JavaScript框架及组件库中均包含自己的树形控件,例如jQuery.Dojo.YUI.Ext JS等,还有一些独立的树形控件,例如dhtmlxTree等,这些树形控件完美的解决了层次数据的展示问题. 展示离不开数据,树形控件主要

桌面程序开发入门(WinForm with C#)

1.使用Visual Studio 2013创建新项目 2.创建一个主窗体和4个子窗体 3.创建一个数据库.一个表.一个存储过程 4.在配置文件里添加数据库连接字符串 5.真正的编码工作. 第一步:创建新项目,一张图片抵一万字!看图说话,呵呵.. 第二步:创建4个子窗体,名称分别是formCommandProc.cs.formDataAdapterProc.cs.formXMLCreate.cs.formXMLRead.cs. 三.创建一个数据库.一个表.一个存储过程.打开MS SQL Serv

用Eclipse开发Dynamic Web Project 应用程序

用Eclipse 开发Dynamic Web Project应用程序 (2012-12-04 11:23:08) 标签: 杂谈 分类: web开发 http://blog.csdn.net/blue_fire2008/article/details/7525557 简介:本文仅简单介绍基于Eclipse开发Dynamic Web Project应用下的JSP,Servlet及TOMCAT数据源的配置和开发. 软件环境: Eclipse Java EE IDE for Web Developers