A while back now I had a friendly debate with a colleague. It began innocently in a pub on a Friday night and it was Web Forms vrs MVC in the DotNet framework. I was anti-MVC for various reasons and in some sense I could still make an argument against MVC. We escalated our debate to a more public forum where we took the topic to the masses and presented our two sides. We created the exact same projects in our chosen DotNet platforms ( me in Web Forms and he was in MVC ) and we presented the projects. We talked about what we thought were the plus sides of what we chose and why. Before the debate I posted a question on LinkedIn for feedback and the feedback seemed positive for Web Forms. At the end of the debate, we asked our audience to make a choice based on their experience and what they had seen and Web Forms won.
Here is my original post: link
Now; I have recently switched companies ( 3ish months ago ) and I am now working as a MVC Developer converting a windows application to SaaS ( Software as a Service ). I am doing everything I love. Research and Development, Web Development, Software Development and much more. Now MVC Developer though? Yes, I have joined the dark side of DotNet and I love it. MVC development has its place and I see it very clearly.
Some of the benefits are:
- More modularized which makes it easier for development teams to work together.
- Far easier to implement jQuery AJAX ( I do not like the built in Ajax Forms )
- Easier to implement a web design from a web design company
- Easier to divide work between modules, front-end and back-end.
- Easier to adapt to existing libraries when migrating to it
- Routes are more natural
- When you know MVC, you will know HTML, jQuery, middle tier development and back end development
There are far more benefits and I could keep going…
Now that being said; I can list more confidently the issues I have with MVC:
- Creates more files and lines of code
- Creates more layers than an onion
- New developers can easily get lost in the code
- More difficult for setting up on a web server
- Development is a touch slower
- Not great for small projects
With all that being said; I love MVC. I would not argue against it even though I could. I love web forms, but I would rather be doing MVC now.