Web开发

注册

 

发新话题 回复该主题

客户端软件GUI开发技术漫谈原生与跨平台 [复制链接]

1#
白癜风康复病例 http://m.39.net/pf/a_6298331.html

WinForm是·Net开发平台中对WindowsForm的一种称谓。

如果你想深入的美化UI,需要耗费很大的力气,对于目前主流的CSS样式表来讲,美化Winform的界面以及自定义控件是需要耗费更多的时间的。

WPF

基于XML+C#+CSS的呈现方式让它在UI上有了更加灵活的设计宽度

WPF和WinForms是两种完全不一样的UI技术,WPF也并不能完全取代WinForms。

WPF不能运行在其他操作系统,并且在XAML中编写样式表,通用性还是不如HTML强,从学习应用的范围来讲,还是HTML更好一些。

UWP

微软为了针对移动端市场开放的开发框架,如果你的APP只需要运行在Windows下,我认为WPF或者UWP是最好的选择,毕竟在调用系统原生API上微软的亲儿子们有着巨大的优势。

windows上各种各样的技术开发的IDE和其他程序

性能上:Java最差-Electron-WindowsForms-原生-WPF

占内存:Java最多-Electron-WPF-WindowsForms-原生

Java阵营

Swing

零几年学Java的老头子们几乎都是从Swing开始学起的,Swing谜一般的默认UI审美观让我直接放弃了继续学习下去的动力。

JavaFx

优点在于可以跨平台,缺点在于整个生态环境非常不好,与Winforms一样,自定义一些控件相对比较困难。

Adobe阵营

Air

Flex程序,它的优点在于可以跨平台,可以基于Flash做出很多超级炫酷的动画特效,但是缺点主要就是效率实在是太低下了,并且在调用操作系统原生API的时候也非常不方便。随着Flash在浏览器上的节节败退,Air也悄无声息的消失在了大众的视野当中。

Apple

Objective-C(或现在的Swift),跟Winforms一样,可以非常方便的调用操作系统底层API,劣势也一样,不跨平台、自定义控件比较复杂,可用资源太少。现在大多数程序员都是基于C#、Java进行开发,如果不是Apple死忠,根部不会花大力气研究

跨平台软件应用开发

直接元素开发肯定是最好的——这样的性能肯定最有保证,但是跨平台的主要优势在于代码逻辑的复用,减少各平台同一逻辑,因人而异的开发成本。对于企业而言,一套业务逻辑可以在多处使用是最理想也是最保险的。

Electron是由Github开发,用HTML,CSS和JavaScript来构建跨平台桌面应用程序的一个开源库。Electron通过将Chromium和Node.js合并到同一个运行时环境中,并将其打包为Mac,Windows和Linux系统下的应用来实现这一目的。通过Node它提供了通常浏览器所不能提供的能力。

electron的特点就是可以复用前端的各种轮子。所以它开发快,招人方便。

可以方便的通过Node.JS调用系统API、可以使用SQLite做本地字典项的缓存处理,可以将复杂的计算逻辑放在客户端进行,从而减轻服务器端的压力等等。

electron都成千上万个成熟项目在桌面里用了,什么flutter,javafx,swiftui,目前还是无法比

electron和node-webkit(现在叫nw.js)的区别:

。从概念上,Electron与nw.js很相似,但是他们有很重要的区别:一个主要的不同点是Electron通过GooglesChromiumContentModule来使用Chromium的功能,nw.js则直接使用了Chromium本身。

electron建立在Chromium和NodeJS之上的,一个负责界面,一个负责背后的逻辑

Cordova,PhoneGap

Cordova[kdb]是hybride类框架,基于HTML,CSS和JavaScript的,创建移动跨平台移动应用程序的快速开发平台

年10月4日Adobe公司收购了PhoneGap和PhoneGapBuild的新创公司NitobiSoftware,随后将Phonegap的核心代码剥离并捐给了Apache公司,并改名为了Cordova。

核心的东西就是H5与Native的交互原理、Bridge、定义的解析规则(Engine)

CordovaApplication是Cordova框架独立于不同手机操作系统的一个封装层。具体包括

WebApp层是开发人员编写代码的主要地方,应用程序以网页的形式呈现,在一个index.html的本地页面文件中引用所需要的各种Web资源,如CSS、JavaScript、图像、影音文件等。应用程序的配置保存在config.xml文件中。

对于使用cordovacli初始化的webapp在主目录下会存在一个config.xml,其中包含了整个app的一些基本信息:比如appName、app入口文件、白名单、webview初始化的一些配置、plugin信息、图标资源信息

WebView层用来呈现用户界面,即web页面的展现。例如,在Android平台是通过WebView控件实现web页面的呈现。

Plugins主要用于在JavaScript代码中调用各平台native的功能。Cordova项目已经包含一些核心的plugin,如电池、摄像头、通讯录等。开发人员也可以开发自定义的plugin,来实现所需要的功能。

MobileOS就是具体的手机操作系统层

Cordova预先帮我们预先封装了各种mobileos上最常用的本地api调用,然后以统一的JavaScriptapi形式提供给webapp开发者调用。

对于webapp的开发者来说,无需

分享 转发
TOP
发新话题 回复该主题