I tought about writing a post about why I prefer the MVC framework instead of the old .NET way, webforms, to build my webapplications. But today when I opened my google reader to check out the new posts, I saw this post by Rob Conery which I think has some very good arguments to why you should atleast try it out.
The most common arguments I hear from webform delevlopers is that the views will look uggly with inline scripting and that you have to do it all on your own. I dont realy agree with any of those arguments, but I can see why you would think that if you haven´t realy tried it out yet. I agree that if you have alot of if statements and other logic in your view then It will look uggly and be hard to read. But you have html helpers to solve this. The view´s should be simple and not contain any logic, only display the data that you need. To me this looks alot cleaner then a webforms application with a lot of logic in the code behind.
The other argument, that you don´t have any server controls and that you have to write it all for your self, is allso a bit missleading I think. You still have html helpers that works in a similar way to server controls. Yes, a server control can be more complex and "do more stuff", but 95% of the time you use a Repeater for instance, you use it only to display data from some kind of list. And why use a repeater when you have one in c# (or you´r language)? It´s called a "foreach". You are still in control of you´r own html, so you can easily structure it any way you want.
With the MVC framework you have alot more control of the acctuall output of you´r web application. And with todays applications that depend alot on javascript its alot easier when you have 100% control of you´r html. Very simple javascript tasks can easily become pretty complex in a webform application in my experience.
Another key thing in the MVC framework is the testability. Its alot better then the options we have to test a webforms application. Even if you dont write any tests (you should!), you can still write testable code pretty easy. And in my experience, testable code is often better code. You will automaticly write more loosly couppled applications when you think about testability. Its allways easier to test small methods then big once, and you dont want to test your DAL at the same time as your BLL. This will make you seperate those two.
Ofcourse webforms hasn´t been a bad way of developing web applications all the time. But it has a few years on it´s neck now, and I think it´s time for a change. The requierements for a good applications isn´t the same anymore, and in a few years they will be different then from today. If you work as a developer you can not be affraid of changes, it´s part of our jobs.