Thanks to everyone who attended my session on Web Forms Vs. MVC, and special thanks to everyone who took time to give me feedback via the evaluation forms.
Thought I’d take a second and share the results here.
Overall everyone seems to have liked the session, and the criticisms that were offered were all fair and accurate.
In a nutshell the criticisms seemed to be:
- Too much info for the time allotted
- Had to rush as a result
- Spent too much time on Web Forms (many in audience were well versed in Web Forms)
A couple of folks had hoped the session would be less of an intro, but acknowledged that it was listed as a beginner session, and that I warned everyone before the talk that it was geared towards beginners.
You always walk a fine line with beginner sessions. Beginners and intermediate/advanced users need very different sessions. It’s not easy to make one session appeal to both groups.
I decided to err to the side of the beginner. Code Camps tend to have primarily sessions for intermediate and advanced developers since those sessions are the most fun to do if you are intermediate or advanced yourself. This can leave newbies feeling left out.
I don’t have any data on the experience levels of each person, but I have the feeling that most were at least familiar with Web Forms. If I had known when preparing the session what the mix of skillsets would be, I could have tweaked the session better.
That would also have allowed me to get farther with the MVC app I wrote for the demo.
I have done variations on this talk several times and have attended talks given by others, including the Web Camp hosted at the Microsoft Offices in Alpharetta a couple of months back.
So far I have yet to give or see a presentation that compared MVC and Web Forms that didn’t result in the Web Forms users shaking their heads at MVC. In the time you have for a demo, Web Forms looks really, really good. Once the audience sees you drag and drop a grid onto the screen and get paging/sorting/in-place-editing essentially for free, they have to question why you would choose anything else. They keep asking it as they watch you implement paging and sorting in the MVC app. IF you have time.
So why would I ever recommend MVC?
Again, I would love to give hard data on this, but I haven’t implemented the same large scale web apps in MVC and Web Forms. That means what I’m about to say is more from my gut than scientific data…
If we were to begin parallel projects in MVC and Web Forms of more than trivial nature, I suspect that we would reach the 80% complete point far, far faster in Web Forms. This is where I think the switch in which is more productive would occur.
In Web Forms you can jumpstart yourself a long, long way with controls. Bada-boom-bada-bing lookie what I built.
In MVC you pretty well have to build everything from scratch each step of the way.
To me that means I would expect the progress graph to look something like this:
Remember when I said this isn’t from data? Well it still isn’t. This is just my best guess based on gut feel.
My reasoning here is that you can drag/drop/bind your way to the 80% point very, very quickly with Web Forms. That gives you the initial spike.
With MVC you are pretty slow and steady.
The last 20% is likely to be very detailed work. You could easily get stuck if you relied on controls and those controls don’t do what you need. With MVC, you are doing everything yourself, so you should be more flexible in your response to those detailed tasks.
If you have spent the last 5 years working with Web Forms, you would likely NOT experience the same plateau. You KNOW the pain points and how to work with them.
If you are building an internal app that doesn’t live or die by the UI, you might be satisfied with the 80 – 85% level. That means you are done and done quickly. Great!
If you are trying to compete on the internet with EVERY OTHER WEBSITE, then you need to get as close to 100% as you can because other people are there already. Your customers don’t care how productive you were. They want the best experience. Your competitors are a short URL away.
Again, if you are highly experienced with Web Forms you can work around most of problems, ESPECIALLY with the new bits in 4.0 like routing and ListView.
It is difficult to say for sure that MVC would be more productive over the long-haul on a real-world, large-scale project, but it is SUPER easy to say that Web Forms is ABSOLUTELY the best choice for a quick demo…