In-Depth
How ASP.NET AJAX Impacts Developers
Microsoft's Brian Goldfarb discusses the newly released ASP.NET AJAX and what it will mean for both traditional server-side ASP.NET developers, as well as developers whose emphasis has always been more on the client side.
PM: Microsoft announced the beta for ASP.NET AJAX (formerly known as Atlas) the day this interview is taking place. Tell me, briefly, why Microsoft created this tool, and what it includes.
With ASP.NET 2.0 and AJAX, we're selling a lifestyle. We're selling the ability to bring rich interactivity to your customers' Web sites, as well as improve the end-user experience in a way that makes people want to spend more time on your Web site. We're selling a way to differentiate your sites from the sites of your competitors.
There are a number of different components that make up ASP.NET AJAX. First, there are the ASP.NET AJAX extensions that include the server-side extensions for ASP.NET specifically. These extensions include a set of controls and hooks into the core .NET platform.
You also have the Microsoft Ajax Libraries, a pure JavaScript component. The ASP.NET AJAX extension server has this library built in, so you don't necessarily need to use the AJAX library separately. That's the core. We're going to have a supported core of bits that enterprises can bet on because it's going to be 100 percent supported by Microsoft Personal Support Services (PSS).
PM: Where does ASP.NET fit into the world of Web 2.0?
Data-driven Web sites were the rage for almost a decade. I view AJAX as a side effect or a symptom of a broader market change.
For example, you can see a real need to differentiate sites when you look at user experience as a concept. This is especially important as business models on the Web commoditize. Everyone is moving to ad-based revenues, the mash-ups are coming into play, taking advantage of data sources that are intrinsic to Web services, and you need a way to make your sites stand out from all the others that are out there.
This means businesses must do a couple of things differently. First, they need to connect with their customers on a level that reflects their customers' needs. That means anticipating what services their customers want, and providing them. But you must also do so in the context of providing differentiation. What's the difference between Travelocity, Expedia, Sidestep, or some other travel site? They offer essentially the same services, at essentially the same prices, yet people often have a preference—a substantial preference, even. Some people like Travelocity, I happen to be a Sidestep fan. I happen to like the way Sidestep works, so they get my business. The pricing on Sidestep is within the margin of my not caring, as is true for all the sites. But I prefer the user experience on this site, and that's how that company wins me over as a customer.
Consider the example of MySpace. What companies have to address is this question: What is the compelling value proposition that keeps people coming back to MySpace? It's the user experience, it's the interaction with peers, it's the music and other ways that you can customize your page. And that, to me, is the essence of the next generation of online applications.
AJAX is an enabler. That's all. AJAX has existed since 1994 or 1995. This isn't new technology, it's always been there. It was difficult, it was hard to use. But the necessity for businesses to go that route, to create these kinds of rich user experiences, has never existed in the marketplace. But the right inflection point occurred, and AJAX blew up. That was a symptom, a technology solution for delivering on functionality that customers wanted.
So where does Microsoft fit into this? We're about enabling our customers. We're going to do whatever it takes to make sure our customers are successful in their businesses.
We recognize the need for differentiating user experiences, and you can see that manifesting itself in various ways, such as with our expression family of tools for professional designers, where we are making application designers first-class citizens in the whole application-lifecycle management (ALM) process. It's not just about the developer anymore.
PM: So who are the targeted customers that you're trying to enable with AJAX?
We are targeting several kinds of customers that derive from two specific models. First, AJAX is a complex development solution. It's difficult. JavaScript is not the familiar, server-side model that we've been pushing as an industry since 1996 with Perl, CGI, PHP, ASP, Java, and so on. Those are all examples of server-side programming, whereas AJAX interfaces at the client.
We're focusing AJAX on two basic customer sets.
Number one is the existing server-side developer, such as the typical ASP.NET customer. These are people who have great, compelling data-driven Web sites that want to add rich user experiences, cases where they have customers to begin with, but are being driven by necessity to add rich interactivity to their Web pages. ASP.NET AJAX helps solve this problem for this customer because of its rich interactivity story, because it uses the same control model, and because it integrates directly with the platform.
On the flip side of this is the true client-side developer. You have the JavaScript guy, who loves to work with JavaScript, who is a complete rock star when it comes to doing interesting things on the client. With the Microsoft AJAX library, which is a component of ASP.NET AJAX, we want to enable anyone, whether they use ASP.NET or an alternative platform such as PHP or Java, to be able to take client-side libraries full of JavaScripts and do lots of interesting AJAX-enabled goodness on their sites.
PM: Where do you acquire this library?
It's part of the ASP.NET AJAX, so you can just download it. We do provide it in two distinct pillars. One is as an MSI installer for Windows-based machines. But if I'm working on a Linux machine or a Mac, I can download a ZIP file that includes only the JavaScript libraries. One of the neat things about the Microsoft AJAX library itself is that we're going to license it under a derivative of the Microsoft permissive license, one of our shared source licenses that enables free distribution and user modifications. This is true to the open source model.
Anyone will be able to take the hundreds of thousands of lines of JavaScript that we've developed and be able to tweak them, customize them, redistribute them, commercialize them, whatever—we don't care. That's a benefit to me. It's also a big benefit to Microsoft's customers, who have control over their release and debug scripts.
PM: The specific is terrific, was a favorite mantra of one my grade-school teachers. Describe, briefly, a real-world app that ASP.NET AJAX makes possible.
Our Web platform story goes from the server all the way to the client. It covers the browser, the delivery mechanism for content, and the tools used to create that content.
But the best way to think about is in the context of interesting apps that are being created on this platform. For example, an interesting app I learned about recently is Shelfari. They call themselves a "rich media bookstore. " It's a social networking site for bibliophiles. They can put their bookshelves online, write reviews, engage with their peers to discuss interesting books and topics, and so on. I think there's something like 100,000 books published a year. It's difficult to sift through that many books to find the ones you want. It's like e-mail or spam. How many of those books do you want to read? But you can have trusted peers, luminaries, people you can trust to help you to sift through this immense number of books to figure out titles that you might like to read.
You might read the NY Times, but you also might turn to a site like Shelfari; this site uses ASP.NET 2.0 and AJAX to enable a social connection.
PM: Let's talk about ASP.NET 2.0 and its scalability and performance. We know from personal experience at FTP that there remain problems with Visual Studio 2005 and ASP.NET when creating and managing extremely large sites, such as failures on load when firing up the IDE. How is Microsoft addressing these scalability issues?
We continue to work hard to improve our tools. For example, Service Pack 1 (SP1) is in process, and this will address a number of customer-reported performance issues. We've also released the Web Application Projects model recently, which is an augmentation to the way we interact with projects and provides significantly better performance for Web sites that exceed thousands of pages.
When we first released the product, we received a bunch of feedback where customers commented that these tools were great for creating hobbyist or intermediate-level Web sites, but were less adept at creating Enterprise-scale Web sites. For example, someone might say: Hey, I'm the enterprise guy, and I like the old model better.
We rallied, and within three months, we had Web application projects on the market, and the feedback we've had has been highly encouraging.
PM: Where can people acquire this tool?
That said, I think it's important to note that MySpace, which I think is the second largest Web site there is, is built on ASP.NET 2.0 and VSTS. If that site can be built on ASP.NET, any site can.
We know our platform is capable of handling solutions that are as big as it gets. It's not a matter of the tool's capabilities, but of the way people implement solutions on top of it. It's more a matter of giving people the right set of guidance and patterns. That's a good thing. We feel the tools are ready, and it's simply a matter of overcoming the education challenge.