ASP.NET MVC has become more and more popular. Why? The ordinary ASP.NET allows developers to abstract from many details like request/response headers (by wrapping everything in nice API), manual HTML coding (by using server-side controls), etc. Everything is really cool – we develop a Web site for seconds. But what about the maintainability of this site later? Customers always want more and more. Even after years they may ask you to implement a new feature for them. And then developers start to sink into the depth of their own code ocean. If we add the lack of good documentation, the entire situation becomes really bad.
MVC stands for Model-View-Controller. Martin Fowler has a great post on GUI architectures.
MVC adds something developers need – discipline! Discipline in writing and structuring code. After a product conforming to MVC is made, everyone who is familiar with this pattern can easily get into the source code. I am a strong follower of the principle convention over configuration and MVC complies with it. Not only separation of concerns, better testability, but it also brings easier maintainability.