News

Microsoft's AJAX to Ship Earlier?

Companies are already using Microsoft's ASP.NET 2.0 AJAX features aka "Atlas", a few even in production environments. Customers include social networking powerhouse MySpace, the BBC and emerging Web businesses such as TitleZ, PageFlakes, and squeet.com.

Microsoft reports more than half a million downloads of the free Atlas, now available as a Community Technology Preview, with Go Live license. The features were first available to developers as a pre-release in September 2005. Microsoft is committed to shipping the ASP.NET 2.0 Atlas tools with the next versions (Orca) of Visual Studio and the .NET Framework, but the Web Platforms and Tools team would like to get it out sooner. "We are looking really hard at what we can do to bring that release date in and provide value on top of 2.0, but we're not quite there yet," says Brian Goldfarb, lead product manager, Web Platform and Tools, Microsoft.

The idea behind AJAX development is to improve the user's experience by bringing rich graphics and desktop-like functionality to Web client user interfaces. This is challenging from a development and a testing standpoint. AJAX developers need expertise in DHTML, JavaScript, and XMLHTTP. They also must worry about cross-browser compatibility and integration with Web services and back-end systems. To that end, AJAX toolkits and frameworks are emerging that promise to take some of the complexity out of AJAX development. 

The development team at squeet.com was interested in how Microsoft was solving the AJAX problem. "What Atlas allows you to do is to implement AJAX in a much more efficient way from a coding standpoint," says Hamid Shojaee, head of the squeet.com project and president of Axosoft.

In March, the squeet.com development team decided to use ASP.NET Atlas to improve the user experience on its Web site, an RSS feed subscription service. The developers used ASP.NET 2.0 Atlas server controls, specifically the asynchronous callback feature, to reduce the number of page roundtrips to the server.

"When you want to add a subscription to get an additional RSS service via email, we don't refresh the entire page," says Shojaee. "You type the information that you need, say 'add', and immediately add that item to your list of subscriptions." Cross-browser compatibility hasn't been an issue; squeet.com supports Firefox, Internet Explorer, and "others which we haven't done control testing on," he says.

"Atlas looks very powerful and very promising and we like the fact that it provides so much different functionality," comments Shojaee. "Like most frameworks, it makes AJAX development a lot easier than it would be without it.

"But," he continues, "like most frameworks, it also provides a significant amount of overhead that you don't necessarily need depending on your application. If you don't use 90 percent [of the features], you are basically going to get a ton of extras and those extras have some sort of cost associated with them, whether it is in the form of JavaScript that is being downloaded to the browser that needs to get executed or whether it is in the form of DLLs on the server side that are significantly larger than they would be for very small frameworks like Ajax.net, for example."

Microsoft's approach to AJAX is to build an object-oriented JavaScript client framework, which is supported by ASP.NET 2.0 server controls and the Web platform's existing page framework. The Atlas client script library is a set of JavaScript files that can be used with any operating system and any back-end server including PHP and Cold Fusion.

In an interesting twist, Microsoft is using a shared source collaborative model to expand its client-side Atlas Control Toolkit, which today consists of 16 controls—accordion, drag panel, rounded corners—and extender behaviors.

"We're using CodePlex and we've gotten a handful of people in the community who are contributing back code to that toolkit," says Goldfarb. "We're hoping that the community is able to get us to 100 [controls] in six to 12 months." The toolkit provides Visual Studio 2005 templates for Visual Basic and Visual C# users to create their own components.

"What we've done with Atlas is recognize that there are these two distinct types of developers in the space," explains Goldfarb, who claims 99 percent of Web app developers are familiar with server-side development models. "Along come the AJAX techniques," he says, "and this 1 percent of very skilled developers starts building applications that are focused on the client."

Microsoft's strategy is to provide value for both types of developers, with particular focus on the server-side development model. "What we've done with Atlas is build a whole bunch of server-side components that work directly with ASP.NET 2.0 that automatically do most of the heavy lifting associated with AJAX for you," he says. "For example, with the update panel, with just one line of code, I can wrap a grid and eliminate all page refreshes. 

"If I am an ASP.NET developer today, I am just leveraging server controls that now understand AJAX. I'm writing code for it using VB.NET or C# in a server-side way and all the necessary JavaScript, all the browser quirks, the cross-browser compatibility, the cross-platform compatibility is taken care of automatically by Atlas." The AJAX functionality will work in Safari and Firefox on the Mac; and in Internet Explorer, Firefox and Opera on the PC.

"On the broader Internet, there is a heck of a lot of Apache out there," says Greg DeMichillie, lead analyst, Directions on Microsoft. "But in terms of businesses, ASP.NET is a very popular way of building Web applications and I think it makes sense for Microsoft to kind of bring AJAX capability into that.

"If you think about five years ago," he continues, "building a Web application was a real guru thing and now it's not, now it's something that a lot of developers can do. AJAX today is a guru thing. You've got to really understand a lot about XML and scripting technologies. Microsoft is doing what it always does with complex developer technologies, building toolkits that make it approachable for the garden variety corporate developer."

Developers working on high-volume public-facing Internet sites may be harder to convince.

"They still don't quite trust Windows and ASP.NET for incredibly high volume applications," says DeMichillie. "Microsoft has been trying to eat away at that, and they've had some success but not as much as I think they'd like; I think they are going to take another run at it when they update Windows Server in the Longhorn Server timeframe. I think you are going to see Microsoft take another run at getting the high volume Web sites to use IIS and ASP.NET."

Microsoft in a lot of ways is paying now for the sins of ignoring Internet Explorer for several years. "It absolutely sent the message out there that it won the browsers and it didn’t care too much beyond that," he says. "It would patch for security and that was about it." DeMichillie adds, "Compounding that you see Windows Live Web sites that don't work with Firefox."

For corporate developers, Microsoft's biggest advantage is that it will make all of Atlas technology accessible from Visual Studio and from their Web Expression Web Design tools, which corporate developers are already very familiar with," says DeMichillie. However, "the big issue for a lot of these guys is that the tooling for all this probably won't come until the next release of Visual Studio which is next year."

Microsoft's ultimate Atlas strategy is to offer an end-to-end enterprise solution from custom development to vertical targeted functionality. The Office 2007 SharePoint Server and the Commerce Server are both built on the ASP.NET 2.0 stack.

Atlas will also play a role in the Live development platform. MSN is running Live today on top of the Atlas core. "Live is coming together at a fast clip," says Goldfarb. "The key connection point is if you are building gadgets. We working very closely with the Live team to make sure that we have the infrastructure and technology for all types of developers whether you are a beginner to the most advanced developers to build great gadget sort of functionality whether it is a simple clock to a blackbox communication mechanism for contacts."

At the end of the day, he says, AJAX development is all about standards-based technologies. "The focus here is not about what you do differently, but how well you can enable developers given the limitations of the browser and that's what we are trying to do with our platforms."

About the Author

Kathleen Richards ([email protected]) is the editor of RedDevNews.com and executive editor of Visual Studio Magazine.