I recently had a lively discussion with a colleague over what is better Microsoft MVC or WebForms. My friend had stated he liked MVC because it kept his code organized and clean. He also stated that he has seen many WebForm projects that was just a mess of spaghetti like code. My response was simple; It is all about developer discipline. If the coder is well disciplined and refactored their work rather than just keep stacking on band aides and fixes, the code would be clean and organized. I think it was said well “It is the latest craze!”.
I find that MVC projects are often 3 times the number of files and code. The MVC projects can be a maintenance nightmare just because of the bloated file structure. I have actually witnessed a developer getting lost in their own code when developed in MVC ( no it was not me ).
I think it would be interesting to go head to head on a developer challenge. I would write the same project in WebForms using libraries, classes and user controls while my friend wrote his in MVC. At then end evaluate who developed the code faster, cleaner and more maintainable.
I am not totally against the idea of MVC projects. They have their place with frameworks such as Ruby on Rails and PHP. I also believe MVC is a good choice for smaller and tightly focused projects. I have done MVC projects and see why some may choose the route.
I find building larger projects with custom user controls, my own business layer libraries and my custom database routines is faster, cleaner and more efficient all around. Microsoft has given developers all the options required ( masterPages, Custom Controls, User Controls, Class Libraries, WebForms ) to get the job done cleanly, effectively and more organized without the use of the MVC framework.
What do you prefer and why? I am interested in learning from you.