Web development is a common development scenario which
requires its own techniques and patterns. Since web development in many server
technologies is strongly correlated with some stuff, like web server properties
or client request details, then software developers had to find a way to reduce
these dependencies. Regarding the above introduction, you would know why?
The reason is the isolation. We have to reduce these
dependencies to improve the isolation level. So what was the solution? The
solution was the introduction of new development patterns including Model View
Controller (MVC). The most famous technology that is designed for MVC pattern
is Ruby on Rails and one of its amazing popularity reasons is from here.
This evolvement in web development technologies forced
Microsoft to think about an adaption of this pattern for its ASP.NET technology
and the result was the introduction of ASP.NET MVC framework.
So in a nutshell:
·
Unit testing is great (and in my opinion is a mandatory part of development
for today's software)!
·
Unit testing requires a high level of abstraction and isolation
between different units of the application.
·
Unit testing also requires that you reduce the dependencies
between your built-in platform objects to be able to create and raise them
independently.
·
Traditional ASP.NET web form applications had some strong
dependencies between some objects like HttpContext, HttpRequest and
HttpRequest.
·
Microsoft had to adapt MVC for its web development technology.
·
Microsoft had to reduce all those dependencies and improve the
isolation level.
·
So Microsoft had to build ASP.NET MVC pattern with new
considerations for isolation and abstraction.
So ASP.NET MVC framework comes with new designs for some
main ASP.NET classes like HttpContext, HttpResponse or HttpRequest and of
course, follows MVC pattern.