Don and I have been going back and forth on why MVC is so important to Web developers? I must admit I was missing the reasoning. I had been reviewing the demos by various alpha geeks, and I actually got bored with the whole thing, but that was fueled by my lack of understanding. I then came across a great blog post by Rick Strahl, who starts the MVC discussion by building up and subsequently dismantling Web Forms programming based on its weakness' and strengths. He then continues by showing how MVC helps solve the architectural issue.

The problem, in short, with ASP.NET is that it was built with a marked attempt to pull in Windows application developers. As a result mythical creatures sprung from Pandora's box in the form of ViewState, PostBack (event driven model) and the Visual Web Designer. Wonderful as they maybe, they inherently promoted the bloat of the entire ASP.NET paradigm. All these features did allow us to move swiftly into the web development world without really knowing html and simultaneously provided additional complexity to the entire Page execution cycle.

The other problem with ASP.NET is the lack of separation of concerns between business logic and the UI. While most of the work I have done has not included code in the ASPX file, it would be accurate to say that a large portion of the business logic sits in the code behind file, and this can lead to code that is exceptionally difficult to maintain.

It is these problems that MVC is designed to address, so when you watch the next demo and just before your eyes begin to glaze over with the question of why? Remember that ASP.NET does have some serious problems. To quote the Don "How is nice. Why is priceless!"

Technorati tags: