Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
To understand the distinctive aspects and design goals of ASP.NET MVC, it's worth considering the history of web development so far—brief though it may be. Over the years, Microsoft's web development platforms have demonstrated increasing power, and unfortunately, increasing complexity. As shown in Table 1-1, each new platform tackled the specific shortcomings of its predecessor.
| Period | Technology | Strengths | Weaknesses |
|---|---|---|---|
| Jurassic | Common Gateway Interface (CGI)[] | Simple
Flexible Only option at the time | Runs outside the web server, so is resource-intensive (spawns a separate operating system process per request) Low-level |
| Bronze age | Microsoft Internet Database Connector (IDC) | Runs inside web server | Just a wrapper for SQL queries and templates for formatting result sets |
| 1996 | Active Server Pages (ASP) | General purpose | Interpreted at runtime Encourages "spaghetti code" |
| 2002/03 | ASP.NET Web Forms 1.0/1.1 | Compiled
"Stateful" UI Vast infrastructure Encourages object-oriented programming | Heavy on bandwidth
Ugly HTML Untestable |
| 2005 | ASP.NET Web Forms 2.0 | ||
| 2007 | ASP.NET AJAX | ||
| 2008 | ASP.NET Web Forms 3.5 | ||
| 2009 | ASP.NET MVC 1.0 | ||
| 2010 | ASP.NET MVC 2.0 ASP.NET Web Forms 4.0 | ||
| 2011 | ASP.NET MVC 3.0 | ||
| [] | |||
[] CGI is a standard means of connecting a web server to an arbitrary executable program that returns dynamic content. The specification is maintained by the National Center for Supercomputing Applications (NCSA).