User:Malachi.b/N2 CMS

N2 is an open source content management system (CMS) platform for publishing content on the World Wide Web and intranets.

Concept
N2 is a programmer-centric approach to CMS. That is to say, much of the site configuration occurs by creating C# classes which map to the various type of content to be shown. An equally important and related idea is that while plenty of CMS solutions exist, very few play integrate easily into an existing ASP.NET site. N2 hopes to solve that, as it "doesn't mess with your user interface"

((Frankly, the vast majority of CMS systems take the approach that the CMS comes first, and all other potential site components (shopping carts, etc.) come second - plugins, if you will, to the core CMS. While not an unreasonable approach, many working with existing and/or highly dynamic websites simply do not have the option of yielding control this way. N2 shines in this area, tackling the issue head on - one may transparently install N2 right on top of one's existing web site with only minor configuration (namely configuring N2 to point to the start page) ))

Some fundamental concepts to understand with N2 are:


 * ContentItem - a C# class which is picked up by N2 and used as backing data for web pages
 * Template - an ASPX/ASCX which ContentItem(s) feed

There's a lot of bits and pieces to know, but these fundamental concepts are universally prevalent.

ContentItem
ContentItems come in many flavors, including:


 * page oriented
 * control oriented
 * pure content oriented

To use OOP lingo, as far as N2 is concerned, whatever custom ContentItem classes you make is the 'class' and the administration interface creates instances of these class, which N2 refers to as 'nodes'. These nodes are persisted within the database, and indeed are a focal point as that's the 'C' in CMS.

As is customary within CMS systems, nodes can be edited, published, rolled back and deleted.

Page
Something that's easy to miss but important to know is that certain ContentItems associate with specific ASPX templates via its TemplateUrl property. In this way, one instructs N2 to use the specified ASPX file whenever this type of content is published.

Pure Content
This is useful for content which doesn't need to have its own control or page per se, but would like to be referenced from an existing Page or Control node. One example might be on a Control node which represents an article, the Pure Content nodes would represent comments on the article - no comment needs its own page, but is rather referenced as a list of child items after the article.

Template
One does not navigate directly to a template. Instead, when page-oriented ContentItems are added into the system, each can be assigned a specific and unique URL. In this way, one ASPX Template can become multiple web pages.

Administration
Within the Administration console one will find a hierarchy of the ContentItem node tree. Be aware this frequently but not always maps to exact ASPX pages.

How to change the start page
In the web.config file, find the host element:

  

Once install completes, you should have a Root Node and a Start Node.