html5开发ria_用于RIA的JavaFX 2与HTML5

html5开发ria

这些天来,我们正在启动一个新项目,以实现Rich Internet Application(RIA) 。 第一个问题是:我们应该使用哪些技术和框架? 后端将是Java或其他现代JVM语言,因为我们是经验丰富的Java开发人员。 在大多数用例中,我们也更喜欢Web框架,该框架主要允许使用Java进行编码,因为我们中的许多人仅具有有关HTML和JavaScript的基本知识。

必须为即将到来的项目做出决定: 我们是否应该使用HTML5或JavaFX 2实现Web客户端? 如果您向Google请求“ javafx或html5”,则找不到太多信息。 在大多数情况下,您最终将在2011年的几次IT会议上进行一次演讲:“移至客户端:JavaFX和HTML5演讲”。 这是Slideshare链接(来自JavaOne 2011): http ://www.slideshare.net/steveonjava/moving-to-the-client-javafx-and-html5。 因为此演示文稿无济于事,所以我们看了一下优点和缺点,这些优点和缺点在此博客文章中列出。

但是,让我们从头开始...

什么是富互联网应用程序(RIA)?

RIA没有真正的定义。 因此,这是此博客文章的定义:

“丰富的Internet应用程序提供具有动画,效果和多媒体功能的外观现代的Web应用程序 Web应用程序几乎无法识别为Web应用程序。 没有具有表单,下拉框或表格的经典HTML用户界面。 网络浏览器的典型功能(例如书签或前进/后退导航)通常丢失/不需要。 有时(即,如果您使用Web框架而不只是HTML5),则必须安装插件(例如Java Runtime Environment或Adobe Flash Player)。 Pokerstars( www.pokerstars.com )是RIA的一个很好的例子。”

备择方案

在JVM环境中,可以使用几种替代方法来实现RIA:

  • 纯HTML5 :很好的解决方案,但是您不能使用Java或其他JVM语言进行编码。
  • Adobe Flash / Flex :已死! 甚至Adobe也转向HTML5。
  • Microsoft Silverlight 死! 甚至Microsoft Windows 8也转向HTML5。 (当然,Silverlight并不是真正的JVM解决方案,但是您可以使其与JVM后端一起使用。为了完整起见,我将其添加到此列表中。)
  • JavaFX :基于Java的解决方案(在将来替换为Swing)。
  • JavaFX以外的其他JVM Web框架(JSF,GWT *,Wicket,Tapestry,Grails,Lift,“ You-Name-It”) :并非用于实现RIA。 是的,您可以使用这些框架实现RIA。 但是,发展是丑陋的,RIA也将是丑陋的。 那为什么要这么做呢? (请记住我上面对RIA的定义,然后再开始在评论中抱怨!)

* GWT还已经对某些功能提供了很好的(实验性)HTML5支持: http : //www.google.com/events/io/2011/sessions/gwt-html5-a-web-developers-dream.html =>如果是Google继续在GWT中添加对HTML5的支持,这在未来几年中也可能是一个不错的选择-您仅使用Java开发,并且不需要浏览器插件,因为GWT可以生成纯HTML和JavaScript。 但是,也有传言称,由于Google的新语言Dart,GWT快要死了。 Google尚未对此发表评论,也未发布GWT路线图。

因此,问题是何时使用JavaFX 2而不是HTML5来实现RIA(从Java开发人员的角度来看)? 如果您对HTML5或JavaFX不太了解,则应在Wikipedia或google上查找其他文章。

什么是HTML5?

=> http://en.wikipedia.org/wiki/HTML5

重要提示:HTML5是HTML + CSS + JavaScript! 它为现代Web开发提供了多个下一代功能,例如离线存储或应用程序缓存。

什么是JavaFX?

=> http://en.wikipedia.org/wiki/Javafx

提醒:我们正在谈论JavaFX 2.0。 与早期版本的主要区别在于JavaFX现在提供了Java API而不是新的编程语言(JavaFX Script)。 因此,对于Java开发人员来说很容易学习。

为什么选择HTML 5 / JavaScript?

优点

  • W3C标准
  • 这是未来–毫无疑问!
  • 无需插件,可以在每个(受支持的)Web浏览器中使用
  • 已经有许多小部件和功能可用

缺点

  • 使用HTML / JavaScript而不是Java进行开发=> Java开发人员的主要缺点!
  • 规格尚未最终确定(根据2014年之前的路线图!)
  • 并非所有浏览器都支持(尚未)
  • 跨浏览器开发是必需的(jQuery或Dojo之类JavaScript框架可以解决此问题,但仍然会增加工作量)

可能,HTML5还有许多其他优点和缺点。 但是,命名的名称应该足以决定何时使用HTML5或JavaFX。

为什么选择JavaFX 2?

优点

  • 提供Java API =>利用您的Java技能并使用现有的JVM功能和库
  • 提供用于其他JVM语言的DSL,例如Groovy(GroovyFX)和Scala(ScalaFX)。 阅读本文以了解如何使用现代JVM语言而不是Java来受益:“ JavaFX 2.0和Scala,如牛奶和饼干” => http://www.javacodegeeks.com/2012/02/javafx-20-and- scala-like-milk-and.html
  • 可选:“布局”语言FXML以将UI定义从行为中分离=>在编程(使用Java)和布局(使用FXML)之间选择自己喜欢的语言
  • 后端和Web客户端具有相同的开发环境(包括调试,重构等)
  • 没有跨浏览器的问题
  • CSS支持(如HTML)
  • HTML和/或JavaScript可以集成在JavaFX应用程序中
  • Swing和JavaFX可以在同一应用程序中使用,因此可以扩展现有的Swing应用程序
  • JavaFX 2提供了一个统一的体系结构,可以编写一次应用程序,然后将其部署到各种上下文中(独立的应用程序,嵌入在Web浏览器中或通过Java Web Start运行)。 将来会添加其他上下文(例如,在移动设备上运行相同的应用程序)。

缺点

  • 客户端上需要Java Runtime Environment
  • JavaFX只有一部分是开源的。 Oracle JavaFX运行时和SDK将根据Java二进制代码许可继续发行
  • MacFX的JavaFX仅作为Developer Preview提供(GA计划于2012年中推出)=>参见JavaFX路线图
  • JavaFX for Linux尚不可用(计划在2012年第三季度开发者预览版)
  • 尚无关于JavaFX Mobile未来的信息(至少我没有找到任何东西,如果有人有链接,请添加评论!)
  • 提供比HTML5更少的小部件和其他功能
  • 尽管JavaFX是Swing的(未来)替代品,但由于几个新概念,开发有所不同。 当然,这是添加RIA功能(例如动画)的结果=>因此,这并不是真正的缺点,并且Java开发人员学习一些新概念比学习HTML和JavaScript更容易

结论

HTML5和JavaFX 2都非常适合实现RIA,包括媒体,图表,动画等。最终,它们都有不同的目标受众:

  • 公共Web应用程序应使用HTML5来实现,因为在大多数情况下,都不需要浏览器插件。 因此,即使对于Java开发人员,HTML5也无可替代。
  • 在企业内部,可能需要插件。 无论如何,Java可能已经安装在大多数计算机上。 如果所有必需的小部件和其他功能都可用,则JavaFX是企业应用程序的更好选择,因为Java开发人员可以通过在其著名的JVM环境中进行开发来轻松实现RIA。

享受用HTML5或JavaFX 2实现RIA的乐趣。顺便说一句:我们可能会选择JavaFX作为我们的内部项目,因为所需的Java插件不是止步不前,而且大多数同事都是Java开发人员。

参考: 何时将JavaFX 2代替HTML5用于Rich Internet Application(RIA)? 来自我们的JCG合作伙伴 Kai Wahner在有关Java EE / SOA /云计算的博客上的博客。


翻译自: https://www.javacodegeeks.com/2012/05/javafx-2-vs-html5-for-ria.html

html5开发ria

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/355199.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js里面拼接代码和使用ModelAndView

js里面拼接代码和使用ModelAndView1.js里面拼接代码 <tr><td class"tdTitle">性别</td><td class"tdCont"><select name"yhxb" id"yhxb" class"inputSel" style"width: 100px"><…

哔哩哔哩swot分析_哔哩哔哩2020校园招聘游戏运营笔试真题

在前不久《英雄联盟》S9世界大赛总决赛上&#xff0c;中国FPX战队以3&#xff1a;0横扫欧洲G2最终夺得S9世界冠军&#xff0c;国内玩家万分激动。总决赛刚结束不久&#xff0c;B站以8亿元价格拍得《英雄联盟》全球总决赛中国地区三年独家直播版权。作为主打年轻人群体起家的产品…

P2280 [HNOI2003]激光炸弹

P2280 [HNOI2003]激光炸弹 题目描述 输入输出格式 输入格式&#xff1a;输入文件名为input.txt 输入文件的第一行为正整数n和正整数R&#xff0c;接下来的n行每行有3个正整数&#xff0c;分别表示 xi&#xff0c;yi &#xff0c;vi 。 输出格式&#xff1a;输出文件名为output.…

在Spring Boot中使用配置元数据来配置您的配置

Spring Boot 1.3.0中发布了许多更新&#xff0c;但是其中一个对我很突出&#xff0c;因为我以前并不了解此更新&#xff0c;它的状态使其成为一项真正有用的功能&#xff08;不幸的是&#xff0c;撰写本文时仅在Spring Boot中可用&#xff09;这个&#xff09;。 我正在谈论配置…

jsp实现数据禁用和只读

jsp实现数据禁用和只读

java事务不生效场景_讲一下,我最近帮忙面试的几个“高级”JAVA,真的心累

最近看了很多简历&#xff0c;很多候选人年限不小&#xff0c;但是想着也不能通过简历就直接否定一个人&#xff0c;何况现在大环境越来 越难&#xff0c;大家找工作也不容易&#xff0c;于是就打算见一见。在沟通中发现&#xff0c;由于年限不小&#xff0c;他们的定位基本都是…

.net:Code First 创建或更新数据库

控制台输入命令&#xff1a; 切换到项目的project.json 文件所在文件 dotnet ef migrations add XXX dotnet ef database update Visual Studio程序包管理器控制台&#xff1a; Add-Migration XXX Update-Database转载于:https://www.cnblogs.com/Cchblogs/p/7155781.html

jQuery实现数据映入form表单

jQuery实现数据映入form表单//显示用户信息 function show(type, yhdm) {return $.ajax({url: getUrlPath() /userManage / type,type: "POST",data: {"type": type, "yhdm": yhdm},dataType: json,success: function (data) {$(#yhid).val(d…

gin 生成api文档_gin-swagger 生成RESTful风格OpenAPI文档

&#x1f4dc;什么是swaggerSwagger 是一个 API 生成工具&#xff0c;可以生成文档。 Swagger 是通过编写 yaml 和 json 来实现文档化。并且可以进行测试等工作。通过 swagger 可以方便的生成接口文档&#xff0c;方便前端进行查看和测试。&#x1f527;安装 swagger在我们的项…

antlr 教程_ANTLR教程– Hello Word

antlr 教程Antlr代表另一种语言识别工具。 该工具能够为任何计算机语言生成编译器或解释器。 除了明显的用途&#xff08;例如需要解析一种真正的“大型”编程语言&#xff0c;例如Java&#xff0c;PHP或SQL&#xff09;外&#xff0c;它还可以帮助执行更小&#xff0c;更常见的…

VBA操作word生成sql语句

项目开始一般都是用word保存下数据库的文档 但是从表单一个一个的建表实在是很困难乏味&#xff0c;查查资料 1、可以生成一个html或者xml&#xff0c;检索结构生成sql。但是这个方式也蛮麻烦 2、查到vba可以操作word读取表格。所以采用这种方式写了一个小程序。这样就可以直接…

jQuery实现禁用和只读

jQuery实现禁用和只读<td class"tdTitle"><i class"required">*</i>用户ID</td><td class"tdCont"><input class"inputText noNull param" id"yhid" notNull"用户ID" name"…

idea 单独引入jar_Intellij IDEA 添加jar包的三种方式

一.直接复制&#xff1a;(不推荐)方法&#xff1a;直接将硬盘上的jar包复制粘贴到项目的lib目录下即可。注意&#xff1a;1.对于导入的eclipse项目&#xff0c;该方式添加的jar包没有任何反应&#xff0c;用make编译项目会报错2.对于在idea中创建的项目&#xff0c;该方式添加j…

Java中使用ArrayList的10个示例–教程

Java中的ArrayList是HashMap之后最常用的集合类。 Java ArrayList表示一个可自动调整大小的数组&#xff0c;并用于代替数组。 由于创建数组后我们无法修改数组的大小&#xff0c;因此我们更喜欢在Java中使用ArrayList&#xff0c;一旦数组满了&#xff0c;它就会自动调整大小。…

[SoapUI] How to create a random UUID in each Request's Headers

${java.util.UUID.randomUUID()} is OK 转载于:https://www.cnblogs.com/MasterMonkInTemple/p/7159589.html

service层拼接XML

service层拼接XML1.xml文件样式 <?xml version"1.0" encoding"UTF-8"?> <rows><userdata name"totalnumber">21</userdata><row id"1"><cell>1</cell><cell>案号</cell><…

蓝桥杯评分标准_蓝桥杯比赛要求

七、奖项设置及评选办法7.1省赛1.参赛选手奖省赛每个组别设置一、二、三等奖&#xff0c;比例分别为10%、20%、30%&#xff0c;总比例为实际参赛人数的60%&#xff0c;零分卷不得奖。省赛一等奖选手获得直接进入全国总决赛资格。所有获奖选手均可获得由工业和信息化部人才交流中…

Node.js 国产 MVC 框架 ThinkJS 开发 config 篇

原创&#xff1a;荆秀网 网页即时推送 https://xxuyou.com | 转载请注明出处 链接&#xff1a;https://blog.xxuyou.com/nodejs-thinkjs-study-config/ 本系列教程以 ThinkJS v2.x 版本&#xff08;官网&#xff09;为例进行介绍&#xff0c;教程以实际操作为主。 按模块定义配…

td 首行缩进_工作中常用的CSS整理

一、文本样式1. 文字超出部分显示省略号单行文本的溢出显示省略号(一定要有宽度)p{width:200rpx;overflow: hidden;text-overflow:ellipsis;white-space: nowrap;}多行文本溢出显示省略号p {display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 3;overflow…

sql分条件查询总数

sql分条件查询总数<select id"getTotalCount" resultType"java.lang.Integer">SELECT COUNT(1) FROM T_USER<where><if test"yhbm ! null">YHBM #{yhbm} ORDER BY PXH ASC</if><if test"yh ! null">YH…