Ziff-Davis Enterprise 
DevSource: Microsoft Developer Resource
Add OnsArchitectureLanguagesTechniquesUsing VSForums
 
Home arrow Languages arrow Page 3 - The Beginning of AJAX Standardization
The Beginning of AJAX Standardization
By Paweł Głowacki

Rate This Article:
Add This Article To:
The Beginning of AJAX Standardization - ' Hiding Complexity Through Abstraction '
( Page 3 of 3 )

Layers">

The Browser is a Computer

Programmers are not waiting for standardization. Different versions of contemporary web browsers represent the current state of the World Wide Web specification, and act as a reference implementation for web developers to write their HTML markup, and — more importantly — their client side scripts. Asynchronous communication with the web server is important for a great end user experience, but client side scripting in general is what is making a real difference.

ADVERTISEMENT

I like to think of a web browser as a little computer that can run programs. It is almost impossible to find a serious web page on the Internet without a dose of client-side JavaScript to enrich the end user experience. In looking for good examples of client-side script usage, I found a classical star field simulation, implemented in pure Java Script. The quality of the graphics is closer to old DOS-based VGA programs than to contemporary game consoles, but it shows off the growing computing power that sits on a client and is waiting to be awakened.

Unfortunately, becoming a good JavaScript programmer is not a trivial task, especially since the functionality provided by different web browser versions varies considerably. The unification of the programming model of a web browser is something that really needs to happen.

For example, the XMLHttpRequest object was introduced in IE5 and implemented as ActiveX. Other browsers, including Opera, Safari, and FireFox, implemented it later as well. Consequently, a script to create XMLHttpRequest needs to be branched to accommodate for differences.

In Internet Explorer, we have to write:

var req = new ActiveXObject("Microsoft.XMLHTTP");

Other browsers support more straightfoward constructor syntax:

var req = new XMLHttpRequest();

Consider XML. For a few years, there were endless debates about whether it was useful. Now, XML is used almost everywhere, from a default file format in Office 12 to XAML in the Windows Presentation Foundation.

For programmers, specifications are important because they help to hide the complexity of the underlying technology to become more productive. These new standard Web APIs have the potential to become a new portable computing platform, similar to that which Java and .NET have achieved for traditional programming.

Hiding Complexity Through Abstraction Layers

IT technology is evolving by hiding application complexity behind abstraction layers. I want to build AJAX web applications; but I do not want to invest too much time in mastering client side scripting that needs to take into account differences among web browser implementations.

The standardization of Web APIs should make it possible to create an abstraction layer, so different vendors can start building frameworks on top of it, simplifying common programming tasks. Borland Visual Component Library (VCL), introduced with Delphi 1.0 almost ten years ago, is a great example of hiding complexities of low level Windows APIs through high level object model and reusable components to make programmer more productive.

Atlas and AJAX

The ASP.NET architecture was designed to simplify server-side web development, but client side scripting is everything but visual. There are some facilities in the ASP.NET Page class to generate client side scripts, however it is still a manual process and it requires good knowledge of JavaScript.

Microsoft is moving in the same direction of building abstraction layers with AJAX, through the Atlas framework. "Atlas" contains a set of client script libraries that define a layered approach for creating client-based applications. The first layer is a browser compatibility layer, whose goal is to eliminate the need to write browser-specific scripts. The standardization of Web APIs will probably, over time, reduce the amount of client side code needed to implement this layer.

The second layer is 'Atlas' core services, which include extensions to JavaScript, such as classes, namespaces, event handling, inheritance, data types and serialization. These object oriented features put a familiar face of RAD programming on client side scripting abstracting away its complexities. The Atlas stack goes higher and includes more and more specialized layers like base class library, networking, and UI with declarative programming model to better fit into a broader ASP.NET server side architecture.

Click here to learn more about the basics of AJAX and Atlas.


Web 2.0 and beyond

Web programming is arguably the most interesting and quickly evolving technology. AJAX is hype, but it represents a shift in the way we perceive coding for the web. The paradigm of the HTML front-end rendered at the server is going away, and dynamic pages with tons of client side scripts that do not require postbacks are taking over the World Wide Web by storm. The standardization of a web browser is going to be a real milestone in reaching the Web 2.0 nirvana.

Additional References

 
 
>>> More Languages Articles          >>> More By Paweł Głowacki
 



DevSource video
Devsource Video Series
Manipulating Society through Technology
Jeremy Bailenson, Director of the Virtual Human Interaction Lab at Stanford University, talks about virtual reality, avatars, Moore's law, how real world behaviors influence online reality, and societal manipulation through technology!
>> Play video
>> Read article
>> See all videos
DevLife Blog

Julia explores the Robotics Studio! (It's for more than you think.)

MSDev Blog

Messages for Bill Gates!

Make it Work
.NET makes runtime type checking a breeze. See what Peter has to say about it in this week's tips!
News
Microsoft Counts on App Support for Vista
Microsoft has taken pains to demonstrate that Windows Vista will have ample application support.
DevSource RSS FEEDS
XML Want an easy way to keep up with breaking tech news? And the Get DevSource headlines delivered to your desktop with RSS.