Welcome!

Coach Wei

Subscribe to Coach Wei: eMailAlertsEmail Alerts
Get Coach Wei via: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Related Topics: RIA Developer's Journal, Web 2.0 Magazine, Java EE Journal, XML Magazine, SOA & WOA Magazine, Java Developer Magazine

RIA & Ajax: Article

Java or .NET? XML Rich-Client AJAX Technology Brings Zero-Install Rich Client To Java

Which platform to use Java or .NET? Developers ask this question all the time

Take the form below as an example. To create this form takes about 70 lines of C# code using Visual Studio .NET, but only 17 lines of XML code using an XML-based rich-client technology. On top of that, XML code is much easier to read, and can be processed and understood by someone with HTML skills. Both C# code and Java Swing code require intimate knowledge of Object-Oriented programming. The skill set requirement is considerably higher.

Here is the Visual Studio.NET C# code needed to create the form previously shown in Figure 1:

this.tabControl1 = new System.Windows.Forms.TabControl();
this.tabPage1 = new System.Windows.Forms.TabPage();
this.tabPage2 = new System.Windows.Forms.TabPage();
this.button1 = new System.Windows.Forms.Button();
this.textBox1 = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.tabControl1.SuspendLayout();
this.tabPage1.SuspendLayout();
this.SuspendLayout();

this.tabControl1.Controls.Add(this.tabPage1);
this.tabControl1.Controls.Add(this.tabPage2);
this.tabControl1.Location = new System.Drawing.Point(8, 8);
this.tabControl1.Name = "tabControl1";
this.tabControl1.SelectedIndex = 0;
this.tabControl1.Size = new System.Drawing.Size(248, 168);
this.tabControl1.TabIndex = 0;

this.tabPage1.Controls.Add(this.label1);
this.tabPage1.Controls.Add(this.textBox1);
this.tabPage1.Controls.Add(this.button1);
this.tabPage1.Location = new System.Drawing.Point(4, 22);
this.tabPage1.Name = "tabPage1";
this.tabPage1.Size = new System.Drawing.Size(240, 142);
this.tabPage1.TabIndex = 0;
this.tabPage1.Text = "tabPage1";

this.tabPage2.Location = new System.Drawing.Point(4, 22);
this.tabPage2.Name = "tabPage2";
this.tabPage2.Size = new System.Drawing.Size(288, 230);
this.tabPage2.TabIndex = 1;
this.tabPage2.Text = "tabPage2";

this.button1.Location = new System.Drawing.Point(152, 104);
this.button1.Name = "button1";
this.button1.TabIndex = 0;
this.button1.Text = "OK";

this.textBox1.Location = new System.Drawing.Point(8, 48);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(216, 20);
this.textBox1.TabIndex = 1;
this.textBox1.Text = " ";

this.label1.Location = new System.Drawing.Point(8, 24);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(224, 23);
this.label1.TabIndex = 2;
this.label1.Text = "Please Enter Your Card Number Below:";
this.label1.Click += new System.EventHandler(this.label1_Click);

this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(264, 187);

this.Controls.Add(this.tabControl1);
this.Name = "Form1";
this.Text = "Sample Form";
this.tabControl1.ResumeLayout(false);
this.tabPage1.ResumeLayout(false);
this.ResumeLayout(false);

  • XML Rich Client Technology Enables Richer, Thinner, Faster Applications - Enterprise Internet Applications built using XML rich-client technology can be normal J2EE Web applications, but send XML to the client side instead of HTML. However, because of XML rich-client technology, they are richer, faster, and consume up to 90% less bandwidth. No client installation is required. These applications can run instantly on different browsers and PDA devices with the same functionality as Windows desktop applications, with user interface elements like multiple windows, menu bars, toolbars, and hierarchical trees.

    For example, an enterprise management "dashboard" application built with XML rich-client technology can use sliding tabs to display tabular data as well as rich graphics and interactive charts, all updated in real-time via server push without the clunky "click-refresh" associated with normal HTML applications.

    Applications of this nature are usually built using .NET or Win32 and require heavy download/installation. Using XML rich-client technology, they are lightweight, zero-install Web applications with lower bandwidth consumption and better performance.

  • XML Rich Client Technology Seamlessly Extends J2EE - With XML rich-client technology, developers can still use JSP, tag libraries, servlet, struts, and other approaches for server-side presentation, EJB for server-side business logic, and any persistency layer for data storage. The application is deployed as a normal WAR/EAR file and managed as a normal Web application.
Conclusion
Combining XML rich-client technology with J2EE provides the following benefits compared to .NET:
  • Enterprise-scale rich-client capability and complex workflow, scalable for large data sets and high transaction rates such as hundreds of messages per second.
  • Zero-install capability with deployment/management advantages similar to HTML. While .NET applications can only be deployed to Windows XP desktops, XML rich client technology applications can be deployed hassle-free to over 95% of all desktops with any 4.0+ browser.
  • XML rich-client technology working in concert with J2EE gives Web applications the "out-of-box" capability to seamlessly enable server push, reliable messaging, pub/sub, broadcasting and guaranteed order delivery. Built-in compression, incremental update, and distributed state management minimize network traffic and increase performance.
Using XML rich-client technology, companies can develop enterprise Internet applications that match desktop quality with higher performance, and still enjoy a J2EE server infrastructure: centrally managed and deployed, automatically updated, bandwidth and network efficient, with enterprise-level J2EE security, scaling, and broad industry support.

More Stories By Coach Wei

Coach Wei is founder and CEO of Yottaa, a web performance optimization company. He is also founder and Chairman of Nexaweb, an enterprise application modernization software company. Coding, running, magic, robot, big data, speed...are among his favorite list of things (not necessarily in that order. His coding capability is really at PowerPoint level right now). Caffeine, doing something entrepreneurial and getting out of sleeping are three reasons that he gets up in the morning and gets really excited.

Comments (29) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
Sim LIms 02/23/06 01:52:28 AM EST

Nice try, but I am sorry its too late for Java. Microsoft has already a more matured technology offering, XAML.

Sim LIms 02/23/06 01:52:11 AM EST

Nice try, but too late for Java. Microsoft has already a more matured technology offering, XAML.

SYS-CON Australia News Desk 02/22/06 02:07:05 PM EST

Which platform to use Java or .NET? Developers ask this question all the time. Java has been widely adopted because of its overwhelming benefits on the server side, but Java has less to offer on the client side. .NET has made inroads into the enterprise by leveraging its stronger rich-client capabilities. An alternative solution for enterprise-scale Internet application development is the emerging XML-based rich-client technology.

JDJ News Desk 10/15/05 11:57:34 AM EDT

Java or .NET? XML Rich-Client Technology Brings Zero-Install Rich Client To J2EE. Which platform to use Java or .NET? Developers ask this question all the time. Java has been widely adopted because of its overwhelming benefits on the server side, but Java has less to offer on the client side. .NET has made inroads into the enterprise by leveraging its stronger rich-client capabilities. An alternative solution for enterprise-scale Internet application development is the emerging XML-based rich-client technology.

G Austin 10/13/05 06:58:06 AM EDT

i noticed that Nexaweb is being voted for the "Best Java Rich Client Platform" at JDJ -

http://jdj.sys-con.com/general/readerschoice.htm.

Mark Grant 10/11/05 08:38:47 AM EDT

While I agree whole-heartedly that an XML solution is the way to go (I worked on a project that did exactly that) I feel that there is a bit too much bias toward the Java language in the article (bashing dotNET with the amount of lines to create a form - and how many to do the same in Swing..?). To me the great advantage of using XML is to abstract the whole UI (in this case) away from the underlying EE implementation. A better way of putting this across would have been to simply explain how XML allows language/framework independent techniques for generating 'rich-client' UI without taking the opportunity to criticize a particular framework.

Rob Dixon 10/05/05 03:22:04 PM EDT

Mr. Alsop,

Actually it's been one-way bashing so far, all from you and "David Jackson", since I have focused on the merits of the article and defending myself against your stabs at my credibility.

Shall I try to play the same game, "joking" about the "insurance company" you work for, or suggesting you are not really "Jay Alsop" as you claim? Ridiculous.

Your recent post highlights my main point once again: thinly-veiled advertisements masquerading as articles, or comments, are really not that useful. Apparently some people enjoy that kind of article, but I do not.

I appreciate hearing your opinions about Longhorn's communication layer and how it will "blow me away," but really I have checked it out and I was not impressed. I prefer to work with software that has actually been released, and that doesn't require a MSFT client platform to use. Not everyone uses Windows.

By the way, current RIA architectures are not just about presentation. Asynchronous messaging support is a big part of them and some of them already include robust messaging facilities, far stronger than the current capabilities of .NET. Of course I wouldn't dream of naming any of them... :-)

Once again, this is my point: I would love to see an article about RIA architectures in general, that describes the pros and cons of the various technologies now available. It could even speculate about the impact of Longhorn in this arena. I'd even be happy if Coach Wei's product was described in that mix, since I'm sure his product has merit. Alas this article wasn't that article.

Jay Alsop 10/04/05 05:48:55 PM EDT

Yeah, Mr.Dixon, you are right, working for a B2B software company - when did you leave Macromedia? Apparently you are still on Macromedia website (nice photo, you look cool indeed:-))

Joking aside, I don't see the point of bashing at each other, or force-fitting each other into pre-conceived boxes.

Frankly, i think the article is well put in its context. I can make the connection well. Mr.Dixon is trying to force fit the article or discusssion into "RIA" box - I don't think the article is necessarily about RIA:

In .NET world, you have Avalon presentation foundation, Indigo for messaging, and Longhorn server. The article pointed out something architecturally equavilent in the J2EE world: we need rich client, but also the messaging part and integrated server. RIA as i know today is just about presentation, has no concept of something like Indigo. I really like the three integrated offerings from Longhorn, in particular, the Indigo messaging layer that blows you away. RIA is no comparison to what MSFT has to offer.

It would be nice if the article has an additional section called something like "where to go from here" or "how to get started". One reason maybe that the author has no concrete products that he can point to today.

Let's stop bashing at each other and get some real work done. -Maybe there is a day that RIA can match .NET offerings.

Rob Dixon 10/04/05 12:49:50 PM EDT

Mr. Alsop's been doing some detective work. Yes I did work for Macromedia for a while. I have also worked for quite a few other companies, and as an independent consultant, building systems using Java, .NET, Flex, and AJAX technologies, among others. I have no interest in promoting Flex, but I do have an interest in seeing a balanced discussion of RIA technologies.

I am currently employed at a B2B software company and we're in the process of exploring various RIA technologies for an upcoming project. That is why I was so disappointed with this article. On the surface it looks like it will cover some new and interesting aspects of RIAs -- maybe something I can use in my current work. Then it turns into a plug for the author's product.

So essentially I'm in the same position as Mr. Alsop himself, working with different RIA technologies and evaluating their merits.

Now, if Mr. Alsop really wants to advance this discussion, perhaps he should weigh in on the merits of the article itself. :-)

Jay Alsop 10/02/05 08:26:51 PM EDT

Disclaimer: i work for a big insurance company as a software architect - i have played with various RIA solutions but i am not affiliated with either Nexwaweb or Macromedia of any other RIA software companies. I have been watching this thread for a little while and thought it is funny to see how people attacking each other, and further, figuring out why.

Having watched this for a while, I am throwing my own $2c here:
1. Most of the readers get what the arcticle is talking about, however, quite a few of them didn't know where to go from here. This is a deficiency of the article.
2. The attitude here throws me off a little bit. For example, David Jackon say "Rob Dixon" is a shame, and then Tomte says "David Jackson is a shame". -guys, are we all three years old?

Now the really interestig part. I googled some of the people here and, look what i found:
a>Mr.Ronald Newton, IT Consultant and Project Manage(http://comment.cio.com/comments/16486.html)
b>Mr.David Jackson, Software Architect at IBM(http://www.opengroup.org/events/q305/jackson.htm) - Are we surprised that IBM is not into .NET?

The more interesting discovery is Mr.Rob Dixon:
Mr.Rob Dixon, Instructional Media Development, Macromedia (http://www.macromedia.com/devnet/central/articles/quick_start.html) --aha!

I have been wondering why Mr.Dixon would know Coach Wei's other articles so well, would't hesitate to mention Flex a few times, and wouldn't hesitate to label someone who disagree with him such as Mr.Jackson as a Nexaweb employee. Now given the undisclosed the competitive situation, though disagree, i certainly understand why.

Of course, the data above may or may not be correct - who knows who is really who? It is possible that someone else pretended to be Mr.Dixon at Macromedia. Just what i found from the web. Interesting and thought of sharing.

Are we having fun yet:-)

Rob Dixon 09/30/05 09:40:18 PM EDT

Mr. Jackson must work for Nexaweb too. :)

I'd love to see more articles covering Java-based XML-enabled Rich Internet Apps. I build them for a living, using a few different technologies, so I know there's a lot to say about their advantages and disadvantages.

However an article like this does a disservice to people who are looking into building such applications. You'd think that Coah Wei's company is the only one doing this stuff, but that's not true. He declined to mention any other sources of information or technology, besides his own company.

Contrary to what Mr. Jackson said, I'm looking for something about the forest, but Coach Wei only describes one lone proprietary tree.

tomte 09/29/05 10:22:13 AM EDT

Shame on David Jackson.
I agree with Rob Dixon, the whole original article looks like a shameless advertisement to me too.
tomte.

David Jackson 09/29/05 12:32:58 AM EDT

This is a fantastic article...

Enterprise is at its cross roads - Java or .NET? Microsoft is pushing hard on .NET with a wide variety of actions: Indigo, Windows Vista, Atlas...Java world has been falling behind on some of these areas and is further behind. The industry has to figure out where we are going to: a world dominated by MSFT or something else?

Shame on guys like Rob Dixon who only sees a tree and lose sight of a forrest.

Let's have more articles like this. Let's have more initiatives like this. Let's welcome more people like Coach Wei...In the end, we will all greatly benefit from these...

Sumanas Bhattacharya 09/21/05 03:32:43 AM EDT

I have tried to run the first code sample given here for XML Rich Client,but I hardly got the desired output. I have used Internet Explorer6.0,FireFox 1.0.4 and opera 8.5,nothing really working. Please inform me how can I get the output of that sample code and and which browser should I use.
Please help.

Ronald Newton 09/02/05 10:23:41 PM EDT

Please ignore my last posting. The posting "Coach Wei commented on the 17 Aug 2005" contains all the information I need.

Ronald Newton 09/02/05 10:14:01 PM EDT

Does anyone know how to make the chart sample work with Firefox 1.0.6. When I save the file and attempt to display it, I get:

This XML file does not appear to have any style information associated with it. The document tree is shown below.

Help

Rob Dixon 08/29/05 01:21:58 PM EDT

I'm sorry but this whole article looks like a shameless advertisement to me.

I know Coach Wei plays down his Nexaweb connection in the article to make this seem less obvious. But let's face it, the XML UI examples he gives are based on a proprietary tool only available from his own company.

If he were writing a balanced article he would mention and assess some of the other RIA architectures out there, like Macromedia Flex. In fact, his whole RIA platform solution story is the same story that Macromedia has been popularizing for many years now.

This isn't the first article written by Coach Wei that includes thinly-veiled references to his own product and no others (see "Why Web Applications Can be Problematic and Unreliable," Dec 2004).

It's a shame because there is a lot to say about RIA platforms, covering Macromedia Flex and AJAX and other technologies.

Articles like this that exist only to sell one company's product while pretending to be documenting a general technology trend shouldn't be published in JDJ. They insult your readers' intelligence.

Coach Wei 08/17/05 08:17:10 AM EDT

I received a lot of inquiries - email, web posting as well as phone calls. Thank you all for the interest! I will try to answer some general inquires here:

1. "What are the products/technologies available for what you are talking about in this article"?

Web browsers today actually have some support for this (Ajax). For enterprise-strength applications where application performance, maintenance and functionality are critical, my company Nexaweb (www.nexaweb.com) provides such a product. It has been deployed at many G2K copmanies supporting large data sets, complex workflow and trasaction volumes, etc.

2. "Where do i go from here?"

For people who are interested in playing with the product/technology, take a look at some demo applications at www.nexaweb.com.

For people who are interested in having general, public discussions, you are welcome to post comments here or at my blog www.coachwei.com;

For people who have specific questions or private questions, you are welcome to email me cwei@nexaweb.com.

3. "Isn't this just Ajax? Ajax has lots of shortcomings, such as performance, code maintainability, no good debug/test tool, etc.".

No, this is not all about Ajax. There are products out there (such as nexaweb) that are designed to address these shortcomings. Ajax is a transitional thing - it is not an end. We have to look beyond Ajax and figure out appropriate solutions.

David R 08/15/05 12:14:54 PM EDT

I have seldom seen such a light-weight analysis with such poor insight at JDJ - who is editing this content? Just because Google Maps and GMail have become cool with AJAX implementation doesn't mean it is a cure-all for all client development. It is an evolutionary step forward in user web experience. It is complete nonsense to state that XML rendering in a browser is more powerful than Java Swing. (It is more easily deployed perhaps). The XML is rendered by JavaScript working on the Browsers DOM tree. This approach has many shortcomings:
- No compile time checking for Javascript running on XML (don't you LOVE those runtime errors?)
- No unit test frameworks such as Junit for your code (Can you spell INSTABILITY)
- No proper object model for the data rendered by the view(XML is not an object model - there is no behavior, just state)
- Complex event management between http requests and Javascript
- Did I mention ALL OF THE CODING required to serve up data as XML? Most J2EE applications have Java Objects - which a Swing UI can work natively on. All of the objects to br rendered in the browser must be converted to XML which the JavaScript client wants. Not always a trivial task if you have a good object model not built to satisfy the layout of a particular web page.
- Which vendor would you pick for your client side framework? Which ones have real products versus marketing hype and will be around to support you in production in 2 years?
- I'd like to see an undo/redo function like most good UIs have in this technology. How about printing?

I seriously doubt this writer has any clue what it takes to deploy a non-trivial web application using this technology into production and support it. Hello World examples don't cut it in the real world.

Omar 08/14/05 07:23:19 PM EDT

to XML News Desk,
Yes, XML Rich-Client looks kind of cool...
Yes, The examples provided in the article looks cool too...
& yes, maybe the using of this technologies is the best approach for Rich-Clients.
BUT***
there no names for the technologies used in the article [& I see no intentions to mencione it either]
Come on, give us a good starting point!

JDJ News Desk 08/14/05 06:37:45 PM EDT

XML Rich-Client Technology Brings Zero-Install Rich Client Capabilities to J2EE. Which platform to use Java or .NET? Developers ask this question all the time. Java has been widely adopted because of its overwhelming benefits on the server side, but Java has less to offer on the client side. .NET has made inroads into the enterprise by leveraging its stronger rich-client capabilities. An alternative solution for enterprise-scale Internet application development is the emerging XML-based rich-client technology.

JDJ News Desk 08/14/05 06:37:37 PM EDT

XML Rich-Client Technology Brings Zero-Install Rich Client Capabilities to J2EE. Which platform to use Java or .NET? Developers ask this question all the time. Java has been widely adopted because of its overwhelming benefits on the server side, but Java has less to offer on the client side. .NET has made inroads into the enterprise by leveraging its stronger rich-client capabilities. An alternative solution for enterprise-scale Internet application development is the emerging XML-based rich-client technology.

Joseph Dagg 08/01/05 05:23:16 PM EDT

Thanks to Coach Wei for this fantastic article! This next step in the evolution of presentation in web browsers is what I've been waiting for. However I have to echo the thoughts of commentors before me and say: "Where do I go from here?" I want to put my hands on a working client side "virtual machine" and the api. If someone can point us to the working core of this whole concept, I would be very, very interested.

Omar Palomino Sandoval 07/20/05 04:29:47 PM EDT

Could you name some of these technologies or give us some references to start testing this alternative?

Steve Martin 07/20/05 02:26:58 PM EDT

What are some of the names of this technology that I could look up at other sites? What is the rendering engine of the XML? Is there an online demo we could try?

Steve Martin 07/20/05 02:26:29 PM EDT

What are some of the names of this technology that I could look up at other sites? What is the rendering engine of the XML? Is there an online demo we could try?

Benjamin Weiss 07/20/05 07:06:26 AM EDT

Lots of great fluff, I especially liked the code snippets, but a fully-working code example with instructions on implementation would have been much more useful. Hell, even a link that would have allowed me to do further, in-depth research to see if this is actually a viable option would have been welcome.

tomte 07/20/05 02:51:54 AM EDT

What a nonsense: "procedural programming languages like Java, C#, C++, or JavaScript". These are not procedural but object oriented.
Procedural programming languages are Pascal (not ObjectPascal), Fortran, PL/I, Cobol, Assembler, Basic and many more pre-OO languages.
tomte.

XML News Desk 07/18/05 09:28:32 AM EDT

XML Rich-Client Technology Brings Zero-Install Rich Client Capabilities to J2EE
Which platform to use Java or .NET? Developers ask this question all the time. Java has been widely adopted because of its overwhelming benefits on the server side, but Java has less to offer on the client side. .NET has made inroads into the enterprise by leveraging its stronger rich-client capabilities. An alternative solution for enterprise-scale Internet application development is the emerging XML-based rich-client technology.