简体   繁体   English

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

[英]Which java web technology to learn to develop Rich Internet Applications?

I have developed web applications using JSF (myfaces components). 我使用JSF(myfaces组件)开发了Web应用程序。 But in these days of responsive UI, JSF doesnt fare well. 但在响应式UI的这些日子里,JSF并不是很好。 I m hearing a lot about AJAX, GWT, etc. So i wanted your opinion on which web technology/framework should i learn inorder to develop web applications for enterprise products. 我听说过很多关于AJAX,GWT等的内容。所以我希望您对我应该学习哪些Web技术/框架以便为企业产品开发Web应用程序有所了解。 Some of the web technologies that im hearing are: 我听到的一些网络技术是:

  1. ICE Faces (With AJAX Bridge support) ICE Faces(支持AJAX Bridge)
  2. GWT GWT
  3. extJS and extGWT extJSextGWT
  4. JavaFX JavaFX的
  5. Apache Wicket Apache Wicket
  6. Jquery jQuery的
  7. AJAX AJAX
  8. Open laszlo 打开拉斯洛

Which of the above or the combination of the above would help me ? 以上哪项或上述组合对我有帮助?

Some of the parameters on which you can rate these web technologies are: 您可以对这些Web技术进行评级的一些参数是:

  1. Ease of learning 易于学习
  2. Maintainability of web application code Web应用程序代码的可维护性
  3. Community support 社区支持
  4. IDE support - Eclipse or NetBeans IDE支持 - Eclipse或NetBeans
  5. Off the shelf component availability (like textbox,table grids, option menus) 现成的组件可用性(如文本框,表格,选项菜单)
  6. License - Does it cost for commercial use ? 许可证 - 商业用途是否需要支付费用?
  7. User Experience - responsive UI. 用户体验 - 响应式UI。 Shouldnt be sluggish 不应该迟钝

A similar question on SO does answer my question partially. 关于SO的类似问题确实部分回答了我的问题。 Would want more info though. 会想要更多信息。

EDIT: Answers collated: Based on the answers : AJAX would be the best thing to start for learning fundamentals, then learn JQUERY. 编辑:答案整理:基于答案:AJAX将是学习基础知识的最佳选择,然后学习JQUERY。 Any component based frame work that can complement ajax,jquery ? 任何基于组件的框架工作都可以补充ajax,jquery?

Edit 2: If i had to design a web application like StackOverFlow (in java platform) which would be the best choice to learn and adopt? 编辑2:如果我必须设计一个像StackOverFlow这样的Web应用程序(在java平台中),这将是学习和采用的最佳选择吗?

Wicket + Jquery, WiQuery Wicket + Jquery,WiQuery

GWT GWT

Some XYZ Faces technology(RichFaces/ICEFaces) + AJAX. 一些XYZ Faces技术(RichFaces / ICEFaces)+ AJAX。

Comments appreciated from some one who has worked with them and can rate them in the above mentioned parameters. 一些与他们合作并且可以在上述参数中对其进行评级的人表示赞赏。

I would strongly recommend Apache Wicket, I see you have commented / edited the question to say that you are leaning towards Ajax / JQuery and asking for component frameworks that complement those. 我强烈推荐Apache Wicket,我看到你评论/编辑了这个问题,说你倾向于Ajax / JQuery,并要求组件框架补充这些。

IMO among the component-based frameworks, Wicket offers the best integration with third-party JavaScript libraries. 作为基于组件的框架中的IMO,Wicket提供了与第三方JavaScript库的最佳集成。 I have personally evaluated the contenders GWT, Tapestry and JSF - but Wicket makes it really easy to: 我亲自评估了竞争者GWT,Tapestry和JSF - 但是Wicket让它非常容易:

  • contribute javascript to the HTML > HEAD 将HTML贡献给HTML> HEAD
  • inject ajax callback code (or custom javascript) into a web page 将ajax回调代码(或自定义javascript)注入网页
  • call an event on a stateful component on the server side 在服务器端的有状态组件上调用事件
  • execute arbitrary javascript before or / and after an Ajax (XHR) request fires 在Ajax(XHR)请求触发之前或之后执行任意javascript

You can see this blog post on how to integrate YUI with Wicket , the same concepts can easily be extended to JQuery. 你可以看到这篇关于如何将YUI与Wicket集成的博客文章,同样的概念可以很容易地扩展到JQuery。

That said, Wicket's built-in Ajax support actually makes it possible for you to create rich UI-s without writing a single line of javascript code. 也就是说,Wicket内置的Ajax支持实际上使您无需编写一行javascript代码即可创建丰富的UI-s。 Think dynamic refreshing of selective parts of a web page, pop-up dialogs, etc. 考虑动态刷新网页的选择性部分,弹出对话框等。

I am also aware of a project for Wicket-JQuery integration called WiQuery , but I haven't tried it yet. 我也知道一个名为WiQuery的 Wicket-JQuery集成项目 ,但我还没有尝试过。

I've been working in GWT (with GWT-ext) for my latest project and have quite enjoyed it. 我一直在GWT(用GWT-ext)为我的最新项目工作,并且非常喜欢它。 Aside from that, jQuery has always been a Godsend, and I'll use it any time I don't have a more robust framework available. 除此之外,jQuery一直是天赐之物,每当我没有更强大的框架时,我就会使用它。

AJAX is just a (in my humble opinion, meaningless) term. AJAX只是一个(在我看来,毫无意义的)术语。

jQuery is, in my opinion, the way to do Javascript. jQuery是,在我看来, 顺便做的JavaScript。 Unless there's an unsurmountable requeriment forbidding its use, I recommend it if you ever need to write Javascript yourself (note, if you are using GWT, you are using Javascript, but not writing it, so you don't need jQuery). 除非有一个不可克服的requeriment禁止它的使用,我推荐它,如果你需要自己编写Javascript(注意,如果你使用GWT,你使用的是Javascript,但不是它,所以你不需要jQuery)。

  1. Ease of learning: you need to change your mindset from traditional procedural-style JS [jQuery is still procedural, but has a big declarative aspect]. 易于学习:你需要从传统的程序式JS中改变你的思维方式[jQuery仍然是程序性的,但具有很大的声明性方面]。 If you have never written Javascript it might be easier to approach 如果您从未编写过Javascript,那么可能更容易接近
  2. Maintainability of web application code: very Web应用程序代码的可维护性:非常
  3. Community support: quite a lot 社区支持:相当多
  4. IDE support - Eclipse or NetBeans: I don't think so. IDE支持 - Eclipse或NetBeans:我不这么认为。 I don't miss it; 我不会错过它; I hate writing enough Javascript to make me miss an IDE. 我讨厌写足够的Javascript让我错过了一个IDE。
  5. Off the shelf component availability (like textbox,table grids, option menus): jQuery UI has a bit and there is lots of material out there 现成的组件可用性(如文本框,表格,选项菜单):jQuery UI有一点,那里有很多材料
  6. License - Does it cost for commercial use?: Nope 许可证 - 商业用途是否需要?:不

Of the other technologies you mention: 在你提到的其他技术中:

  1. GWT: I believe this is interesting if you are target intranet sites or something similar, writing very desktop-like websites (think Gmail, not a typical content site). GWT:我相信如果您是目标内部网站点或类似的东西,编写类似桌面的网站(想想Gmail,而不是典型的内容网站),这很有趣。 I suppose you need to make quite a significant effort to make your GWT-based websites crawlable by search engines and to be usable by non-sophisticated browsers (ie GWT would be useless for JS-less browsers like some cellphones') 我想你需要做出相当大的努力才能使你的基于GWT的网站被搜索引擎抓取并被非复杂的浏览器使用(即GWT对于像某些手机这样的无JS浏览器是没用的)
  2. JavaFX. JavaFX的。 I believe this is just a gimmick. 我相信这只是一个噱头。 Doesn't add much to Java applets and it does not have as much inertia as Java. 不会给Java applet增加太多,它没有Java那么多的惯性。
  3. Apache Wicket: this is on my to-investigate list Apache Wicket:这是我的调查清单
  4. OpenLaszlo: looks very interesting if you want to do Flash stuff without paying licenses. OpenLaszlo:如果你想在没有支付许可证的情况下做Flash内容,看起来很有趣。

As my suggestion. 作为我的建议。

I suggest you learn to develop your websites without JS at first. 我建议你先学会开发没有JS的网站。 Then add JS (using jQuery), google "progressive enhancement". 然后添加JS(使用jQuery),谷歌“渐进增强”。

Once you can do this, you can learn using something like GWT and use it if it's justified. 一旦你能做到这一点,你就可以学习使用像GWT这样的东西,并在合理的情况下使用它。

If you have to do a fair amount of Javascript/AJAX, you definitely want to learn and use jQuery! 如果你必须做相当数量的Javascript / AJAX,你肯定想学习和使用jQuery! It would've saved me years of grief had it came out in 1999. 如果它在1999年出现,它将为我节省多年的悲伤。

Seam,Spring,Richfaces,Ajax4jsf

I tend to focus on foundational knowledge, so, you may want to get a strong understanding of javascript, including object-oriented javascript. 我倾向于专注于基础知识,因此,您可能希望深入了解javascript,包括面向对象的javascript。

Once you know javascript well, the libraries are easy to pick up. 一旦你熟悉了javascript,这些库就很容易上手了。

You may want to get some passing understanding of some of the features of HTML5 that can be useful, such as the tag. 您可能想要了解一些有用的HTML5功能,例如标记。

You may also want to learn Actionscript 3, as that will help you understand how flash works, as you will know what code the flash ide is generating. 您可能还想学习Actionscript 3,因为这将有助于您了解闪存的工作原理,因为您将知道Flash ide正在生成什么代码。 I have used an ant script to compile my actionscript code, using Eclipse. 我使用了一个ant脚本来编译我的actionscript代码,使用Eclipse。

Silverlight is gaining in popularity, but, that requires VisualStudio Express, but it is a strong competitor with Flash. Silverlight越来越受欢迎,但这需要VisualStudio Express,但它是Flash的强大竞争对手。

For the rest, a passing reference can be useful, as your list isn't exhaustive, but make certain you understand the foundational languages well for these and the frameworks you can pick up quickly. 对于其余部分,传递引用可能很有用,因为您的列表并非详尽无遗,但要确保您能够很好地理解这些基础语言以及您可以快速获取的框架。

If you want to have some kind of client/server experience through a web browser I would suggest to take a look at GWT together with Google Eclipse Plugin. 如果您希望通过Web浏览器获得某种客户端/服务器体验,我建议您与Google Eclipse插件一起查看GWT。 This kind of technology enables you to write really the most responsive webapps you can achieve (from my point of view). 这种技术使您能够编写您可以实现的最具响应性的Web应用程序(从我的角度来看)。

Otherwise if you want to develop somewhat more traditional webapps and just add Ajax functionality you could take a look at DWR (Direct Web Remoting). 否则,如果您想开发更传统的Web应用程序并只添加Ajax功能,您可以查看DWR (Direct Web Remoting)。 This kind of technology enables you to wire server-side Java objects to the client-side for being able to use their functionality through JavaScript. 这种技术使您能够将服务器端Java对象连接到客户端,以便能够通过JavaScript使用其功能。 It will help you in writing your Ajax functionality and possibly also in reusing existing logic. 它将帮助您编写Ajax功能,还可能重用现有逻辑。

Of course, jQuery is always a good alternative. 当然,jQuery总是一个很好的选择。

My selection is GWT because GWT program write in java programming language and this programming language is very powerful and easy to understand. 我的选择是GWT,因为GWT程序用java编程语言编写,这种编程语言非常强大且易于理解。

jQuery and ext-js also are good but i had some problem with JavaScript programming language. jQuery和ext-js也很好但我在JavaScript编程语言方面遇到了一些问题。 this programming language is very error prone. 这种编程语言非常容易出错。

Apache Wicket coding likes GWT but it is server side technology and it is a heavy technology. Apache Wicket编码喜欢GWT,但它是服务器端技术,它是一项繁重的技术。

Because JavaFX program require plugin is not my selection. 因为JavaFX程序需要插件不是我的选择。

My recommended to you is jQuery or ext-js if you don't have problem with JavaScript. 如果您没有JavaScript问题,我建议您使用jQuery或ext-js。

I'm on the same track as you, trying to find out which will be my server side + client side development tool set for a huge internet site. 我和你在同一条轨道上,试图找出哪个将是我的服务器端+客户端开发工具集为一个巨大的互联网站点。 As far as I have seen and read, as always, it depends on the kind of web application you need. 据我所知,一如既往,它取决于您需要的Web应用程序的类型。

There are people using different javascript frameworks, based on easy of use, declarative, object oriented, and the like. 有人使用不同的javascript框架,基于易用性,声明性,面向对象等。

There are several things to consider: 1) Client side technology 1a) "Core" client side technology: frameworks 1b) UI client side technology enhancements 2) Server side technology 有几点需要考虑:1)客户端技术1a)“核心”客户端技术:框架1b)UI客户端技术增强2)服务器端技术

For "core" javascript frameworks, you can find JQuery, MooTools (MIT license), ExtJS Core (MIT License) (not ExtJS: this is ExtJS Core + UI gadgets, and the later needs commercial license), Yahoo UI, etc. You can compare them in sites like this one: http://www.domassistant.com/slickspeed/ 对于“核心”javascript框架,你可以找到JQuery,MooTools(MIT许可证),ExtJS Core(MIT许可证)(不是ExtJS:这是ExtJS Core + UI小工具,后来需要商业许可证),Yahoo UI等等。可以在像这样的网站中比较它们: http//www.domassistant.com/slickspeed/

This test "somehow" compares different aspects of each of those "core" client javascript frameworks. 该测试“以某种方式”比较了每个“核心”客户端javascript框架的不同方面。

What do you get from those frameworks? 你从这些框架中得到了什么? Most of them, allows you to be "cross-browser" compatible, and each one has several and different ways and syntax. 其中大多数允许您与“跨浏览器”兼容,并且每个都有多种不同的方式和语法。

Just a matter of testing and seeking the one you like most. 只是测试和寻找你最喜欢的人。

So, with this, you just get a way to code for "everybrowser". 所以,有了这个,你就可以找到一种代码“everybrowser”的方法。

Now, if you need "Widgets/Controls/UI gadgets", then, each "core" framework has its own UI related extension. 现在,如果您需要“Widgets / Controls / UI小工具”,那么每个“核心”框架都有自己的UI相关扩展。

Even, some of them, can interact with each other. 甚至,其中一些人可以互相交流。 I have read about implementations of ExtJS (not core, the one that comes with several good UI elements) can connect to jQuery. 我已经阅读过关于ExtJS(不是核心,带有几个好的UI元素的那个)的实现可以连接到jQuery的内容。

So, for client side you have to choose your "core" framework, and if you need UI, then, some UI associated with them. 因此,对于客户端,您必须选择“核心”框架,如果您需要UI,那么,一些与之关联的UI。

There are several IDEs that are compatible with this frameworks, one can be Aptana, Eclipse, Netbeans (latest version integrates very well with javascript) or in the Microsoft side Expression, Visual Studio Express or "Pro". 有几个IDE与这个框架兼容,一个可以是Aptana,Eclipse,Netbeans(最新版本可以很好地与javascript集成),或者在Microsoft端Expression,Visual Studio Express或“Pro”。

Its also a fact that jQuery was included "as-is" and Supported by Microsoft and Nokia. 事实上,jQuery被“按原样”包括在内,并得到微软和诺基亚的支持。 So, jQuery will get more attention now, and more support, and more "public", I predict it will get a lot of attention and enhancements. 因此,jQuery现在会得到更多的关注,更多的支持,以及更多的“公开”,我预测它会获得很多关注和增强。 They did not buy jQuery, they adhered to it as an Open Source included into VS solutions from now on. 他们没有购买jQuery,从现在开始,他们坚持将其作为开源包含在VS解决方案中。 And will be very tight coupled with ASP.NET MVC, components and the like. 并且将与ASP.NET MVC,组件等紧密结合。

Anyway, jQuery, as I said before, is not the only one and not necesarily the best. 无论如何,正如我之前所说的那样,jQuery不是唯一的,而且不是最好的。

For Server side well, it depends on your knowledge: java, ASP.NET, whatever you feel comfortable. 对于服务器端,它取决于您的知识:java,ASP.NET,无论您感觉舒服。

I hope you find this useful. 希望这个对你有帮助。

You will probably have to learn a combination of tools, but should probably start with AJAX, then move on to some JS libraries (JQuery, prototype-scriptaculous, MooTools, etc). 您可能需要学习一组工具,但应该从AJAX开始,然后转到一些JS库(JQuery,prototype-scriptaculous,MooTools等)。

Those will also compliment a JSF framework nicely. 这些也很好地补充了JSF框架。

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

I'd suggest you take a look at Vexi , which offers desktop-like applications which are more flexible than an Applet + Swing/AWT. 我建议你看看Vexi ,它提供类似桌面的应用程序,比Applet + Swing / AWT更灵活。

(Disclaimer: I am a developer of Vexi) (免责声明:我是Vexi的开发人员)

The applications are desktop-like - rich and responsive - and are user interfaces that are "projected" over the Internet. 这些应用程序是类似桌面的 - 丰富且响应迅速 - 并且是通过Internet“预测”的用户界面。 All the application logic resides on the server which you create in your language of choice and expose via an XmlRpc interface. 所有应用程序逻辑都驻留在您选择的语言中创建的服务器上,并通过XmlRpc接口公开。

The main benefit of Vexi is that layout is really easy, as it is a box model. Vexi的主要优点是布局非常简单,因为它是一个盒子模型。 It's easier to understand than HTML even. 它甚至比HTML更容易理解。

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

Scripting is done with JavaScript, and there's an extensible widget set. 脚本使用JavaScript完成,并且有一个可扩展的小部件集。 Using widgets is easy too. 使用小部件也很容易。

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 哪种Java技术用于开发android应用? - Which java technology is used to develop android apps? 如何有效地开发Java Web应用程序? - How to develop Java Web applications efficiently? Rich Client Java(Swing)应用程序的Peristence Web Service - Peristence Web Service for Rich Client Java (Swing) applications 大多数LOB应用程序使用哪种技术? - Which technology is used in majority of LOB applications? 应使用哪种Java技术在服务器端构建客户端-服务器应用程序? - Which Java technology should be used to build client-server applications on the server side? 哪个是开发Java Web应用程序的最佳服务器? - which is best server for developing java web applications? 是否可以使用Java开发IPhone应用程序? - Is it possible to develop IPhone applications with Java? 从Java 7u45开始,Java“ Rich Internet Application”不允许哪些权限? - Which Permissions are not allowed for a java “Rich Internet Application” since java 7u45? 从网站的角度来看,学习java的最佳途径或流程是什么 - WHich is the best path or flow to learn java from web site perspective 我应该用什么技术来开发小型Java Web服务? - What technology I should use to develop small Java webservice?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM