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.
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.
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.
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”.
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.
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.”
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.
…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.