Related topics
  • ,
  • ,
  • ,

How Microsoft blew its own RIA invention

Silverlight: back to the browser

Cast your mind back to the year 2000. Microsoft has just announced its .NET Framework, complete with a new language called C# - that was in July, at the Orlando Professional Developers Conference.

A couple of months later, Mark Anders and Scott Guthrie from Microsoft's ASP+ team turned up at the Wrox Web Developer Conference in Las Vegas. Remember ASP+? This was the pre-release name for what became ASP.NET, the web application framework built on .NET.

Anders and Guthrie presented their new technology in the Wrox keynote, following which I interviewed them. They were absolutely the key people. "We started the team about two-and-half years ago. At the beginning it was just the two of us, working on it," said Guthrie.

Was ASP+ based on .NET from the beginning? "No," said Anders. "There were a number of groups around Microsoft that were looking at how we could move the programming model forward. We were on the IIS team; we had just shipped IIS 4.0, and thought we could do a lot better for web development. The tools team thought that they needed to make things simpler. We came up with some stuff, showed it to the tools team. They were working with the runtime team, we liked what the runtime team was doing, and started doing it like that."

Anders later revealed that the first ASP+ experiments were done in Java.

We also discussed how.NET components hosted in the browser might become a more secure alternative to ActiveX. "That is there today," said Anders. "If you create controls using WinForms, those can be hosted in IE [Internet Explorer] and run within the security sandbox. It's not through ActiveX hosting.

"As your binding to code within one of those components that comes down in the browser, if it's not present on the machine it will be downloaded. We have a great incremental download and deployment story. We expect it to be very popular."

Good idea, but it never really happened. Microsoft got security cold feet, and ended up crippling the feature in the 1.0 Framework so that Windows Forms controls did not run at all in the default Internet Zone. This was fixed in 1.1, but web developers disliked the .NET dependency and the fact that it only worked with IE and Windows.

It took Microsoft another five years before announcing Windows Presentation Foundation Everywhere, now Silverlight, at PDC in September 2005 - by which time Anders had left Microsoft to work on Flash tools at Macromedia, now Adobe Systems. These things take time.

So what about AJAX? The acronym stands for Asynchronous Javascript and XML, and it relies on a browser feature called XMLHTTPRequest, which lets you retrieve data asynchronously in JavaScript. You can then write code to update the contents of a page dynamically rather than refreshing the entire page, with the inevitable screen flash that implies. The technique was invented by the Exchange team at Microsoft for Outlook Web Access, and XMLHTTPRequest showed up in IE 5 in 1999.

Team member Alex Hopmann described the history here. Few people realised the significance of the feature, until Google started using it for GMail and then Google Maps. Jesse James Garrett, author and president and co-founder of "experience" design and consultancy Adaptive Path, identified the trend and called it AJAX in 2005.

Why did Microsoft do so little to exploit its own invention?

It is a good question, particularly since Anders and Guthrie apparently recognized its potential back in 2000. Guthrie demonstrated it during that Wrox keynote, describing it as "incremental page refresh." I was impressed, and asked him how it worked. He chuckled. "With the original ASPX and the ViewState we're able to determine what the shape of the page looked like on the previous request. A control can tell us whether or not it's dirty. We calculate out the union of all the dirty regions, and then send back that union in an XML packet to the client. On the client we then apply that to the original document."

It was an excellent demonstration; but it was not until ASP.NET 2.0, released in 2005, that Microsoft included the ICallBackEventHandler interface to make something like this easier to code, while full AJAX support did not arrive until ASP.NET AJAX in 2006. All of this looked more like a response to trends set by others, rather than innovating with home-grown technology.

It is possible that Microsoft failed to exploit the potential of AJAX because it did not want to promote the browser as a rich client? IE 6.0 came out in 2001, and was followed by a five-year hiatus until version 7.0 in 2006.

Microsoft lost interest in the browser because it wanted to promote rich web-connected desktop clients, running on Windows. The strategy failed, and in 2008 Microsoft is once again engaged in the browser wars and (with Silverlight) the Rich Internet Application (RIA) wars.

The interesting reflection is how much momentum it lost by not following up more quickly on its own innovations. ®

Sponsored: Today’s most dangerous security threats