我是一名java开发人员,我想为网络开发富客户端。我的问题是我讨厌javascript,flash等等,而且大多数编程语言通常用于Web客户端。我很乐意继续使用java来开发可以在常见的Web浏览器上使用的Web客户端,为什么不在新的时尚移动设备上使用。我正在寻找一些建议/警告,以作出一个很好的选择。
Java applet似乎非常适合我的情况,但根据一些传言,它并不是一个真正可持续的解决方案。我应该看看JavaFX吗? GWT?还有其他可能吗?
答案 0 :(得分:4)
你想做什么? Vaadin基于GWT,因此使用HTML5 + JavaScript,它比Java Applet慢得多。我已经尝试过船和带有Swing的小程序很多 比Vaadin快。
使用Java Applets,Swing和Hessian,您可以获得业务应用程序无与伦比的性能。 Hessian是一种非常快速的二进制Web服务协议。使用JavaScript,您通常只能使用像Json这样的文本编码Web服务协议和各种基于XML的协议。与二进制协议相比,基于文本的协议消耗了大量的CPU,内存和带宽 - 而且它们并没有真正为您提供任何优势。
Applets的弱点是硬件加速图形,如OpenGL和多媒体。如果你正在开发游戏或电影播放器,Applets就不那么棒了。
JavaFX承诺修复硬件加速图形性能和视频编解码器。根据您的描述,您不清楚是否需要等待。
但是,如果你真的需要比标准applet更多的东西,那么web start可能是一个解决方案。它有点像带有签名或未签名应用程序的旧ActiveX,它可以获得额外的权限 - 通过sun签名或者询问用户。这将允许您使用JOGL或3D场景图引擎。
答案 1 :(得分:1)
您非常适合JavaServer Faces(JSF)。是的,试试吧。看,你看起来很棒。 JSF的吸引力是1.它是标准化技术,是Java EE 2的一部分。它依赖于任何JavaScript编码的Java编程(根本没有完成)。 3. JSF已经存在了一段时间,它运作良好。此外,JSF使用Ajax开箱即用(额外的奖励),而无需编写单个JavaScript音节。唯一的缺点是你必须编写一些html代码,而“facelets”基本上是html页面,其中包含一些你需要学习的额外标签。但绝大多数实际处理都是用Java完成的。 JSF也可以在没有Java EE额外包袱的情况下工作,它可以与像Tomcat一样的服务器(或Glassfish或JBoss等)和浏览器以及Java SE(桌面版)一起工作。
答案 2 :(得分:1)
我认为JavaFX作为基于Java的RIA技术看起来非常有前途。虽然它很先进。 Mac OS X和Linux版本仅作为预览版提供。移动和其他设备支持已经公布,但尚未公布,AFAIK。
答案 3 :(得分:1)
Vaadin也是合适的,完全不需要Javascript或HTML,即使是新的组件开发也是如此。页面布局使用布局管理器(如Swing)完成。新组件可以由现有组件组成(同样,如Swing),也可以使用GWT从头开始编写(相当简单,纯Java)。
有一个合理的附加组件选择,涵盖了核心框架中没有的一些功能。
该框架非常易于使用具有Swing经验的Java开发人员,并且具有开箱即用的外观和感觉。但是,布局管理器确实难以使用CSS更改外观 - 添加边框等简单任务很难。
布局也相当“沉重”,这意味着Vaadin网站可能会感觉有些迟钝。根据我的经验,感觉仍然比一些较重的JSF框架好。
它与所有主流浏览器兼容。
示威者:http://demo.vaadin.com/sampler/
你也可以考虑Wicket。这有一个类似的基于组件的方法,但组件是使用简单的HTML片段定义的,这导致更轻的DOM(因此更好的浏览器性能)和更好的外观和感觉控制。然而,Wicket的学习曲线更为陡峭。
答案 4 :(得分:0)
在尝试GWT并与其所谓的超级开发模式挣扎之后,我发现JavaScript编程并不那么痛苦。我强迫自己学习和练习,最后我完全采纳了它。 JavaScript中有许多不错的东西和大量的库。在我的案例中,我对人们的建议就是坚持学习JavaScript,例如使用w3schools tutorial。