Which Java technology to learn how to develop Rich Internet Applications?

I developed web applications using JSF (myfaces components). But these days the JSF responsive user interface is not feeling very well. I heard a lot about AJAX, GWT, etc. Therefore, I would like your opinion on what web technologies / frameworks should be studied in order to develop web applications for enterprise products. Some of the web technologies that I hear are:

  • ICE Faces (with AJAX Bridge support)
  • Gwt
  • extJS and extGWT
  • Javafx
  • Apache wicket
  • Jquery
  • Ajax
  • Open laszlo

Which of the above or a combination of the above will help me?

Some of the options you can evaluate these web technologies for are:

  • Ease of learning
  • Maintaining Web Application Code Health
  • Community support
  • IDE Support - Eclipse or NetBeans
  • Turn off shelf accessibility (for example, text box, table grids, additional menus)
  • License - is it worth it for commercial use?
  • User Interface - Responsive Interface. Should not be lethargic

A similar question on SO partially answers my question. I would like more information.

EDIT: The answers are mapped: Based on the answers: AJAX will be the best start to learn the basics, then learn JQUERY. Any component-based frame work that can complement ajax, jquery?

Edit 2: If I had to create a web application such as StackOverFlow (in the java platform), which would be the best choice to learn and accept?

Wicket + jQuery, WiQuery

Gwt

Some XYZ Faces technologies (RichFaces / ICEFaces) + AJAX.

Comments rated by someone who worked with them can rate them based on the above parameters.

+6
java ajax gwt
source share
12 answers

AJAX is just a (in my humble opinion, meaningless) term.

jQuery is, in my opinion, a way to make Javascript. If there is no unsurpassed requirement prohibiting its use, I recommend it if you ever need to write Javascript yourself (note that if you use GWT, you use Javascript but don't write it, so you don't need jQuery).

  • Ease of learning: you need to change your thinking from the traditional JS procedural style [jQuery is still procedural, but has a large declarative aspect]. If you never wrote Javascript, it would be easier to approach
  • Maintaining the health of the web application code: very
  • Community support: quite a lot.
  • IDE Support - Eclipse or NetBeans: I don’t think so. I do not miss him; I hate writing enough Javascript for me to skip the IDE.
  • Disabling shelf accessibility (e.g. text box, table grids, additional menus): jQuery UI has a bit, and there is a lot of stuff there
  • License - is it worth it for commercial use ?: No.

Of the other technologies that you mentioned:

  • GWT: I find it interesting if you are targeting intranet sites or something similar, write very desktop-like websites (think Gmail, not a typical content site). I believe that you need to make significant efforts to ensure that your GWT-based sites are crawled by search engines and can be used by unmanaged browsers (i.e. GWT will be useless for browsers that are not compatible with JS, for example, some mobile phones).
  • JavaFX I think this is just a trick. It does not add much to Java applets and does not have the same inertia as Java.
  • Apache Wicket: This is a list of my investigations.
  • OpenLaszlo: It looks very interesting if you want to make Flash files without paying licenses.

As my suggestion.

I suggest you first learn how to design your websites without JS. Then add JS (using jQuery), google "progressive improvement".

Once you can do this, you can learn to use something like GWT and use it if warranted.

+2
source share

I highly recommend Apache Wicket, I see that you have commented / edited the question to say that you are leaning towards Ajax / JQuery and requesting components to complement them.

IMO among component frameworks, Wicket offers better integration with third-party JavaScript libraries. I personally rated rivals GWT, Tapestry and JSF - but Wicket makes it easy:

  • embed javascript in HTML> HEAD
  • enter ajax callback code (or custom javascript) on the web page
  • raise an event on a component with server-side state
  • execute arbitrary javascript before or / or after an Ajax request (XHR)

You can see this blog post on how to integrate YUI with Wicket , the same concepts can easily be extended to jQuery.

However, Wicket's native Ajax support allows you to create rich user interfaces without writing a single line of javascript code. Consider dynamically lighting selected parts of a web page, pop-up dialogs, etc.

I also know the Wicket-JQuery integration project called WiQuery , but I haven't tried it yet.

+5
source share

I work in GWT (with GWT-ext) for my last project and enjoy it. In addition, jQuery has always been Godsend, and I will use it at any time when I do not have a more reliable structure.

+3
source share

If you need to do a lot of Javascript / AJAX, you definitely want to learn and use jQuery! It would save me years of sadness if it happened in 1999.

+1
source share

Seam, Spring, Richfaces, Ajax4jsf

+1
source share

I tend to focus on fundamental knowledge, so you might want to get a strong understanding of javascript, including object-oriented javascript.

Once you know javascript well, libraries are easy to pick.

You might want to get some idea of ​​some HTML5 features that might be useful, such as a tag.

You can also learn ActionScript 3, as this will help you understand how the flash works, as you will know what code the flash code generates. I used ant script to compile my actionscript code using Eclipse.

Silverlight is gaining in popularity, but it requires VisualStudio Express, but it is a strong competitor to Flash.

Otherwise, the link may be useful, since your list is not exhaustive, but make sure that you understand the basic languages ​​for these and frameworks that you can quickly find.

+1
source share

If you want to have some experience working with a client / server through a web browser, I would suggest taking a look at GWT along with the Google Eclipse plugin. This technology allows you to write the truly most responsive web pages you can achieve (from my point of view).

Otherwise, if you want to develop some more traditional web applications and just add Ajax functionality, you can take a look at DWR (Direct Web Remoting). This technology allows you to connect server-side Java objects to the client side for the possibility of using their functions through JavaScript. This will help you in writing your Ajax functionality, and possibly also in reusing existing logic.

Of course, jQuery is always a good alternative.

+1
source share

My choice is GWT, because the GWT program writes to the Java programming language, and this programming language is very powerful and understandable.

jQuery and ext-js are also good, but I had a problem with the JavaScript programming language. this programming language is very error prone.

Apache Wicket encodes like GWT, but it's server technology and it's heavy technology.

Since JavaFX requires a plugin, this is not my choice.

My recommendations for you are jQuery or ext-js if you have no problems with JavaScript.

+1
source share

I am on the same track as you, trying to figure out which one will be used for installation on the server side + client side for a huge Internet site. As far as I have seen and read, as always, it depends on the type of web application you need.

There are people using different javascript structures based on simple use, declarative, object-oriented, etc.

Several things can be considered: 1) Client-side technology 1a) “Basic” client technology: frameworks 1b) UI client-side technology improvements 2) Server technology

For the “core” javascript frameworks, you can find JQuery, MooTools (MIT license), ExtJS Core (MIT license) (not ExtJS: these are ExtJS Core + UI gadgets, and later you need a commercial license), Yahoo user interface, etc. . You can compare them on sites like this: http://www.domassistant.com/slickspeed/

This test “somehow” compares various aspects of each of the “core” javascript client frameworks.

What do you get from these frameworks? Most of them allow you to be cross-browser compatible, and each of them has several different ways and syntax.

Just a matter of testing and finding the one you like best.

So with this, you just get the code for "everybrowser".

Now, if you need "Widgets / Controls / UI gadgets", then each "main" structure has its own extension associated with the UI.

Even some of them can interact with each other. I read about an ExtJS implementation (not the core, the one that comes with a few good user interface elements) can connect to jQuery.

So, for the client side, you need to choose your "main" structure, and if you need a user interface, then some user interface is associated with it.

There are several IDEs compatible with these frameworks: Aptana, Eclipse, Netbeans (the latest version integrates very well with javascript) or Microsoft Expression, Visual Studio Express or "Pro".

It is also a fact that jQuery has been enabled "as is" and is supported by Microsoft and Nokia. This way, jQuery will get more attention now, and more support, and more "public", I predict that it will get a lot of attention and improvements. They did not buy jQuery, they stuck to this as an open source, now included in VS solutions. And it will be very closely connected with ASP.NET MVC, components, etc.

In any case, jQuery, as I said, is not the only and not necessarily the best.

It’s good for the server, it depends on your knowledge: java, ASP.NET, which is convenient for you.

I hope you find this helpful.

+1
source share

You may have to learn a combination of tools, but you should probably start with AJAX and then move on to some JS libraries (JQuery, prototype-scriptaculous, MooTools, etc.).

They will also nicely complement the JSF framework.

0
source share

You can also consider the Eclipse Rich Ajax Platform when evaluating Java-based RIA platforms.

0
source share

I would advise you to take a look at Vexi , which offers desktop applications that are more flexible than Applet + Swing / ABT.

(Disclaimer: I'm a Vexi developer)

Applications are desktop-like - rich and responsive - and are user interfaces that are "projected" over the Internet. All application logic is located on the server, which you create in the language of your choice and expose through the XmlRpc interface.

The main advantage of Vexi is that the layout is very simple, as it is a box model. This is easier to understand than HTML even.

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

Scripts are executed using JavaScript, and there is an extensible set of widgets. Using widgets is also easy.

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

All Articles