You may have heard the buzz surrounding the term Ajax
. If you’re an ASP.NET developer, you may have even heard the term Atlas thrown around once or thrice. Despite the mythical or even heroic origins of these terms, they relate to a set of technologies that are real, concrete, and not as complex as one might be led to believe. With this primer, my goal is to explain differences and similarities, and finally relate them to Dart’s PowerWEB line of products.
Ajax is an acronym that stands for Asynchronous J
ml. It is sometimes written in all-caps as AJAX
, but often simply as Ajax
. I prefer the latter as it reads less like shouting when included in email, and because lately it is becoming less and less about XML. If you’ve ever clicked on a submit button and seen a spinning icon appear before a portion of the page was updated, then you’ve used Ajax. What you witnessed was a set of client
(Asynchronously) using an object called XmlHttpRequest
to receive new data (typically in XML format) that is parsed by client script and used to update the page contents. This interaction is known as a callback
. In short, Ajax is a set of technologies and techniques that allow communication to server processes and updates to web page elements without requiring a full page post.
While clearly an exciting and useful technology, it is not exactly cutting edge or new. Microsoft has been working with this development paradigm for almost 10 years and has been supporting it within Internet Explorer since at least 1999. Why all the attention and press, then? Until recently, only certain browsers and platforms would support the underlying technology required for such magic – the XmlHttpRequest object. So, adoption was slow except for cases where the target browser could be controlled, typically in enterprise intranet applications. Today, all modern browsers support the underpinnings of Ajax, but that wasn’t the real spark that lit the Ajax fuse. It was a combination of end-user demand, clever programming, and savvy marketing.
First, the web community had been stuck in the mediocrity of click-post-redraw for far too long. Rich client developers scoffed at the arcane model that web developers and customers had come to accept. Then, in 2005 Google began releasing free applications such as GMail and Google Maps that seemed to defy what a web user interface could possibly do. Finally, in February of 2005, Jesse James Garrett of Adaptive Path coined the term Ajax to define this approach to web development. In the eye of this perfect storm, users, developers, and marketers collectively shrieked, “Aha!” While this development approach has always had real meaning and value, it was finally given a sexy name.
Realizing that Ajax, or more generally Rich Internet Application
(RIA) development is not just a passing fancy of the Web 2.0
cognoscenti, Microsoft has dedicated considerable resources to creating what may become the finest Ajax framework on the market. Yet, at the time of this writing Atlas is still a technology preview (read: pre-beta) that is not slated for initial release until the end of 2006. So what exactly is it and how can an ASP.NET developer benefit from it?
Today, developers are free to download and experiment with Atlas, and even build real-world applications. Microsoft is counting on the community of ASP.NET devotees to provide much needed feedback and support. I highly recommend that anyone with the time take them up on the generous offer.
In December, 2004, Dart Communications released a product called PowerWEB LiveControls
. This product includes a set of ASP.NET server controls that are one-to-one replacements for the standard web interface components included in Visual Studio. Items such as Buttons, CheckBoxes, DropDownLists, and more are available but exhibit some remarkable properties.
Developers use these components just like the standard ASP.NET server controls, raising events, and modifying properties within code-behind. Yet, when events are raised or updates are performed, they occur without a full page postback. Is this starting to sound familiar? Yes, LiveControls are truly Ajax through and through, but no new skills are required for the ASP.NET crowd. Also, from the very beginning LiveControls utilized a technique similar to JSON for eliminating the overhead of XML in each callback.
Soon after the release of LiveControls, Dart updated its WYSIWYG HTML editor, PowerWEB TextBox to be Ajax-enabled and fully compatible with the LiveControls engine. While always heavily client-centric, PowerWEB TextBox gained the ability to issue callbacks from toolbar buttons or other events. This new feature allows the editor to perform actions such as incremental saves, avoiding a full-page postback. LiveControls interoperability further enhances developer options for creating rich applications. Within the context of a LiveControls callback, TextBox properties and behavior can be modified, and vice-versa.
In July of 2006 Dart released PowerWEB Zoom for hi-res image panning and zooming within an ASP.NET application. This amazing product offers the interactive features first popularized by Google Maps and expands their use beyond maps. Under normal circumstances, placing high resolution images on a web page causes two problems. First, the image is physically very large and unwieldy for the end-user to view within a web page. Second, the file is usually large which increases the download time and bandwidth needed before it can be viewed. To solve the first problem, PowerWEB Zoom does the heavy lifting by rendering reduced versions of the source image so it is viewed within a standard page layout. The second problem is solved by intelligent data delivery. Zoom, breaks the image apart and send only those portions necessary down to the client. This reduces bandwidth and allows the end-user to start viewing the image immediately.
As you can see, Dart is dedicated to expanding and innovating within the the PowerWEB product line with new and exciting Ajax-enabled tools. Let’s take a look as some questions we are often asked.
If Microsoft is building a world-class Ajax platform, why would anyone invest in other vendor products or implementations?
That’s a fair question. The answer largely depends on you and the environment in which you operate. Are you still building applications on ASP.NET 1.x, or are you working in a mixed 1.x and 2.0 environments? Does the construction of production applications on pre-release or beta software give rise to any concerns? Are you currently evaluating products and technologies for a project kicking off in 2006? If you answered yes to any or all of these questions, choosing a tested and supported implementation of Ajax may be your best value. At this time, all PowerWEB products support all versions of ASP.NET and all versions of Visual Studio .NET including Visual Web Developer 2005.
What if I decide to incorporate Atlas into an application that already uses another vendor’s Ajax implementation?
As I’ve stated, Ajax is a wonderful phrase or pseudo-acronym, but the one downfall to an accepted term is that it implies uniformity or even governance. If you take anything from this article, let it be:
- Ajax has the potential to change the face of Rich Internet Application development.
- Ajax is not a standard, it is a coupling of technologies and techniques.
- Ajax is not owned or controlled by any one corporation or group.
If an application integrates several Ajax engines, you should expect some areas of disconnect or incompatibility. In fact, even within Atlas itself there are cases where standard Microsoft controls do not seamlessly integrate. However, vendors such as Dart continue to work with Microsoft to ensure the highest degree of compatibility possible, and will provide support and guidance on best practices and techniques using their products. As Atlas nears completion, expect more product announcements related to Atlas compatibility. Soon after Atlas is released, you can count on innovative products being built entirely on the Atlas framework.