CarrotCake is an Open Source CMS (content management system) built on C# ASP.Net to leverage jQuery UI and TinyMCE. Designed for ease of use for editing pages & incorporating of modules/custom code. This CMS is built on ASP.Net 3.5 WebForms, SQL Membership Provider, LINQ to SQL, and MSSQL Server.

cms-advanced.png The goal of this CMS is to provide a lightweight platform where modules can be added to a page without having to do anything other than build user controls and adding an entry to a control list. There are some interfaces for hooking the CMS to have data injected at runtime. Examples of how one might create a widget can be found in the solution.

cms-admin.png We wanted to make it easy to create new templates, all you have to do is take a standard HTML+CSS template, have it inherit from the core content page class, swap out key areas with the CMS's custom controls, save the file as an ASPX, and add to the list of skins. Examples of such templates can be found in the project which should serve as guide to create your own.

Once widgets (aka your user controls with your custom code) have been added to the widget list, engage the advanced edit and get a WYSIWYG editor and simply drop the widget item into a placeholder. The advanced edit UI provides a floating toolbar that can be minimized (using the - icon) or scooted to the left or right of the browser (using the left or right arrows), to better allow access to the hot spots.

Content areas are editable by way of a WYSIWYG editor (powered by TinyMCE), and will allow you to format your text without having to know much (or any) actual HTML programming.

The edit interface has so far been tested in IE 8-9, Firefox 3.6-16.0, and Chrome 13-26, all with Windows 7 x64. Other browsers/OS are likely supported, but are as yet untested.

Below is a slide showing some of the key screens in CarrotCakeCMS.

The CMS has been tested with portions of LinqCommerce which is a popular open source e-commerce platform intended for use with SiteFinity. This platform uses Telerik controls which have not yet shown any issues when used in CarrotCake CMS. This e-commerce platform does require some refactoring to the places where default values are provided in lieu of querystring parameters and to the Profile object, but nothing need be changed in the core. It is suggested to create a usercontrol that includes the required <asp:ScriptManager /> control and embed this usercontrol in your CarrotCake CMS theme file as the very first thing after the open form tag.

Current version (2011-Present)