I am in the process of collecting ideas for building an open-source CMS based on the ASP.NET framework.
I have chosen ASP.NET MVC with jQuery as the tool to develop this.
I have made this as community wiki.
Background: Most of the good CMS that is available is built on PHP, though of late CMS built on ASP.net framework seems to be cropping up. I would like to collect ideas/suggestion/expectations from an open-source CMS system for ASP.net platform. I am looking for expectation from technology and features that you wish could find in a modern CMS and any other thoughts/ideas that comes to your mind.
Your input would be of great help in this direction.
Meanwhile I am also reviewing many open-source CMS system built on ASP.net as well as MS Office Sharepoint to get ideas and I would update my findings here for your reference.
The following are some of the open-source CMS/BlogEngines that I am in the process of reviewing.
- Orchard (ASP.net MVC) : This is the new kid on the block [1]
- Oxite (ASP.net MVC) : This seems to be replaced by Orchard [2]
- Wordpress [3]
- BlogEngine.net [4]
- Umbraco [5]
Some of the features that I can think of are noted below
You can add your points or add some depth to any of the above features.
I think the new released Kooboo CMS probably does everything you mentioned here. There are many nice comments about Kooboo CMS on web as well, even from the famouse DNN forum.
url: kooboo.com [1]
Their inheritance concept is pretty unique, you call it "Localization & Globalization" here.
Below is a list of features they listed on release note.
BlogSvc [1] mentioned above is now called AtomSite. We're making some good progress and hope to eventually mirror the success of WordPress. AtomSite started with a strong foundation on Atom Publishing Protocol which is extremely extensible.
+1 for "Simplified deployment"
I just went through the process of comparing several open source CMS systems with the single most important criteria being that it can be deployed in a medium trust hosting environment. I wanted more than anything for my choice to be based on ASP.net, but in the end, the PHP based ModX CMS [1] took the prize.
My second requirement was an easy to use template architecture that allowed me to quickly integrate my CSS based layouts.
My third requirement was an API that was easy to work with and well documented. For instance, I needed a way to allow the content authors to create news articles and mark them for display on the homepage. The homepage would display a summary and link to the full article.
[1] http://www.modxcms.com/Composite C1 [1] just went full open source from 4 years of closed source development. Very mature ASP.NET open source CMS.
[1] http://compositec1.codeplex.com/Powerful and at the same time manageable output caching.
Having used a CMS written in ASP 3.0 as the basis for a commercial airliner's website, I strongly felt the need for an efficient and "finely tunable" cache mechanism. A mechanism that will ease the burden of serving a large number of pages in a short period of time while allowing me to keep specific parts of the content dynamic.
When planning a CMS, the first thing you have to think about is what KIND of CMS it will be. CMS's generally have one of several types:
A runtime CMS is like the *Nuke's, where html is generated on the fly when a user accesses the web pages.
Deploytime CMS's are CMS's that generate static pages at deploytime. Dynamic pages can be generated, but they're treated like static pages by the CMS. A good example of Deploytime is (was) the now defunct Serena Collage.
Hybrids are systems that generate static pages, but also provide a runtime model as well.
Each has their advantages. Runtime systems require constant database access, and generally require a pretty beefy database. Deploytime systems generally only require the database for deployment and the actual management of the content. When a user goes to the website, no data access (other than if you've written pages that access a database) is required.
You might also want to look into Eucalypto [1], which is more of a CMS "middleware" that gives you the tools to build your own .NET based CMS.
[1] http://www.codeproject.com/KB/aspnet/eucalypto.aspxSince the question was initially asked, MS has announced the Orchard Project [1], an ASP.NET MVC CMS, which intends to be more of a general-purpose CMS than the blog-centric Oxite project.
[1] http://www.orchardproject.net/To be honest, some of the more well-known non-dotnet CMSs are great, but I'd be happy to a see .net equivalent (to compete with DotNetNuke).
When I want an off-the shelf product, I'll stick with Joomla or Drupal. But not being a PHP developer, my desire for a .Net equivalent is so I can do my own development. Thus my suggestion is - make it extensible with a clear and well documented API.
Can you contribute to Oxite? I'd rather see that get up as a fully-functional CMS than another not really finished OS competitor appear in the ASP.NET MVC space ...
You might check out Mvc Cms [1]. It had its first release today at mvccms.codeplex.com. It is a barebones cms at this point but does seo and publishing better than many you listed.
[1] http://www.mvccms.com/Here are some related links others might find helpful
A Quick Review of the 7 Best ASP.NET Content Management Systems 06/18/2010 http://webmasterformat.com/blog/top-asp-net-cmss
Orchard: Microsoft's open-source CMS platform is (re)born November 11, 2009 http://www.zdnet.com/blog/microsoft/orchard-microsofts-open-source-cms-platform-is-reborn/4506
Why You Should Pay Attention to the Development of Orchard CMS 04/14/2010 http://webmasterformat.com/tools/cms/orchard
I think you should also look at BlogSvc [1]. It's written in C# 3.5 with ASP.NET MVC and it's based on the Atom Publishing Protocol.
[1] http://www.codeplex.com/blogsvcExtensibility would be my main target.
I think what makes a product of this king big is its community/users. Having lots of plugins encourages this.
Furthermore it allows for contributors to easily step in, contribute a small idea and step out again. I imagine it to be hard to find long-term contributors but relatively easy to find many small contributors.
For business purposes I like to have some enterprise features in a CMS like:
REALLY good skinning ability, must be able to customie the look and feel completely - "My Web Pages Starter Kit" has a nice example of setting the layout in the skin file by implimenting a custom Templated Control. Makes it really easy to change the complete look and feel AND the structure of the HTML and plug in new themes.
Jason, I've just had a quick look at the Orchard Project site and I seems to be based on ASP.NET, but not ASP.NET MVC.
MvC CMS is definitely the best solution for your needs
I am preparing a new version of my CMS that will be in .NET MVC, using jQuery ajax app in the admin... still making some tweaks to it, but it's almost ready for release. Here is a blog post [1]...
[1] http://davidpirek.com/blog.aspx?n=ASP.NET-MVC-CMS%3a-the-new-version-of-my-ASP.NET-CMS-is-in-MVCHave you thought about how you are going to store the data?
It looks like Umbarco uses the database rows for meta data and stores the actual content in an XML/text/varchar(max) column. So for the data storage side, adding another text node adds another entry to the XML file instead of altering the database structure.
I could see doing the same thing but with JSON instead of XML as using XSLT to transform XML to HTML doesn't quite fit into MVC approach as far as I can tell (haven't spent a lot of time thinking about it).
Another way to handle arbitrary number of text areas is to put them in their own table and give them an ordinal/tag to identify them. Then getting the data becomes either a separate query to get N rows from this table or a JOIN in which some of the data is repeated N times (for each row in the table).
If you've thought about this too, please post. It would be excellent if there was a group focused on the data storage for Content Management Systems independent of implementation details like programming language and framework.
You can add Azure, it would be delicious
Market needs to model solutions, such as hairdressing or dentistry
I know Atomic CMS http://www.atomiccms.com/