Ruby and the History of ASP.NET

As I have been learning a bit of Ruby from which I plan to try my hand at Ruby on Rails, I learned a little bit of the history of RoR as a platform and read that ASP.NET MVC was inspired by Rails. I decided to dig deeper into the history of ASP.NET and Microsoft’s web technologies in general. Here’s the story, as told by this web developer from his research. How did we get here? Where did this ASP.NET stuff come from? How does Ruby and jQuery fit into all this? I have a few hours today so I thought I’d bang something out.

Ruby was conceived in February of 1993 by Yukihiro Matsumoto. Early that same year, the first Microsoft Internet site was born. As the servers being used at the time couldn’t handle the traffic to Microsoft.com, Microsoft was forced to develop its own web server, IIS. The first release of IIS was as a free add-on with Windows NT 3.51. It wasn’t until two years later in August of ’95 that Microsoft would release its first browser, Internet Explorer. During this time, Netscape released a beta of Netscape Navigator 2.0 with LiveScript which was later renamed to JavaScript. Netscape also created a form system which would tell you if you’d entered an invalid value for a field as soon as you entered it, instead of after you tried to submit the form to the server.
This would also be the year that Mark Anders, one of the cocreators of ASP.NET would start his career at Microsoft. Anders would later leave to join Macromedia which would be bought by Adobe a year later in 2004.

It wasn’t until 1996 that Microsoft adopted and released their own implementation of JavaScript, “JScript”, as well as their own proprietary scripting language, VBScript. Both scripting engines would serve as part of the Microsoft Windows Script Technologies. Microsoft had also been working on project “Denali” or ASP, which would later be referred to as “Classic ASP” following the release of ASP.NET. Microsoft was now at version 3.0 of their Internet Explorer web browser and of their web server, IIS. Netscape still held over 60-80% of browser marketshare, but this would sharply decline in the next couple of years. Netscape eventually released the source code of their browser as a free version named “Mozilla” in January of 1998. By this time, the other cocreator of ASP.NET, Scott Guthrie, had joined Microsoft to work on IIS version 4 and the Windows NT Option Pack.

Anders and Guthrie had been looking at ASP and how it and Visual InterDev were being used at the time and, seeing that it was messy, desired to create a replacement. The first prototype for ASP.NET would be written in Java, called “Project Cool”. It was actually the Visual Basic team that was working on what became the “Common Language Runtime” or CLR, that would function as the virtual machine component of Microsoft’s .NET framework. Brad Abrams, a founding member of both the CLR and the .NET framework teams started designing the BCL and the Common Language Specification for .NET.
Microsoft continued to work on and improve Classic ASP, releasing version 2.0 alongside IIS 4.0 as an Option Pack for Windows NT4.

In 1999, the web took a huge step forward when Microsoft created the invention of the XMLHTTP ActiveX Control as part of Internet Explorer 5 and not long afterward, Mozilla quickly implemented their own version of the XMLHttpRequest object. This allowed the JavaScript inside web pages to talk to the outside world and request data directly from the server.

From 2000 to 2002, C# and the CLI would become ECMA and ISO standards. The .NET framework version 1.0 was released along with the first version of ASP.NET and Visual Studio .NET (2002). Microsoft published an introduction to ASP.NET and “Web Forms” written by Paul Sheriff, who was the Regional Director for MSDN in Southern California at the time. “Web Forms” allowed developers to create websites by dragging controls on forms much like they had developing native windows applications. It abstracted the web away, requiring no knowledge of the conflicting HTML, JavaScript or CSS implementations at the time.
It was designed to attract Visual Basic developers to the web with the promise of solving cross-browser compatibility problems and preserving state over the stateless HTTP protocol of the web. Overnight, Visual Basic developers had become web developers and Web Forms was described by many as “just the thing the web needed at the time”.
At this time, Douglas Crockford, the creator of the JSON standard, was the CTO of State Software. It is his employment here that he references in his Google tech talk “JavaScript: The Good Parts”.

Internet Explorer’s marketshare would steadily grow to encompass over 90% of browser usage on the web. Microsoft had conclusively won the browser war and innovation of their browser would remain stagnant until the release of IE7 in October of 2006.

Meanwhile, Ruby and its usage had continued to improve and grow and in July of 2004, David Hansson released “Ruby on Rails” as open source. Prototype.js would later be created by Sam Stephenson to be extensively used in this platform (jQuery would not be created for another year until August of ’06). Rails was an MVC framework like many of its time.
Version 1.0 of Rails was released in December of the following year and Microsoft would take later take notice of its success and embrace Ruby as one of the languages implemented on top of the DLR. IronRuby was announced at MIX 2007 having been developed by the Microsoft Dynamic Runtime Language Team.

Two years after the creation of Rails, Microsoft shipped the first version of the Microsoft AJAX Library, codenamed “Atlas”. Shortly afterward the “Ajax Control Toolkit” would also be shipped, but, as lamented by ASP Insider and Microsoft MVP David Ward, “…what this server-centric approach offered in ease of use was often negated by inefficiency. It was easy to end up with dozens of HTTP requests for embedded JavaScript, image and CSS resources. Worse, it wasn’t entirely obvious where the culprit was, since those embedded resources were silently injected on the control’s behalf, not explicitly added to the page by the developer.” Version 2.0 of the “Microsoft AJAX Library” would never be released and the project was abandoned. As of today, the Ajax Control Toolkit has been released on CodePlex, but “with so much of its functionality already present in jQuery, the only certainty is that its future is uncertain.”

Along with Scott Guthrie who continued his work on ASP.NET, Microsoft hired several new employees in 2007 including Phil Haack and Scott Hanselman. Hanselman and Guthrie were working on a prototype MVC framework that sat on top of ASP.NET as a proprietary project. The shift of the ASP.NET team changed “rather than reinventing the selector engine, DOM manipulation or animation framework…[new Microsoft JavaScript libraries] focus was truly on complementing jQuery…That shift in approach was an important one.”
Guthrie presented ASP.NET MVC publicly for the first time at an ALT.NET conference in Austin, TX during the first weekend of that October. Guthrie later released some MVC examples online which Brad Abrams copied and converted to use against the Northwind example database utilizing Entity Framework. Brad would later say of ASP.NET 3.5, AJAX and MVC that they “…lit my passion for the web development area that I continue to believe is a game changer.”
Microsoft was coming under the realization that “JavaScript is inevitable” and “Microsoft is embracing JavaScript”. Joe Stagner, another Microsoft employee part of the ASP.NET team would later say, “From my perspective, [MVC’s not hiding the web] makes development from ASP.NET Web Forms to ASP.NET MVC a natural progression.”
Work continued on IronRuby and Phil Haack released a working prototype that ran on top of ASP.NET MVC.

Microsoft’s ASP.NET MVC framework has seen 6 releases between December of ’07 and February of 2012, the latest of which being the ASP.NET MVC 4.0 Beta. The framework was designed to be lightweight, highly testable and integrated with existing ASP.NET features, including master pages, membership-based authentication and Session objects. One of the goals of ASP.NET MVC is to be open and it as well as the Razor view engine and the Web API would later be released under Apache License 2.0 in March 2012.

Microsoft has continued to embrace JavaScript and now HTML5 with the release of Windows 8 and the WinRT API, which brings JavaScript execution as close to the kernel as compiled code such as C# and the .NET framework.

…and that brings us to the present day. Scott Guthrie remains an employee of Microsoft, although Brad Abrams, Joe Stagner and Phil Haack have left for greener pastures. I had never dug so deep into the history of ASP and those who brought us Web Forms and ASP.NET MVC. Hopefully, if you read any amount of this, you found it as interesting as I did collecting this information.

  1. Leave a comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: