Welcome to the Dart White Paper repository. We have created this section to publish White Papers about our technology, ideas for IT solutions implementing TCP and UDP based communications, tips for using our products, and opinions about current and coming technologies. Along with these articles, readers will have the opportunity to respond with their own ideas and we will publish those comments along with the articles. If you have a comment on any article, please submit it to comments@dart.com.

Ajax, Atlas and PowerWEB
What are they and how do they compare?
Dart Communications - July 2006
 
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, AJAX, or aJaX?
Ajax is an acronym that stands for Asynchronous Javascript And Xml. 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 scripts (Javascript) communicating with the server (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.

 

Along came Atlas (soon to be released as ASP.NET AJAX)
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?

Atlas is a Rich Internet Application framework for ASP.NET 2.0 that is comprised of client script libraries and server components for creating Ajax interfaces and more. That “more” includes such goodies as client-initiated web service calls, but may be expanded and refined as Atlas approaches final release. The script libraries, which conveniently do not require ASP.NET or even IIS, create an object-oriented coding model for Javascript. If you’ve ever spent late nights wrestling with Javascript debugging, you realize that this is truly a remarkable achievement. The server components allow developers to modify page elements, participate in the server-side ASP.NET page cycle, and add behaviors to existing controls. Yep. Ajax.

So, how is Atlas different than any other Ajax implementation? Fundamentally, every implementation uses the same technologies and Atlas is not unique in this regard. The real difference is that it has the full support of Microsoft, and all that implies. Like others doing more advanced Ajax work, they have even incorporated a nifty technology into the mix called JSON (JavaScript Object Notation) that allows hierarchical object data to be serialized between client and server without using the often bulky overhead of XML and XML parsing. Yes, it’s still being called Ajax, even though the X of XML has been supplanted. Atlas is sure to be integrated into a future release of Visual Studio and will likely become the standard development platform for ASP.NET applications and controls.

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.

 

Whenceforth came PowerWEB?
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.