Building a content management system with ASP.NET MVC

January 23, 2011

This is the introductory post in a series documenting my development and implementation of a content management system (CMS) built on the ASP.NET MVC platform.

Background

At my day job I administer and support a content management system that sucks. It’s not all the vendor’s fault. Like any “use this for all of your needs” software package, we’re buried by the weight of countless features we never wanted and will never use. On top of this, we’re stuck following the technology and architectural directions of the platform which limits our flexibility (and in most cases, is counter to our preferences).

What do I want? I just want a system that allows content editors to edit copy on the website without having to call up an expensive developer to edit the typo on the “about us” page. That’s all.

Feature-less, not feature-rich.

Restrictive, but based on our chosen restrictions, not a vendor’s.

Light-weight, clean, simple.

So I’m going to build one

I’m in over my head, I know. CMS platforms are hard. There’s a reason everyone hates them. But over the next several months, I’m going to build one, use it on my own website, and blog about various features and aspects of the system.

It won’t be for you. It will be based entirely on my decisions and direction, and from the requirements provided to me from my fictitious customer - who will also be played by me :).

High-level notes and requirements

I’m planning to support the following features (more to be determined later):

  • Multi-lingual support
  • Url aliasing
  • Can be used with Webforms (websites and web apps) or MVC

As I mentioned, this will be a restrictive system. This isn’t a “build your own website” platform that can be created and administered by an end user alone.

  • HTML, design, template creation, layout will all be done by the developer
  • Textual copy and light formatting (bold, italics, etc) will be managed by the end user

This means that end users will have the ability to edit textual content of existing CMS-based pages and to create new pages off existing templates.  New templates, new content areas, or new page layout/design will still require the involvement of a developer.

Posts

  1. this post
  2. Build your own CMS – an overview
  3. URL aliasing – serving data-driven pages with custom URLs
  4. Iteration 1: Data Model, Templates, Content Creation
blog comments powered by Disqus

About Kurt

I'm a senior consultant at Headspring in Austin, TX. My passion is creating web-based applications that are well crafted and solve real problems for real people. Want to know more? Check out my about page.

. @LipGlosserie setting up for Renegade Austin craft fair http://t.co/7X4WBVQb 15 hours ago