1.1. Why AJAX Applications Are Needed

Web applications were in a rather stagnant state for many years. The first "Web" applications were nothing more than text and some images, all represented in basic HTML tags. However, this wasn't what people wanted; they wanted more — more interactivity, a more integrated workflow, more responsiveness, and an overall richer experience.

When building applications, even today, you have to make some specific decisions that really end up dictating the capabilities and reach of your application. Probably one of the more important decisions is the choice of building the application as a "thin" client or a "thick" client.

A thick client application is a term used for applications that are either MFC (in the C++ world) or Windows Forms applications. These types of applications also provide the container along with all the container contents and workflows. A thick client application is typically a compiled executable that end users can run in the confines of their own environment, usually without any dependencies elsewhere (for example, from an upstream server).

A thin client application is the term generally used for Web applications. These types of applications are typically viewed in a browser, and your application can provide end user workflows as long as it is contained within this well-known container. A thin client application is one whose processing and rendering are controlled at a single point (the upstream server), and the results of the view are sent down as HTML to a browser to be viewed by the client.

Typically, a Web application is something that requires the end user to have Internet access in order to work with the application. On the other hand, a thick client application was once generally considered a self-contained application that worked entirely locally on the client's machine. However, in the last few years, this perception has changed as thick clients have evolved into what are termed "smart clients" and now make use of the Internet to display data and to provide workflows.

Web applications have historically been less rich and responsive than desktop applications. End users don't necessarily understand the details of how an application works, but they know that interacting with a Web site in the browser is distinctly different from using an application installed locally. Web applications are accessible from just about any browser, just about anywhere, but what these browsers present is limited by what you can do with markup and script code running in the browser.

There are definitely pros and cons in working with either type of application. The thick client application style is touted as more fluid and more responsive to an end user's actions. Thick client applications require that users perform an installation on their machine but let developers leverage the advanced mouse and graphics capabilities of the operating system that would be extremely difficult to implement in a Web browser, and also take advantage of the user's machine for tasks such as offline storage.

Conversely, the main complaint about Web applications for many years has been that every action by an end user typically takes numerous seconds and results in a jerky page refresh.

Conversely, Web applications can be updated just by changing what is running on the server, and site visitors get the latest version of that application instantaneously. However, it is much more difficult to update a desktop application, because you would have to get users to perform yet another installation or else ensure that the application has been coded to include a clever system for doing updates automatically.

Web applications are said to use a zero-deployment model, but desktop applications use a heavy deployment and configuration model. The choice is often characterized as a tradeoff between rich and reach: Desktop applications generally offer a richer user experience than what could be offered in the browser, but with a Web application you are able to reach users anywhere on any OS with almost no extra effort. Furthermore, many companies have restrictive policies in place regarding what software can be installed on employees' machines, and they often don't allow employees to have administrative access that is required to install new applications, so Web applications are the only viable option in many situations.

AJAX is the first real leap of a technology to bridge this historic wall between thick and thin. AJAX, though still working through the browser, focuses on bringing richness to Web applications by allowing for extremely interactive workflows that usually were only found in the thick client camp.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset