While many Sitecore developers (or .NET developers for that matter) can see the advantages of using MVC over WebForms, I want to take a moment to step back and look at why it can be so difficult to make the transition to Sitecore MVC.
Let’s start with my situation as an example. I work for a small Sitecore partner that has a relatively small contingent of Sitecore developers. When we started with Sitecore, Sitecore MVC was not officially supported and there was very little information available on the subject. Another major factor was that we looked to demo sites provided by Sitecore for inspiration and as a tool to help learn the platform. Obviously the demo sites were not Sitecore MVC (Not to mention the training demo site built almost exclusively in XSLT at the time). For my organization there was no choice and we began working with WebForms and spent years building up a code base of functionality. Fast forward a couple years and we are still heavily invested in WebForms.
Why did I bore you with the story above? Because I think it’s a very common story in the Sitecore community and it applies to many developers and organizations!
Once you’re on the WebForms train it is very difficult to make the switch to MVC. I have personally spent a lot of free time learning about Sitecore MVC but it can be difficult to put that knowledge into practice.
Common issues for organizations when transitioning to Sitecore MVC:
- It can be extremely time consuming to convert existing Sitecore WebForms implementations to MVC (WebForms/MVC hybrid approach can help but still takes time and effort away from other work)
- Organizations will have varied experience among developers and some who are resistant to moving to Sitecore MVC
- Clients may not want a Sitecore MVC solution if they don’t have internal expertise
- It will likely take developers quite a bit longer to build their first Sitecore MVC solution if they are learning it on the job (Try selling that one to the boss haha)
- Possible issues when using 3rd party Sitecore modules (Most Sitecore supported modules now support MVC!)
However there are now tools out there that can help an organization move towards Sitecore MVC:
- Sitecore MVC demo sites!
- Launch Sitecore is a great example Sitecore solution and now has an MVC version available for download. This will help developers see how Sitecore MVC works and act as a reference when working on real projects.
- Sample Sitecore MVC is a great resource from Martina Welander that accompanies series of videos.
- Anyone know any other Sitecore MVC demo solutions?
- Developer accelerator tools such as BrainJocks SCORE and Keystone come with a price tag but can help an organization quickly build up a Sitecore MVC code base.
- The Sitecore community has A LOT more info out there about working with Sitecore MVC. You don’t have to feel alone any more!
- As an organization Sitecore has fully embraced MVC and has A LOT more documentation available on the Sitecore developer network and new documentation site!
Realistically there will be many organizations that never transition to Sitecore MVC and that is completely OK. There are lots of reasons why it may be difficult or impractical to convert an existing Sitecore solution to MVC or change the way an organization works with Sitecore.
I think it’s important that the Sitecore community takes a moment to understand that WebForms will continue to be a major part of the Sitecore platform moving forward even though many people (including me) have a strong preference towards MVC. Let’s just keep this in mind when we discuss issues, write blog posts, create Sitecore modules, etc.
Where is the best place to get more info about Sitecore MVC? Here is an unbelievable list of Sitecore MVC resources! → http://sitecore-community.github.io/docs/sitecore-mvc/
The real question we should be asking is why we actually want to convert a project from WebForms to MVC. Is this not like converting from C# to PHP? What is to be gained from this? Is MVC inherently better? Would any organisation spend money on this task? Is there something that can be done in MVC that can’t be done in WebForms?
Good points and I definitely agree that there can be little to no tangible benefits for a Sitecore client when looking at switching to MVC. I’m definitely thinking about this from a Sitecore partner point of view. Thanks for the feedback.