Content Management Systems for the .NET MVC framework

When it comes to creating a website, one of the most time-consuming parts can be creating and editing content, particularly for large websites. For example, let’s say I have a website with hundreds of pages of a specific type, all following a premade template design. But then I decide to change the template to display another picture or add a new section. I don’t want to have to go in by hand and change all of those templates to match the new design. Also, if I overlook a page when I’m editing, then my website’s design will be inconsistent. This is where a content management system, or CMS, comes in.

What exactly is a CMS? A CMS helps website developers add, update, and delete content without having to rewrite the HTML for the website. Content management systems also make it easier to make widespread changes to a website, since content is stored separately from the HTML used to display it. This makes it possible for the same HTML structure to be reused on different pages. Additionally, the same content can be used in multiple places on a website without having to re-enter it into the system. Content management systems are widely used in today’s websites, and they make it easy for those unfamiliar with HTML to easily create and modify the content on their websites.

But with all of the CMS options available, how do I decide which one to use for my website? That depends on whether you plan to use the MVC framework.

Why use an MVC framework? The MVC framework uses separation of concerns, which enables easy modification of the model, controller, or view of a website without affecting the other concerns. For example, by changing the view, I can change how the content is displayed without modifying the data storage structure (model) or controller logic at all.

One very popular CMS that uses the .NET MVC framework is DotNetNuke (DNN) (http://www.dnnsoftware.com/). DNN is a popular, open source CMS with a free version that has an extensive library of modules for website customization. However, DNN only has generic pages and does not allow for content types with specific fields.

Sitefinity (http://www.sitefinity.com/) is another popular CMS for working with the .NET MVC framework. Although there is a cost involved with using Sitefinity, even for a basic website, there are extensive features included in this price. However, synchronizing content between several servers is somewhat complicated. Since Sitefinity is not open source, it is harder to customize and extend. Additionally, the page fields on Sitefinity are complicated to use.

Umbraco (http://umbraco.com/) is also a popular open source CMS for the .NET MVC framework. It’s free to use and easily extendable. It also allows for many built-in and customized content types with specific fields. Additionally, content is easy to synchronize across multiple servers.

I like working with Umbraco because it allows me to easily add and update content. It’s easy to set up and use, and it’s easy to learn. If I want to create a website quickly with little effort, I can just use one of the starter kit websites available, or I can create a highly customized website with custom templates, document types, styles, and scripts. It enables both hand coding and WYSIWYG editing, and is flexible enough to create small one-page sites or gigantic sites with hundreds or thousands of pages.

Umbraco allows the flexibility to create websites on different platforms, with multilingual capabilities, and using different frameworks. It’s also used by many companies around the world, including Vogue, Heinz, SanDisk, and Microsoft.  I think it is an excellent choice to use as a content management system for many different types of websites.