About: This is the first part in a series of posts about the present and future state of User Interface programming models and their applicability in various scenarios.
This series of posts introduces the three programming models that in my opinion are going to occupy significant portion of current and future development in the world of user interfaces, I will start with the AJAX that is creating a lot of buzz in the industry these days:
What is AJAX?
What are the underlying technologies used by the AJAX style of programming?
Developing a Web Application using AJAX typically involves utilizing the following technologies, please note that this is not a strict set, for example, instead of using XML or XHTML, it is also possible to use HTML or plain text and instead of XMLHttpRequest an IFrame object maybe used, however most of the AJAX applications are developed using the following technologies
How does an AJAX-based application differs from traditional Web Applications?
In a traditional Web Application user interactions usually result in an HTTP request to the Web server which processes the request, potentially using other servers and database components, and returns the results to the user. While the Web Server is processing the request the user often sees a wait icon and is unable to interact with the UI, after the data has been received and rendered the user can continue with the application. In case of an AJAX-based application, an AJAX engine, often included as a hidden frame, handles all interaction with the user interface and with the Web Server. The client side features like validations, view changes etc. are processed without going back to the server, for interactions that require server calls, the data is fetched asynchronously without blocking the User Interface.
Can I implement AJAX style of programming in J2EE and .NET?
AJAX does not dictate and is not concerned with what happens after the request has been received by the web server, you can use the AJAX style of programming whether you are writing ASPs or JSPs. Microsoft has been using this style of programming (without calling it AJAX) for a number years for its Web applications like Outlook Web Access, and XMLHttpRequest was introduced by Microsoft in Internet Explorer 5.0, there are specific features in ASP.NET 2.0 (e.g. asynchronous callbacks) that make it easier to implement this style of programming, in addition, it was possible to do this years ago using Java Applets, so why the recent buzz? I think that it is primarily due to the release of a number of high profile sites (and some about to go to production this year) that are been based on this style of Web programming.
Pros and Cons of AJAX
AJAX allows you to improve the user experience of web applications and is a viable style for a variety of scenarios, it is a technology that is gaining a lot of momentum but still has some short comings in terms of the ease of programming and the learning curve required to develop serious applications that are maintainable. In my future posts I would be exploring Atlas which is a Microsoft initiative to ease the pains of developing AJAX style web applications, and Avalon (windows presentation foundation) which is part of the Windows Vista and holds the promise to significantly improve the user experience in rich and smart client applications. I will also attempt to explore the scenarios where AJAX, Atlas and Avalon maybe used.
Part 2: http://blogs.msdn.com/mohammadakif/archive/2006/01/23/516425.aspx
Part 3: http://blogs.msdn.com/mohammadakif/archive/2006/01/29/519008.aspx