Click here to Skip to main content
Click here to Skip to main content
Go to top

Overcoming the Nightmare of Extending your CMS

, 15 Feb 2012
Content Management Systems include lots of features (blogs, news, permissions, versioning, etc.) that would be time consuming to recreate. This article demonstrates how Telerik has addressed this challenge with Sitefinity CMS.

Editorial Note

This article is in the Product Showcase section for our sponsors at CodeProject. These reviews are intended to provide you with information on products and services that we consider useful and of value to developers.

Content Management Systems (CMS) have become a critical tool for new web projects. A CMS provides lots of out-of-box features (blogs, ecommerce, search, events, forums, etc.) in a package that is easily managed by non-technical content authors. This allows web projects to quickly hit the ground running and prevents developers from reinventing the wheel for numerous common features.

However, each project will always have a handful of unique requirements not addressed by the CMS. Developers become responsible for extending the CMS to confront those missing capabilities. For many web projects, this is where everything goes downhill. Weeks later, you’re up to your eyeballs in someone else’s code and struggling to extend a system you didn’t design.

This Is A Big Problem

At Telerik, this challenge is a big concern for us. We have numerous partners who use Sitefinity CMS as the basis for their web projects. These projects required custom development on a fixed timeline. As a result, developers involved in these projects needed to become rapidly productive.

Sitefinity’s architecture was built to be very powerful and extensible. This means Sitefinity is provider based, contains LINQ support, a Fluent API, RESTful web services and numerous interfaces for implementing permissions, publishing, classifications, workflow and more.

However, this power created complexity for developers who were simply trying to add a small custom module (for example, a "Showcase gallery") to their web site. Learning how to implement the various interfaces required a lot of research. In the context of a small project, this consumed precious time.

To confront this challenge we needed to create an accessible tool that would enable customers to easily wield Sitefinity’s underlying power. In other words, we wanted to have our cake and eat it too.

The Cake Is Not A Lie

To overcome this challenge we talked with numerous customers to better understand the extensions being added to Sitefinity. From these conversations, the theme that quickly emerged was new content-types. All industries have data that is unique to their domain; theaters have movies, property managers have rentals, banks have loans, hotels have rooms, etc. These new content-types were the most common extensions developers are creating for their CMS.

We delivered our solution in Sitefinity 4.4; using a web-based "Module Builder" a developer can now rapidly create new content-types. This Module Builder will automatically generate the interfaces, API’s and widgets that previously needed to be created from scratch. However, these auto-generated modules are still extensible using .NET and Visual Studio.

This feature enables developers to rapidly prototype their Sitefinity extensions, while still having the freedom to fine-tune the functionality of their new module.

How It Works

  1. Create your new content type.

330062/image001.png

  1. Define the associated fields.

330062/image002.png

  1. Install your new module.

330062/image003.png

  1. Customize your administrative interfaces.

330062/image004.jpg

  1. Add a new content item.

330062/image005.png

  1. Display the content items on the web site.

330062/image006.jpg

  1. Use the API to create extensions.

330062/image007.jpg

Give It a Try

No CMS will ever be a perfect fit for all your web project’s requirements. Consequently, it’s important to find a CMS that gets you most of the way there, but then equips you with tools that empower you to confront the remaining challenges. With Sitefinity’s new Module Builder we’re helping customers rapidly confront their project’s unique challenges.

Give it a try with our downloadable trial or using our online sandboxes.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

Gabe Sumner

United States United States
No Biography provided

Comments and Discussions

 
General[My vote of 1] Misleading article PinmemberProGuru28-Feb-12 16:40 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web03 | 2.8.140905.1 | Last Updated 15 Feb 2012
Article Copyright 2012 by Gabe Sumner
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid