哪个java web技术要学习开发富Internet应用程序?

时间:2009-09-09 19:06:59

标签: java ajax gwt

我使用JSF(myfaces组件)开发了Web应用程序。但在响应式UI的这些日子里,JSF并不是很好。我听说过很多关于AJAX,GWT等的内容。所以我希望您对我应该学习哪些Web技术/框架以开发企业产品的Web应用程序有所了解。 我听到的一些网络技术是:

  1. ICE Faces(支持AJAX Bridge)
  2. GWT
  3. extJSextGWT
  4. JavaFX的
  5. Apache Wicket
  6. Jquery的
  7. AJAX
  8. 打开laszlo
  9. 上述哪一种或上述的组合对我有帮助?

    您可以对这些网络技术进行评级的一些参数是:

      
        
    1. 易于学习
    2.   
    3. Web应用程序代码的可维护性
    4.   
    5. 社区支持
    6.   
    7. IDE支持 - Eclipse或NetBeans
    8.   
    9. 现成的组件可用性(如文本框,表格,选项菜单)
    10.   
    11. 许可证 - 是否需要商业用途?
    12.   
    13. 用户体验 - 响应式用户界面。不应该迟钝
    14.   

    关于SO的类似question确实可以部分回答我的问题。想要更多信息。

    编辑: 答案整理: 根据答案: AJAX将是学习基础知识的最佳选择,然后学习JQUERY。任何基于组件的框架工作都可以补充ajax,jquery?

    编辑2: 如果我不得不设计一个像StackOverFlow这样的Web应用程序(在java平台中),这将是学习和采用的最佳选择?

      

    Wicket + Jquery,WiQuery

         

    GWT

         

    一些XYZ面孔   技术(RichFaces / ICEFaces)+ AJAX。

    一些与他们合作并且可以在上述参数中对其进行评分的人表示赞赏。

12 个答案:

答案 0 :(得分:5)

我强烈推荐Apache Wicket,我看到你评论/编辑了这个问题,说你倾向于使用Ajax / JQuery并要求组件框架补充那些。

基于组件的框架中的IMO,Wicket提供与第三方JavaScript库的最佳集成。我亲自评估了竞争者GWT,Tapestry和JSF - 但是Wicket让它变得非常简单:

  • 向HTML提供javascript> HEAD
  • 将ajax回调代码(或自定义javascript)注入网页
  • 在服务器端的有状态组件上调用事件
  • 在Ajax(XHR)请求触发之前或之后执行任意javascript

您可以在how to integrate YUI with Wicket上看到此博客文章,相同的概念可以轻松扩展到JQuery。

也就是说,Wicket内置的Ajax支持实际上使您无需编写一行javascript代码即可创建丰富的UI。考虑动态刷新网页的选择性部分,弹出对话框等。

我也知道一个名为WiQuery的Wicket-JQuery集成项目,但我还没有尝试过。

答案 1 :(得分:3)

我一直在GWT(使用GWT-ext)为我的最新项目工作,并且非常喜欢它。除此之外,jQuery一直是天赐之物,只要我没有更强大的框架,我就会使用它。

答案 2 :(得分:2)

AJAX只是一个(在我看来,毫无意义的)术语。

在我看来,jQuery是 做Javascript的方式。除非有一个不可逾越的requeriment禁止它的使用,我推荐它,如果你需要自己编写Javascript(注意,如果你使用GWT,你使用Javascript,但不是它,所以你不要需要jQuery)。

  1. 易于学习:你需要从传统的程序式JS中改变你的思维方式[jQuery仍然是程序性的,但具有很大的声明性方面]。如果您从未编写过Javascript,那么可能更容易理解
  2. Web应用程序代码的可维护性:非常
  3. 社区支持:相当多
  4. IDE支持 - Eclipse或NetBeans:我不这么认为。我不会错过它;我讨厌写足够的Javascript来让我错过IDE。
  5. 现成的组件可用性(如文本框,表格,选项菜单):jQuery UI有一点,而且有很多材料
  6. 许可证 - 是否需要商业用途?:Nope
  7. 您提到的其他技术:

    1. GWT:我相信如果您是目标内部网站点或类似的东西,编写类似桌面的网站(想想Gmail,而不是典型的内容网站),这很有趣。我想你需要做出相当大的努力才能让你的基于GWT的网站被搜索引擎抓取,并且可以被非复杂的浏览器使用(即GWT对于像一些手机这样的无JS浏览器是没用的)。
    2. JavaFX的。我相信这只是一个噱头。不会给Java applet增加太多,它没有Java那样的惯性。
    3. Apache Wicket:这是我的调查清单
    4. OpenLaszlo:如果你想在没有支付许可的情况下做Flash的话,看起来很有意思。
    5. 正如我的建议。

      我建议你先学习开发没有JS的网站。然后添加JS(使用jQuery),谷歌“渐进增强”。

      一旦你能做到这一点,你就可以学习使用像GWT这样的东西,并在合理的情况下使用它。

答案 3 :(得分:1)

如果你需要做相当数量的Javascript / AJAX,你肯定想学习和使用jQuery!如果它在1999年出现,它将为我节省多年的悲伤。

答案 4 :(得分:1)

Seam,Spring,Richfaces,Ajax4jsf

答案 5 :(得分:1)

我倾向于专注于基础知识,因此,您可能希望深入了解javascript,包括面向对象的JavaScript。

一旦你熟悉了javascript,就很容易找到这些库。

您可能想要了解一些有用的HTML5功能,例如标记。

您可能还想学习Actionscript 3,因为这将有助于您了解闪存的工作原理,因为您将知道Flash ide正在生成什么代码。我使用了一个ant脚本来编译我的actionscript代码,使用Eclipse。

Silverlight越来越受欢迎,但是,这需要VisualStudio Express,但它是Flash的强大竞争对手。

对于其余部分,传递参考可能很有用,因为您的列表并非详尽无遗,但要确保您能够很好地理解这些基础语言以及您可以快速获取的框架。

答案 6 :(得分:1)

如果您希望通过Web浏览器获得某种客户端/服务器体验,我建议您与Google Eclipse插件一起查看GWT。这种技术使您能够编写真正最具响应性的Web应用程序(从我的角度来看)。

否则,如果您想开发更传统的Web应用程序并只添加Ajax功能,您可以查看DWR(Direct Web Remoting)。这种技术使您能够将服务器端Java对象连接到客户端,以便能够通过JavaScript使用其功能。它将帮助您编写Ajax功能,并可能还有助于重用现有逻辑。

当然,jQuery总是一个不错的选择。

答案 7 :(得分:1)

我的选择是GWT,因为GWT程序用java编程语言编写,这种编程语言非常强大且易于理解。

jQuery和ext-js也不错,但我在JavaScript编程语言方面遇到了一些问题。这种编程语言非常容易出错。

Apache Wicket编码喜欢GWT,但它是服务器端技术,它是一项繁重的技术。

因为JavaFX程序需要插件不是我的选择。

如果您没有JavaScript问题,我建议您使用jQuery或ext-js。

答案 8 :(得分:1)

我和你在同一条轨道上,试图找出哪个是我的服务器端+客户端开发工具集,用于庞大的互联网站点。 据我所知,一如既往,它取决于您需要的Web应用程序的类型。

有些人使用不同的javascript框架,基于易用性,声明性,面向对象等。

有几件事需要考虑: 1)客户端技术   1a)“核心”客户端技术:框架   1b)UI客户端技术增强 2)服务器端技术

对于“核心”javascript框架,您可以找到JQuery,MooTools(MIT许可证),ExtJS Core(MIT许可证)(不是ExtJS:这是ExtJS Core + UI小工具,后者需要商业许可证),Yahoo UI,您可以在以下网站中对它们进行比较:http://www.domassistant.com/slickspeed/

此测试“以某种方式”比较了每个“核心”客户端javascript框架的不同方面。

您从这些框架中获得了什么?其中大多数允许您与“跨浏览器”兼容,并且每个都有多种不同的方式和语法。

只需测试并寻找您最喜欢的那个。

所以,有了这个,你就可以找到一种代码“everybrowser”的方法。

现在,如果您需要“窗口小部件/控件/ UI小工具”,那么每个“核心”框架都有自己的UI相关扩展。

甚至,其中一些人可以互相交流。我已经阅读过有关ExtJS(不是核心,带有几个优秀UI元素的核心)的实现可以连接到jQuery的实现。

因此,对于客户端,你必须选择你的“核心”框架,如果你需要UI,那么,一些与之关联的UI。

有几个IDE与这个框架兼容,一个可以是Aptana,Eclipse,Netbeans(最新版本可以很好地与javascript集成)或者在Microsoft端Expression,Visual Studio Express或“Pro”。

事实上,jQuery被“按原样”包括在内,并得到微软和诺基亚的支持。因此,jQuery现在会得到更多的关注,更多的支持,以及更多的“公开”,我预测它会获得很多关注和增强。他们没有购买jQuery,从现在开始,他们坚持将其作为开源包含在VS解决方案中。并且将与ASP.NET MVC,组件等紧密结合。

无论如何,正如我之前所说,jQuery并不是唯一的,并且不是最好的。

对于服务器端,它取决于您的知识:java,ASP.NET,无论您感觉舒服。

我希望你觉得这很有用。

答案 9 :(得分:0)

您可能需要学习一系列工具,但应该从AJAX开始,然后转到一些JS库(JQuery,prototype-scriptaculous,MooTools等)。

这些也很好地补充了JSF框架。

答案 10 :(得分:0)

在评估基于Java的RIA平台时,您可能还会考虑Eclipse Rich Ajax Platform

答案 11 :(得分:0)

我建议你看一下Vexi,它提供类似桌面的应用程序,它比Applet + Swing / AWT更灵活。

(免责声明:我是Vexi的开发人员)

应用程序类似于桌面 - 丰富且响应迅速 - 并且是通过Internet“预测”的用户界面。所有应用程序逻辑都驻留在您选择的语言中创建的服务器上,并通过XmlRpc接口公开。

Vexi的主要优点是布局非常简单,因为它是一个盒子模型。它甚至比HTML更容易理解。

<box>
    <box orient="vertical">        .-------------------.
        <box fill="red" />         |   red   |         |
        <box fill="blue" />        |---------|  green  |
    </box>                         |   blue  |         |
    <box fill="green" />           '-------------------'
</box>

使用JavaScript完成脚本编写,并且有一个可扩展的小部件集。使用小部件也很容易。

<button id="button1" text="My button" />
<textarea id="text1" shadowtext="Type in here!" />