I'm Keyvan Nayyeri, a 25 years old Ph.D. student at
the Computer Science department of
the University of Texas at San Antonio.
I'm also
a Software Architect and Developer and previously held a B.Sc.
degree in Applied Mathematics.
This is my blog where I publish content about various topics specifically Programming Languages and Compilers, Software
Engineering, and Programming.
Fahrenheit Marketing is a top-dog Austin Web Design firm offering a complete portfolio of online services.
Based on experience, I have realized that one of the most confusing points for newbie ASP.NET MVC developers even those who are completely new to ASP.NET world is the ambiguity of relationship between ASP.NET, ASP.NET WebForms, and ASP.NET MVC. In my opinion this is a vital part in the learning process of ASP.NET and its derivations such as ASP.NET WebForms, ASP.NET MVC, and ASP.NET Dynamic Data.
Therefore, I want to write this post in order to clarify this point more and more. I know that there have been some other posts covering this topic even better than mine but this is worth repetition to spread the word. Besides, I’m going to publish another post about the learning process of ASP.NET MVC and this background information can help complementing it as well.
First of all, let me give a short historical background which can clarify the next coming paragraphs. I may publish a new posts series of sweet historical background on this topic in the future, but for now this is all I need here.
The original ASP.NET product was a part of the .NET Framework 1.0 released in 2002, and became richer in versions 1.1 and 2.0. In this while, Microsoft understood some facts about the product such as the weaknesses of this product and the new market requirements. In the newer versions they tried to resolve some minor problems with the ASP.NET, and adapt with new techniques and methods to some extent. However, some of the weaknesses were more fundamental than something that could be resolved in the same product with that infrastructure and there were also a huge wave of MVC pattern talks mainly posed by Ruby on Rails success.
Putting these things together, Microsoft came to the point to revisit its ASP.NET product stack in order to answer to all these things. Their answer was re-architecting the whole product in order to open new doors to future derivations of ASP.NET as new technologies. They started working on two products in this line including ASP.NET MVC and ASP.NET Dynamic Data.
At this point the new architecture of ASP.NET product includes some main portions including core ASP.NET API, ASP.NET AJAX, ASP.NET WebForms, ASP.NET MVC, and ASP.NET Dynamic Data that all share some commonalities. So you can understand that the original ASP.NET term no more refers to the same technology. Now you have to call that technology ASP.NET WebForms, and refer to the ASP.NET as the parent product included within the .NET Framework.
The following figure shows the schematic view of the new ASP.NET architecture. I got the figure from a PDC08 session.

This figure clarifies the distinction of these technologies and shows how they relate together. As you see, they’re sharing some parts in order to work and most of these shared portions are in the core infrastructure.
ASP.NET WebForms, ASP.NET MVC, and ASP.NET Dynamic Data as three web development technologies need to enable some features that are available in all similar technologies such as caching, authentication, and authorization. Since these features should be distributed in all the technologies, they are encapsulated in the core API. Each of the technologies applies such features in its core and adds its own implementation and features to offer a new technology appropriate for a business scenario.
As the last note, I hope that we all try to consider this new architecture and the abovementioned distinction in all our texts, articles, tutorials, and other materials. These days the term ASP.NET is very general, and covers a wider range of technologies, so it should not be used interchangeably with ASP.NET WebForms and/or ASP.NET MVC.
Fahrenheit Marketing is your resource for Search Engine Optimization in Austin.
Marwan
Feb 25, 2009 7:01 PM
#
I agree with you
I think that the ASP.NET MVC is a new language(or environment to be specific) for developing web applications under the .NET framework, but I don't think the MVC Framework came out because of the failur of Webforms because webforms are still fully supported by Mircrosoft and there are no signs of failure, as I think at least.
Dew Drop - February 26, 2009 | Alvin Ashcraft's Morning Dew
Feb 26, 2009 9:01 AM
#
Pingback from Dew Drop - February 26, 2009 | Alvin Ashcraft's Morning Dew
New ASP.NET Architecture : Keyvan Nayyeri
Feb 26, 2009 9:36 AM
#
Thank you for submitting this cool story - Trackback from DotNetShoutout
Peter Nelson
Feb 26, 2009 9:42 AM
#
As an ASP.NET newbie (with 15 years of C++/Windows experience) what I PERSONALLY find most confusing is the apparent lack of agreed-on best-practice design patterns in ASP.NET. I recently posted a question about how to architect a simple problem involving displaying some controls in the .aspx page bound to some database tables and also accessing some other fields from the same database in the code-behind.
I posted my question to 3 discussion forums and got 7 suggestions. And they were ALL totally different. There was NO consensus about the basic architecture.
As an experienced software engineer I recognize that there are many ways to solve the same problem but USUALLY I've seen a consensus develop around 1 or 2 approaches as representing "best practice".
As a newbie it's important that I learn not just "what works" but what represents best practice because even if I can think of 7 ways of solving the same problem doesn't mean I have enough ASP.NET experience to know what all their different implications are for performance, extensibility, maintainability, security, ease-of-implementation, cross-platform issues, etc.
Keyvan Nayyeri
Feb 26, 2009 9:46 AM
#
@Peter
I agree with you.
To be honest, this has been one of the major issues with original ASP.NET WebForms and one of the reasons for adapting MVC pattern. I think that ASP.NET MVC resolves this problem to a great extent.
Jonathan Crossland
Feb 26, 2009 10:10 AM
#
Hi
A framework should enforce architectural guidance, and contain the logic for extensions, but not altering the established "knowledge". The MVC should make it very clear, what architectural guidance it is giving, or it will always be confusing to the user.
One cannot simply say here is a Framework, it is open, and sits on top of these other things, and here are some recipes for how to do x and y. It should be more closed than that, and considering its based on MVC, it should implement the "best" MVC it can within the environment, not expose "any" MVC you would like to configure, else I may as well use the .NET Framework directly and do my own thing.
The .NET Framework must remain open as it is infrastructural and widely generic, whereas the MVC should be narrowly concrete to offer any value.
When I hear people wondering how to use these tools, its usually as readers said, you can do it in too many ways.
But its not all the MVC Frameworks fault. .NET provides us with no tools to solidify our intent. We cannot declare a class as "this is how you use it" and thats the only way. We cannot put constraints on the design and implementations. We can only offer base classes, configuration and documentation. (thats another issue perhaps)
New ASP.NET Architecture
Feb 26, 2009 1:35 PM
#
You've been kicked (a good thing) - Trackback from DotNetKicks.com
ASP.NET MVC Archived Blog Posts, Page 1
Feb 27, 2009 1:49 AM
#
Pingback from ASP.NET MVC Archived Blog Posts, Page 1
ASP.NET MVC 1.0 Released
Mar 18, 2009 9:00 AM
#
Back to pre-historic days, we had to wait for Scott Guthrie to let us know what’s new with Microsoft development products, but nowadays days thank to economic crisis and loss of attention on download priorities on MSDN as well as a quick spying site called
Leave a Comment