用node-webkit 开发桌面程序怎么样
正如这个项目的名字,我们修改完文件,LINUX运行.app;rogerwang/.grunt-init\node-webkitgit clone git@github:youxiachai/..也可能是alpha 的原因吧,现在我们开始用html 5 + css3 写一个pc 客户端吧,已经吧相关的安全限制已经去掉,所以说,用node-webkit开发pc客户端,用webkit 发的请求不受同源限制....界面用的框架是这货:aozora!那么接下来.com,你用过grunt,要创建一个node-webkit 非常简单,我已经写好了一个node-webkit的grunt-init的项目模板. 至于怎么安装这个模板,跟官方的教程一样;node-webkitlinux or macgit clone git@github.开发基于node-webkit 开发pc 客户端语言支持 c/c++,html5,css3,要开发一个oschina pc 客户端,我们只需要知道,这个项目是由node 和 webkit 构成,简单来说.node-webkit.首先,打开toolbar,在package..;node-webkit你只需要用grunt-init node-webkit就可以创建完毕.js 文件里面,就是你可以用HTML 5和 node 进行桌面客户端开发,而且客户端还是同时支持在 WIN. nodewebkit1PS: 如果你不想接触grunt,不过我建议还是学一下grunt,你可以到github/..让我非常伤心,可以直接点击左边的刷新按钮即可看到我们修改的运行结果.用node-webkit开发客户端是不是很方便了,MAC.nw 就可以运行起来了;.grunt-init/.github.io/..连个 win8 风格的progress 都没..,只需要把node-webkit 的运行环境配置到环境变量,然后运行nw app;node-webkit#quick-start 学习如何启动一个node-webkit应用. 下面,node api.好了.nw 这个目录就是我们准备要开始写的pc 客户端的项目文件夹,运行node-webkit项目很简单:youxiachai/grunt-init-node-webkit,我们用web 开发的技巧来开发pc 客户端毫无问题.具体代码在app/model/oschinaApi,就用一个简单的例子来展示一下node-webkit的魅力.创建项目本例子基于Grunt构建如果...json文件里面有个toolbar的参数,设置为true即可,就会见到如下图所示:toolbar点击那个三横线的按钮,一个chrome 风的调试窗口就出来了.console开发的时候, js. node-webkit本质就是一个可以跑node 的浏览器,所以,从android 客户端源码里面可以得到相关api. 如果你是windows 用户md %USERPROFILE%. 不过最后的效果,还是很难看,就凑合着过去吧.;grunt-init-node-webkit.git %USERPROFILE%.grunt-init\bootmetro/,相关api 就行了,并不需要重新运行程序来看结果,我们.git ~/..蛋疼死了.效果图oscdesk1oscdesk2这个就是所谓的 win 8 风格的客户端了吧,剩下的就是web 开发..node-webkit 是一个很神奇的桌面客户端项目. 用node-webkit 开发一些restful 应用是非常舒服的事情,只要有个不错的界面.关于node-webkit的东西也就这么些了; 90% 的时间都是调整界面.,不在本文node-webkit范围内,所以就不再啰嗦. 展开
有个node.js写的界面的操作系统叫啥来着
基础学习篇>。
Terminal在Linux系统中叫终端,简单来说也就是命令行界面。
当然比较广受推荐的书为。
当然也可以用来写程序。
但是Linux并不自带,要自己安装。
您如果对Linux感兴趣。
Vim是Linux下非常常用的一款编辑器软件,也就是用来编辑各种各样的文本文档的,也是用命令操作,功能强大,在这个界面里面可以通过命令行指令对系统进行操作,但学习较难,这是一本非常好的新手入门书籍,看完之后保证对Linux就会有较熟悉的理解。
当然Terminal,功能强大,只是操作和学习稍复杂。
这些不同版本的系统都会遵守一个标准:<鸟哥的Linux私房菜,因此包含的东西基本都一样,只是个别的操作和组织有点不一样。
您说的Terminal所有系统都有的,可以适当看一些Linux的入门书籍您说的所有Linux系统其实指的应该是各大厂家根据同一来源的Linux内核发布的可安装程序。
也就是我们平时下载用的Linux操作系统...
Nodejs + Chromium 开发web桌面应用,有没有什么轻量的框架
这个话题有点大。
看你学的语言,还有你想干什么。
学java,C#这种,可以做web开发且这个是主流。
java可以转android,专门再学习android相关的部分就可以了,基础语法是java。
提到web,其它的相关技术还有:html,css,js等。
这些熟练的可以做前端,现在也很吃香。
学VC++,可以做很多。
做windows的桌面程序,可以用原生的win32API,虽然大部分人不这么干。
可以用MFC,还有QT什么的第三方的GUI库,甚至你想用GTK也没人管。
能写DLL,MFC DLL给其它程序做调用。
能开发windows驱动程序,WDM或者WDF框架可选。
当然,这个要求功力就比较深了,需要对windows底层和windows内核有了解,可能还用到汇编什么的。
这个方面仅仅了解,不做太多说明。
再其它的,任何系统级软件和对效率高要求的大型桌面应用都可以用VC写。
各种网游基本都是VC++写的。
数据库,windwos系统本身,VS编译器,游戏引擎啥的。
这些都平常人做开发比较少能接触到的部分,但VC一个很重要的功能就是做这个,天生有优势。
吾等码农都跑去用java,C#写网站去了,大VC学的人都少。
delphi borland的划时代神奇产品。
内置语言是pascal的变种。
适合做快速的windows桌面开发。
这两年已经明显陷入颓势了。
现在脚本也很流行,有兴趣可以学学:python:可以做为程序的嵌入式脚本,开发web程序和本地GUI界面都行。
这个语言最近很流行。
做web的话,豆瓣是python做的。
ruby:日本人的“红宝石”,主要在ruby on rails这个框架,这个简称ROR。
特点是web程序的快速开发。
github是ROR框架的。
这个也算流行。
ruby语言本身也可以作为嵌入式脚本使用或者开发一些其他的应用。
javascript:这个不能忽略。
它本身作为浏览器脚本存在。
现在有各种流行的框架,jquery,jquery-ui 这些是免费的,收费的就更多了。
还有人用js结合chrome的V8引擎,搞了个node.js出来。
用V8解释js,来开发网络应用,可以实现web服务器,特点是异步编程,擅长处理高并发。
lua:号称胶水语言,致力于嵌入式脚本应用。
各种游戏的配置脚本很多都是lua的,很多程序的配置脚本也是它。
本身语法简单,调用方便,语言表述能力强,简单易学但是主要在嵌入式脚本上。
语言本身没有提供其他的核心库,想拿来做单独的应用不现实。
上面是我知道的主流脚本语言,冷门一些的还有:haskell,lisp啥的,都是在特定领域有一定优势的语言。
electron开发桌面程序问题
但是如果没有自定义名字跟icon,好像还不够酷.在这个创建安装程序的步骤2中,我们把程序代码都复制到了这个文件夹里面,如下图:如果后续我们的程序要进行更新.nupkg创建安装程序把应用程序打包成nuget包之后,然后在工具栏里面选择Action,ReplaceIcon,如下图:然后选择自己想要替换的.ico文件就好4,在electron的官方文档auto-updater中,如下图,targetfolder属性需要设置为lib/net45,否则并没有用。
下载squirrel.exe和nuget.exe,也可以选择直接安装Squirrel.Windows(需要有vitualstudio环境)。
如下图。
双击我们的setup.exe进行安装app的测试,如果中途有任何出错,在C,参考本文种中创建安装程序部分的步骤2-4,对setup,在命令行手动创建快捷方式的命令是Update.exe--createshortcutelectron\electron,就可以用squirrel创建一个安装程序了.nuspec重新生成nuget包,然后再使用squirrel--releasify,其中windsow平台上面.exe--help,来进行调试:如果没有出现这三个文件;app。
创建自定义安装包在上一步,我们已经把自己的exe发布出来了,如下图。
最终应用会被安装在C:\:安装之后打开C.exe:这里需要注意:根据Squirrel文档说明,注意Squirrel的日志文件也存在目录中。
但是别慌,编译一段时间后程序会创建一个release文件夹,在electron。
5.nuspec如下图,sqruieel是进行了增量替换,还是将之前的整个应用进行删除,添加sqruieel事件的监听就好了。
如下图:我顺便把程序卸载时,删除快捷方式的监听事件也写了进去,提到了在几个平台mac,调试安装问题的时候非常有用.这其实并不够,我们还需要更换exe里面的版本信息,打开VersionInfo,把FileDescription和ProductName改成我们自己的项目名称,最好把SquirrelAwareVersion也更改一下,在命令行中输入nugetpackPackage:\Users\Administrator\AppData\Local\SquirrelTemp里面可以看到安装日志,重新生成setup.exe,编辑version标签3.参考本文种中创建安装程序部分的步骤2-4,linux,我们需要按照之前的步骤。
本文主要提及如何在windows平台下:自动创建快捷方式进入我们安装之后的文件夹,命令行进入C,windows下electron的自动更新方法,一个可以用来给electron应用的安装更新卸载添加快捷方式的工具,毕竟是版本号。
5.做完这些之后.exe.exe进行自定义。
最后。
还有程序的更新和删除事件监听,但是这两个事件,我还没有进行测试,文章中建议先用grunt-electron-installer模块来创建windows安装包,grunt这个工具是由Squirrel集成的;AppData\:1,可以查看目录中的SquirrelSetup。
在根目录打开命令行。
进而了解下Squirrel这个工具.用下面的命令创建一个nuget包,nugetpackPackage.exe上面右键出现菜单,按照自己项目的需要编辑这个文件,但是如果是node_module依赖包的更改,这个方法并不可行。
更新应用其实我一直很想做增量更新,在这里我的更新方法有两个,所以我们需要创建自定义的安装文件。
下载安装ResourceHacker2.打开这个项目目录:\Users\Administrator\AppData\Local目录,可以看到app安装在这里,用Squirrel创建electron的.exe安装包,第一是在程序的入口添加js;Local\.nupkg这个时候命令行中没有任何提示。
创建nuget包我们的方法是使用nuget工具创建Nuget包,再重新安装,可以看到不知道从上图你有没有得到什么提示,反正我发现了:\Users\Administrator\AppData\Local\[yourappname],执行Update,但是我并不清楚,在文件夹放入我们未打包的electron应用,如下图:4.在my-build根目录中,打开命令行执行nugetspec如下图:生成spec包初始文件5.新建文件夹如my-build,把下载好的squirrel.exe,nuget.exe和setup.exe放进去,发送请求到服务器,拉取更改文件进行本地替换。
如下图:研究electron自动更新的时候,发布应用。
通过执行setip.exe安装,程序会自动删除之前的应用。
2,首先我们需要把更改的文件直接复制替换到这个文件夹。
2.打开Package.nuspec;Users\。
第二个方法比较安全而且快捷通过发布一个版本号不同的exe,如下.编辑器打开Package.nuspec;标签用来制定未来的exe的icon:之后在目录中会出现这个包命名规则就是.,nuget包,RELEASES文件和安装文件Setup,如果我们想让应用在安装过程中静默地创建好快捷方式,那就需要在app的安装之后相反设法执行这句代码。
因为我们的.exe会在安装之后自动打开程序,所以我在程序的入口main.js.log,点击OpenusingRescourceHacker。
3.ResourceHacker应用运行之后中,在以下界面中选择Icon.exe-i[youricotoute]\[appname]文件夹中;Administrator\,执行以下命令:squirrel--releasify.。
注意上面这条squirrel命令,可以用来设置setup.exe在安装过程中用传统icon还是用自定义的图片文件。
使用Squirrel--help可以查看帮助发布应用和安装应用把上一步生成的setup.exe发送给想要安装这个应用的用户,就可以了.ico所以,里面有三个文件,再使用Squirrel工具创建前言,一个可以自动更新又安装便捷..nupkg命令创建安装文件。
6.打开之后生成的releases文件夹,根据里面的报错 展开
java软件开发培训机构有哪些?怎么选择培训机构呢?
一般来说,html5的功能展示是依赖于浏览器的。
浏览器提供了多少可调用的接口,使用html5就可以实现多少功能。
但是浏览器一般不会实现html5完全访问或控制本地资源的权限,所以实现的功能还是有限的。
不过目前也有许多通过html5+css+js甚至结合其他语言实现的桌面程序。
例如目前可以采用的方案举几个例子:1、Node-WebKit1.1 Node-WebKit能把HTML5应用打包成本地桌面应用,在Windows、Linux或Mac平台上,不需要其它依赖就可以独立运行你的HTML5应用。
1.2 支持Node.js。
可以使用Node.js的所有模块来开发app或游戏。
不仅可以使用Node.js原生的模块,而且可以使用第三方的node.js模块。
2、heX 是网易有道团队的一个开源项目,允许采用前端技术(HTML,CSS,JavaScript)开发桌面应用软件的跨平台解决方案。
这个项目目前处于停滞状态。
3、自己开发一下基于浏览器框架的应用。
例如基于谷歌浏览器核心,前端使用浏览器渲染功能结合html5+css+js,后端使用c++开发。
...
如何看待 TJ 宣布退出 Node.js 开发,转向 Go
我是从强类型静态语言(15年)转到 Node.js + JS 这种动态语言的(3年)。
而 TJ 是从动态语言(Flash 的 ActionScript 起步)转到 Go的。
可以说两个世界各有自己的优缺点。
Node.js + JS 可以说是用来包容各种可能性的。
我用的时候是从照搬之前的OO概念,到后来的函数式编程,流编程(应该算一种特殊的函数式编程),发现世界上的问题真的是没有最优解。
每年都能在 node.js 社区发现全新的颠覆思维惯性的新可能。
例如,编写真正前后端复用的代码,然后通过 Browserify 在客户端复用;通过 Stream 来连接各个应用组件;基于 LevelDB 构建自己的数据库。
Callback Hell 我通过以下几个方面克服: 1. CoffeeScript:从视觉上减少嵌套干扰。
2. npm 哲学,将你的代码抽象出尽量小的重用部分,单元测试覆盖,分而治之。
3. 新的连接架构,例如: stream,或者类似 express 的插件机制 大约1年后,我就不觉得这是一个困扰了,而收获却是性能。
目前,回调逻辑比任何其他方法都能确保并发性能。
这一点 TJ 提到了,你是要“performance” 还是"usability",他的选择是“usability”,毕竟他是从 JS 走向强类型,而不是反过来的。
但是不得不说,越多的可能性对开发者的素质要求越高。
如果团队成员中缺少那些“真正的老兵”,那么我会选择类似于 Go、Java 或者 .NET 这种强类型系统,毕竟可以有紧密的编程范式来约束大家,省得犯低级错误。
谁都没想到,JS的成就其实来自于自身的缺陷(非常松散的语法),各种软件方法学都在这里碰撞。
这和 Go 是完全不同的。
另外, Go 包管理由于不支持 Side-by-side 的包引用(算是静态语言的一种限制吧),因此很难让 Go Package 社区(无论是否有集中存储) 形成像 npm module 这样的生产力井喷效果。
仔细看看他的博客,写的很清楚了。
他的兴趣是在分布式计算上,这个领域用Go当然是最合适不过,他还会继续维护koajs,其他项目则在找人接手。
提到了一些nodejs的缺点,易用性,工具、debug、错误信息,这些都是nodejs客观存在的问题,JS语言的先天不足在服务端语境中被放大了。
当年mogorel的作者Zed Shaw谩骂式地宣布脱离ruby圈子转投python,这兄弟表现得够理智了,纯粹是由于技术选择,而不是出于厌恶社区的自满(当然也有一些对joyent团队不聚焦到易用性上的不满)。
我觉得不必过于放大事情的影响,但可以让nodejs粉丝们更加客观一点,给nodejs做出更准确的定位,那就是好事。
虽然语言只是工具,但是对于做的事而言,正确的“工具”往往会达到事半功倍的效果。
在这一点上我一直认为,前后端统一也就是个笑话。
即便不说JS语言层面上的天生弊端,比如过于灵活以至于混乱的语法带来的工程上维护成本的巨大,V8本身的稳定性对于后端而言就是个巨大的挑战。
Google V8起源于Chome,追求速度,以空间换时间的做法在当前大内存时代并不那么硬伤,稳定性稍差也不是什么很致命的事。
但是在服务器上,一寸内存一寸血,谁都不像OOM以至于Crash。
速度快慢也没那么重要,服务端追求扩展性,在数百数千甚至数万这个量级上单台服务器极致性能往往没那么重要。
在这个基础上,稳定性和可用性最终决定了你服务质量,而这些,都是目前V8或者说node的短板。
同时,服务端要求对所用的技术有足够的可控性,node或者说js大量的black magic削弱了系统工程师在这方面对其的信任,出了问题没办法调,找不出bug,downtime上升,谁负责? 为何Java被人喷死板依旧占据了那么大的份额?为何C那么老依旧是服务端程序猿的基础?为何Python慢成狗还是有很多公司青睐?无他,只是因为他们经过了大量的考验,证明是可靠的并且可控的罢了。
况且即便是Python,最新一系列技术加持之后,对比Node还真不慢…… 至于为何转向Go?我个人认为Go抓牢了服务端开发的几个大需求,首先是抹平服务器差异,俗称跨平台。
然后是标准库做得很相对而言很强大,系统细节屏蔽得很不错。
再者是语言层面即满足了脚本小子们所需要的动态性和开发效率,也满足了系统工程师的静态需求来维持项目的有序性和最终输出结果的效率。
同时对于未来服务端开发趋势的迎合,比如原生Coroutine并且极力的优化其内存消耗等特性,对于服务端开发而言是极大的提高了生产力的同时也让代码逻辑和可读性大大的提升。
基于以上几点,Go确实是当下作为性能型服务端开发语言中比较好的选择。
而Node的核心V8,作为一个桌面项目,在这些方面缺陷太过于明显。
做demo不错,上到工程级别就WTF了,至少对于我来说,lua/python/go,甚至是未来的rust,都是更好的选择。
转载请注明出处51数据库 » node 桌面软件开发