[adrotate banner=”16″]

Utilize, Learn & Contribute to an Open Source, Microsoft .NET based Content Management System

My justification for the project is primarily to learn, and at the same time investigate ways to use the CMS to better manage my expanding list of websites and content.  I have used a lot of Open Source software and felt that it would be a good time to give back to the community and contribute to an Open Source project.

Some of the personal self-improvement goals I had in mind

  • Become more proficient in the latest Microsoft .NET technologies, in particular ASP.NET MVC, LINQ data access, XSLT and Workflow Foundation.
  • Experience contributing to an Open Source Project.
  • Better understand content management systems.

The main factors used in making my final decision on which content management system to use

  • Microsoft .NET based, preferably MVC
  • Ideally using the .NET 4 Framework
  • Utilizing cutting edge technologies
  • A relatively active developer community
  • An impressive product, one that I’d be proud to be a part of and one I felt could grow to be one of the leading CMS’s

The list of content management systems that I considered

COMPOSITE C1 ended up being a relatively easy choice because it is one of the few .NET based content management systems written using the .NET 4 Framework, not to mention it is MVC and has a very impressive and flexible design. I was impressed with BlogEngine, however didn’t care to invest the time and effort into working with ASP.NET WebForms.  Orchard, Atomsite and N2 CMS were at the top of my list but they didn’t impress me enough to make up for the cutting edge technology in COMPOSITE C1.

Composite C1 CMS Demo Site

Composite C1 CMS Demo Site

The C1 also can be installed with a demo website, the Composite Demo Company, which I’ve already done and is shown.  Having a working site to learn from is really nice option to have.

The technologies utilized in COMPOSITE C1

The Microsoft .NET 4 Framework, ASP.NET 4 Controls, ASP.NET MVC, pure LINQ data access, Workflow Foundation, a pluggable architecture and a documented API.  Very Nice!!

COMPOSITE C1 as defined on the C1 home page

COMPOSITE C1 ALLOWS COMPANIES and organizations, individuals or communities of users to easily publish, manage and organize a wide variety of content on a website. With Composite C1 you have the freedom to choose and switch between a free open source licence or a paid subscription model. Composite C1 is:

  • A professional fully featured CMS
  • Simple to extend and customize
  • Based on the latest Microsoft technology
  • Developed by and for professional web developers
  • Succesfully powering numerous corporate web sites
  • Based on a developer model and licence options that prevents vendor lock-in and secures your independence
  • new 12/6/10 – Kudos to the C1 Team.  C1 works on Google Chrome now!

The Console for Composite C1 is Impressive

Looks more like a desktop application, here you can see it supports embedded C# functions!

Composite C1 Panel Embedded C#

Composite C1 Panel Embedded C#

This gives you an idea of the types of things the developer role in Composite C1 CMS can do.  Also note the Admin and Editor Roles.

Microsoft .NET 4 MVC CMS

Microsoft .NET 4 MVC CMS

And a built in image-editor…

Composite C1 CMS Panel

Composite C1 CMS Panel

And another impressive feature is the concept of packages that can be downloaded and installed from a package source.

Composite C1 CMS Packages

Composite C1 CMS Packages

As you can see the COMPOSITE C1 CMS is an impressive tool, plus it is one of the few that is using the latest and greatest technologies.  Most of the other .NET content management systems are on older versions of the .NET Framework and as of this writing none had any hard-set dates as to when they would be up to the latest version of the framework.

If you are a true-programmer, which I’m willing to bet that you are if you made it to the end of this article, and you love to learn new technologies then the COMPOSITE C1 is pretty much the only choice.

If your criteria doesn’t include “having fun learning new technologies” and “working with exceptionally talented developers” then I believe that COMPOSITE C1’s features alone put it in a short list of viable options.


DisplacedGuy (aka Rich)

16 Responses

    • Hello Chris,
      Thanks for taking the time to leave a comment.
      I have heard of Sitefinity but for some reason missed that one. I will definitely look at the 4.0 beta. As I mentioned my primary objectives are learning and finding a fun project to contribute so I have no problems starting with the beta. So far I’ve had good luck with C1, the installation went pretty smoothly but it’s still too early to tell for sure how things will go.

  1. What do you mean you dislike BlogEngine because its WebForms !? C1 is in no way MVC… yes, it has a MVC player that plugs in very nicely but C1 itself is very much based on WebForms.

  2. Hi Pauli,
    Maybe I overlooked something, but I haven’t looked at the C1 code in detail yet, I trusted what I read on the C1 site, that it was using MVC technology. If I find that I was wrong I’ll correct it. Thanks for taking the time to comment, hope to see you around again.

  3. On this page http://docs.composite.net/C1/ASP-NET.aspx you find it saying “C1 is powered by .NET 4 and support both ASP.NET Forms and MVC2”

    Most of the actual rendering is centered around XSLT and has not so much to do with WebForms or MVC. You’re able to insert Controls and UserControls into the XSLT markup which will be executed and the resulting html sent to the client. The MVC player (http://docs.composite.net/C1/ASP-NET/HelloWorldMVC2.aspx) is in this way class derived from Control that handles the logic of executing and rendering and is not a functionality of the Core in C1 itself.

    I find C1 to be a very interesting product, but as for everything it takes time to mature and it has many quirks that you can only get around by getting your hands dirty with the source code. I recommend that you follow the discussions on http://compositec1.codeplex.com/discussions if you want to become more involved with C1 🙂

    • I have to admit that it is complex code… but that was part of the motivating factor, the challenge and beautiful interface. I did open the source one time and had a hard time figuring it out, then noticed a namespaces in the XAML specific to C1, does that mean that it really isn’t truly open-source? Or is the namespace nothing more than mapping of xaml properties?

  4. Composite C1 pages can host functionality written using both classic ASP.NET Controls and using ASP.NET MVC 2 – when a page is rendered all rendering logic is handled by Composite C1 and C1 Function providers (examples are XSLT Functions MVC Functions etc.). Once template, content and functionality have been “merged”, the result is passed through as an ASP.NET Control tree. If ASP.NET Controls have been added to the page (done via C1 Functions like Composite.AspNet.LoadUserControl etc.) then those controls are part of the control tree and will execute in the good old ASP.NET Page / Control Life Cycle (OnLoad etc.).

    So – if you look at the code – Composite C1 pages are using the classic ASP.NET Control stuff to output pages, but it really wouldn’t need to, if supporting classic ASP.NET was unimportant. It would be pretty straight forward to stop using it without any loss of functionality, but support for ASP.NET Controls.

    So – Composite C1 is really only “using” one or the other to support it.

    But – we are pretty proud to be able to offer developers both options, and as other CMS’s rewrite their rendering engines to only support MVC and leave tons of developers behind, we will happily welcome all the developers which are in fact quite happy with the Control approach or perhaps want the flexibility of both 😉

Leave a Reply

Your email address will not be published. Required fields are marked *