Sheldmandu wrote:The move to MVC certainly makes sense for the front-end at some stage as MVC is very good for generating highly controlled mark-up which is good for SEO. However the back-end needs more richness in functionality so moving that doesn't make a great deal of sense, as it's a lot of effort for very little gain.
As an avid ASP.NET MVC developer who has released 20+ websites based on the framework I can personally say that this makes the most sense considering all of the complications which would come from a switch.
If nopCommerce were to to completely change to ASP.NET MVC almost all of the existing code would become useless; everything but some of the core business logic would be non-operational on the MVC platform because MVC does not support WebControls or anything resembling them. What MVC does support, as others have said, is a strong separation of concerns and extensive, fine-grain control over every bit of output generated by the website.
In my opinion, one of the greatest benefits of gained from using the MVC framework is the unparalleled ease it gives developers in implementing beautiful client-side features which leverage libraries such as jQuery or MooTools. As we all know, client-side functionality is where user experience matters most in this new fancy new internet of ours. ASP.NET MVC truly makes client-side interaction uncomplicated for the first time in ASP.NET history.
I'm sure all of us will agree that with most websites, there is more code and functionality defined in the admin area than there is in the front-facing pages- and from what I've seen, nopCommerce is no exception. The admin area isn't for the general public and as such does not put forth as many presentational demands as the front-facing pages do. For that reason,
I think it makes the most sense for the admin area to stay the way it is (at least for now) while front-end of nopCommerce gets migrated to the ASP.NET MVC framework. This solution would be very appealing because it would allow for the brunt of nopCommerce's code to continue to function exactly the way it is (in the admin area), while only the front-end would need an overhaul. With such a change both customers and developers would be able enjoy the elegance and speed that is MVC where it really counts: on the pages
visitors see.
There few compelling reasons to rebuild the entire nopCommerce project using the MVC framework because doing so would essentially be equivalent to to throwing out about 60-75%~ of the work already done and starting over. Although the front-end could almost certainly benefit from a migration to the MVC framework, I would be surprised if the admin area gained very much at all. It simply doesn't make sense to throw out all the functional code that makes nopCommerce work, but that doesn't mean the project should stick with just Webforms.
nopCommerce would benefit from a mix of Webforms and MVC.For the community of nopCommerce developers, I don't think this switch would be too straining because many of the modules for nopCommerce do their heavy-lifting in the admin area and not the customer-facing front-end. Plugin developers could continue to develop things the way they have been in the admin area and for the front-end, through use of a quality pluggable architecture, it may be feasible (at least in some scenarios) to greatly minimize or even eliminate the need for plugin developers to mess with the MVC plumbing.
As for as the maturity of MVC as a platform: the MVC framework has come a long way in a relatively short while due to a very strong community of devoted users. MVC2 provides a exceptionally powerful and extensible engine for building rich, client-driven websites. The upcoming release of MVC3 appears equally impressive and it offers even more exciting options for developers working with MVC, but given the newness and somewhat incomplete nature of the Razor view engine, it doesn't seem like a good platform to invest in just yet. In my opinion, MVC2 using the standard webforms view engine would be an excellent candidate for an overhaul to the front-end of nopCommerce.
If nopCommerce is ever going to move to MVC, sooner is definitely better than later. nopCommerce has been in development for just a few years now and has already amassed hundreds of thousands of lines of code. Given this fact, the longer a switch to MVC is held-off, the greater the task of switching is going to be. If you're seriously considering a migration, don't wait too long, lest you risk having even more work end up in the recycle bin when the switch does happen.
TL;DR Keep the admin area the way it is. Convert the front-end to ASP.NET MVC.