About a year ago, I started to evaluate ASP.Net MVC, but decided to put it aside because it was still in heavy-duty development. With the official release a couple of weeks ago, I decided to check it out once again.
MVC has a lot of things to offer, but there are a few critical things that we couldn’t overlook. We have a few web applications that all have quite a lot invested in server controls (both third-party and developed in-house).
In ASP.Net WebForms, for something as simple as a GridView with a ObjectDataSource, there is a lot handled behind the scenes. The time it would take to mimic the necessary behavior in MVC appears to be unmanageable at this point. I’ve done my share of HTML, and am comfortable doing it again, but it certainly feels like a step backward. We would have to write a lot of HTML and JavaScript (with the help of jQuery) to accomplish what takes just a few lines with server controls.
Another issue that we cannot overcome is the fact that WebParts are basically server controls and are mostly incompatible with MVC. One of our applications is highly dependent on WebParts. Again, there is a lot of work handled for us by simply leveraging the WebPartManager.
So, it was easy to rule MVC out in regard to existing applications. But, what about something new? Well, for all the same reasons we’ve decided to stick with ASP.Net WebForms. Basically, we have invested a lot in server controls, like menus, tree views, grid views, and in-house controls to promote common look and feel between our applications. Moving to MVC would be no small task.
There is one place that I am considering MVC within our existing framework. I’m wondering if we can leverage MVC to better handle our Ajax needs. In a couple of occasions, we are using WebForms with no markup, that simply return xml data. We also use Page Methods in a couple of places. It seems like MVC could handle these types of requests more cleanly.
Perhaps in a few months the community will develop some slick MVC controls that save a lot of work. Unfortunately, I don’t have the time (money) to build these controls myself.
Anyway, if I am totally off the mark, please someone pick me up and set me straight.