Rich Internet Applications are Web-based applications that function as traditional desktop applications however Web browsers (or clients) are required to access but unlike traditional applications. The key benefit RIAs possesses is the functionality to interact and manipulate with data, rather than simply visualize or represent it. And that’s the reason users demand their applications to be much more interactive, dynamic and highly responsive. It makes developer task more challenging to meet user expectation.

Market for the server-side languages is crowded and lot of languages are being used by the developers like JSF, ASP.NET, Adobe Flex, PHP and more which promises RIA features. So how can a new developer understand and realize that which application is best for his application. To find out the appropriate server side language always remains the hot issue for the companies and developers. For this reason I am going to compare the features of different frameworks.Two main technologies I am going to talk about are ASP.NET and JSF; both represent next generation development frameworks. Comparison will be based on ease of development provided to developer, tools for the framework and support to other frameworks.

What is Web 2.0

The term Web 2.0 is commonly associated with web applications that facilitate interactive information sharing, interoperability, user-centered design, and collaboration on the World Wide Web. To better understand Web 2.0 we can divide it into three sections:

  • RIA (Rich Internet Applications) – RIA helps to achieve the behavior of desktop application on web browser.
  • SOA (Service Oriented Architecture) – It is one of the key section of Web 2.0 that includes buzz words like Feeds, RSS, Web Services and Mash ups.
  • Social Web – Web 2.0 tends to interact much more with end user, end user is not only user of application but also a participant whether it is interacting with wiki or doing podcast or blogging.

What are Rich Internet Applications?

Rich Internet applications (RIAs) are web applications that have some of the characteristics of desktop applications, typically delivered by way of an Ajax framework, proprietary web browser plug-ins, advanced JavaScript compiler technology, or independently via sandboxes or virtual machines. Examples of RIA frameworks that require browser extensions include Adobe Flex, Java FX and Microsoft Silverlight. Rich Internet Applications serve users through web browser, via browser plugin or by an independent sandbox (Independent Desktop Application).

Rich internet applications use a distributed-function model rather than the simple thin-client–server model. RIAs enrich user experiences in part due to their reduced reliance on network/server communications.

Overview of Technologies

JSF (Java Server Faces)

JSF is a rich featured framework of JAVA technology. JSF provides a set of standard features that makes it a powerful and standard among the existing technologies available for the development of web application based on java technologies. Some of the features have been given below to justify the above statement.

  • JSF is standard web user interface framework for Java.
  • Built on top of Servlet API.
  • JSF is a component framework
  • UI components are stored on the server.
  • Easy use of third party components.
  • Event driven programming model.
  • Events generated by user are handled on the server
  • Navigation handling.
  • Can automatically synchronize UI components
  • JSF supports multiple client devices.
  • JSF has extensible architecture.
  • International language support.
  • Extensive tool support (Sun, Oracle, IBM etc.)
  • Rapid application development approach.

ASP.NET

ASP.NET is a programming framework built on the common language runtime that can be used on a server to build powerful Web applications. The first version of ASP.NET offered several important advantages over previous Web development models. ASP.NET 2.0 improves upon that foundation by adding support for several new and exciting features in the areas of developer productivity, administration and management, extensibility, and performance.

ASP.NET is Platform to develop Rich Internet Application has simplified web development and provides rich components to develop web applications. The obstacle face by ASP.NET or Microsoft is integration with other frameworks, although ASP.NET can be used with any of .NET based technologies (C#, VB, J#).
Below are the features of ASP.NET:

  • Easy Programming Model
  • Flexible Language Options
  • Great Tool Support
  • Rich Class Framework
  • Enhanced Reliability
  • Memory Leak, DeadLock and Crash Protection
  • Easy Deployment
  • Dynamic update of running application
  • XML Web Services
  • Mobile Web Device Support

Comparison

This section compares the feature and functionality provided by the frameworks.

Features JSF ASP.NET
Security JSF used J2EE security features, where the possibilities are numerous and mature. Provides lots of security features but most the security features are ties to Windows Platform
Portability Once develop can run on any platform. Requires windows platform.
Ease of development Lots of tools provided in the market which visual development or RAD facility Microsoft Visual Studio provides extensive support and have made really easy to develop web applications.
Maintainability JSF code is based on MVC structured and is really easy to maintain. Visual Studio provides good visual support to maintain the code but sometimes make messy code when using lot of visual mode.
Integration JSF can be easily integrated with other frameworks like spring, struts, or more ASP.NET can easily use .NET based Frameworks only as an application framework.
Performance Reduces the data traffic and increase the performance by long term data cache Performance in ASP.NET is better than JSF one of the main reason is it only focuses single platform Windows
AJAX integration More than 30 Frameworks available Microsoft ASP.NET AJAX Control Toolkit

Following table describes the few facts about the J2EE and .Net technologies

J2EE .Net
Type of technology Standard Product
Middleware Vendors 30+ Microsoft
Interpreter JRE CLR
Dynamic web pages JSF, JSP ASP.NET
Middle-tier components EJB, Spring, JRuby .NET Managed components
Database Access JDBC, Hibernate, SQL/J ADO.NET, ODBC

Conclusion

Both frameworks have their pros and cons, like JSF is very good technology providing much enhanced features like Security, Interoperability, scalability, portability but it not easy to learn as compared to .Net. To build standard web application you have to know and follow standards of J2EE to get good result.

If we talk about ASP.NET it has a very good Integrated Development Environment provided by Microsoft, very easy to learn, even if you don’t know anything about ASP still you can develop fully interactive web application using visual editor.

If we stay within Microsoft technologies to develop application there is lots of support provided but it does provide much support to integrate with other technologies and if we successfully integrate with other technology it affects performance badly.

Both the frameworks are still working to get even better result and most of the time both of them follows each other, even if you see set of built in component provided in both are same and have same sort of functionality. So in the next article of this series I’ll compare the built in component and their support in integrated development environments.