views:

11258

answers:

21

I am in the process of collecting ideas for building an opensource CMS based on ASP.net framework.

I have choosen 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 off late CMS built on ASP.net framework seems to be cropping up. I would like to collect ideas/suggestion/expectations from an opensource 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 opensource 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 opensource CMS/BlogEngines that I am in the process of reviewing.

-Oxite (ASP.net MVC) : This is the new kid on the block

-Wordpress

-BlogEngine.net

-Umbraco

Some of the features that I can think of is noted below

  • Simplified content creation
  • Support Multiple content author
  • Metadata feature
  • Workflow engine
  • Simplified deployment
  • List based contents (sharepoint like)
  • Customizable URL's
  • Support content Caching
  • Roles (contenauthor, contentpublisher etc)
  • Support different types of content (like html, txt, document, image, videos)
  • Skinnable (support extensible themes)
  • Localization & Globalization
  • Unlimited nesting of categories
  • Readymade template for blog, forums,survey.
  • Good documentation

You can add your points or add some depth to any of the above feature.

+6  A: 

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.

urig
yeah. That's a good point. I am looking at MS Velocity as a caching product. This could be useful for distributed caching as well.
rajesh pillai
+4  A: 

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.

CJM
+20  A: 

N2 seems to be a nice project as well! There is an MVC example available.

Ola Eldøy
Version 2.0 is just released, and you have it available via MS Web installer too - http://www.microsoft.com/web/gallery/N2CMS.aspx
Dejan Milicic
+1  A: 

I think you should also look at BlogSvc. It's written in C# 3.5 with ASP.NET MVC and it's based on the Atom Publishing Protocol.

Michel
BlogSvc is now known as AtomSite. (Using same blogsvc URL though.)
Funka
+7  A: 

+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 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.

AJ
+3  A: 

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 ...

Falkayn
It seems oxite has been abandoned, with key programmers moving over to the Orchard CMS project.
EJB
+7  A: 

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:

  • Runtime CMS's
  • Deploytime CMS's
  • Hybrids

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, which is more of a CMS "middleware" that gives you the tools to build your own .NET based CMS.

Mystere Man
Good points! That link for Eucalypto doesn't work now, that project is now at: http://www.codeproject.com/KB/aspnet/eucalypto.aspx
DavGarcia
+9  A: 

BlogSvc 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.

  • Simplified content creation - check
  • Support Multiple content author - check
  • Metadata feature - check
  • Workflow engine - supports drafts and approvals
  • Simplified deployment - check w/ support for web platform installer
  • List based contents (sharepoint like)
  • Customizable URL's - check
  • Support content Caching - check
  • Roles (contentauthor, contentpublisher etc) - check
  • Support different types of content (like html, txt, document, image, videos) - check
  • Skinnable (support extensible themes) - check
  • Localization & Globalization - not yet supported
  • Unlimited nesting of categories - check
  • Readymade template for blog, forums,survey. - blog check, others work in progress
  • Good documentation - work in progress
A: 

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.

Nicholas
A: 

Extensability (sp?) 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.

borisCallens
+3  A: 

You might check out Mvc Cms. 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.

MvcCmsJon
+7  A: 

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

Their inheritance concept is pretty unique, you call it "Localization & Globalization" here.

Below is a list of features they listed on release note.

  • Role based user management
  • Unlimited users & websites
  • Custom Content type
  • Validation
  • Version control
  • Workflow
  • Layout & content template
  • Resource management
  • Plugin & module development
  • Relation management
  • Inheritance
  • WYSIWYG web form editor
  • Online intellisense template editor
  • Page visual designer
  • Theme
  • Menu builder API
  • Full text search
  • SEO
  • Schedule task
  • Web event
seems pretty interesting !!!
rajesh pillai
Looks like application framework with UI - not CMS. :/
dario-g
As a CMS it's totally unusable.
HeavyWave
It depends on what you are looking for! That is a real Enterprise level CMS with functions like content versioing, workflow, publishing and a lot more. Especially the Intellisence supported code editor is quiet an impressive invention for web developers. As stated on the Kooboo.com, it actually ask people NOT to use Kooboo unless you understand what Kooboo is offering. If you just want to a build a very quick personal blog site, you can choose providers like wordpress, blogspot or joomlaPeople has different needs and make different choice!
HeavyWave, Kooboo is designed for users who has a little experience on HTML and content management. It is not that user friendly for business users yet. It will take some times, but it seems like it is coming very soon.
Strange cause I found Kooboo just very easy to create quick personal sites.
Pickels
+3  A: 

Since the question was initially asked, MS has announced the Orchard Project, an ASP.NET MVC CMS, which intends to be more of a general-purpose CMS than the blog-centric Oxite project.

Jason
A: 

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.

Francesc
Francesc, I just browsed the Orchard code and its built on asp.net mvc...cheers :)
rajesh pillai
+1  A: 

For business purposes I like to have some enterprise features in a CMS like:

  • Friendly URLs
  • Multiple web sites with a single source deployment scenario
  • Unified administration of multiple sites hosted in the same environment (or not)
  • Easy way to develop scheduled services for the CMS
  • Multiple sites per single database scenario
Branislav Abadjimarinov
A: 

MvC CMS is definitely the best solution for your needs

Joshua
Do you have a link?
Robert Harvey
A: 

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...

Dave
A: 

Have you thought about how you are going to store the data?

XML/JSON in Database

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).

Text Nodes in Database

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).

Your Thoughts

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.

Cymen
A: 

You can add Azure, it would be delicious

FreeVice
A: 

Market needs to model solutions, such as hairdressing or dentistry

FreeVice
Agreed, and that's where metadata modelling plays an important role.
rajesh pillai
+2  A: 

Composite C1 just went full open source from 4 years of closed source development. Very mature ASP.NET open source CMS.

Martin Ingvar Kofoed Jensen
It looks awesome, judging from the Codeplex page. I wonder, though, how well it supports ASP.NET MVC development.
Robert Harvey
The CMS handles the routing and templating, but other than that, it fully supports the MVC model. There is a "Hello world" MVC example here http://docs.composite.net/C1/ASP-NET/HelloWorldMVC2.aspx.
Martin Ingvar Kofoed Jensen