About XML Content Management System

ASP.NET XML Content Management SystemAn XML Content Management System written in C#/ASP.NET. It approaches content management with the underlying goals of simplicity and openness. It is ideally suited to small to medium website projects, personal portfolio and any kind of business websites. You can simply control your website look and content without any special knowledge in C# or ASP.NET and run the CMS on Mircosoft IIS, Apache on Nginx web servers. The CMS does not use the default .NET Controls and offers an enhanced performance using Html Outputs Compression, Html Comments removal and a powerful .NET Caching System.

A Bief History

ASP.NET XML Content Management SystemHaving more than 200 domain names, updating .NET assemblies, static contents, common graphics and plugins was a hard task. Because of this hard maintenance task, I coded the XML Content Management System to have the same .NET code running different on domain names at the same time.

I kept in minde the following goals :
A. Running the CMS on both Microsoft IIS and Common Linux webservers.
B. Running the CMS on Mono using Mono Fast CGI.
C. Sharing common images and Jquery plugins between all domains.
D. Using the same .NET assemblies for all domains.
E. Using a template engine that handles .NET Objects.
F. Using reusable HTML content like Google Analytics javascript.
F. Editing any domain content from a SSH console.

Server Requirements

ASP.NET XML Content Management SystemThe CMS runs on both Microsoft Windows and Linux environments. Depending on the web server you deploy it, please consider the following requirements :

Microsoft Windows requirements :


1. Microsoft IIS 6.0 or any higher version.
2. Microsoft .NET Framework 3.5 or any higher version.

Linux requirements :


1. Nginx, Apache or any Linux equivalent web server.
2. Mono FastCGI Server.

Deploy CMS Files

ASP.NET XML Content Management SystemThe Content Management System comes with few files because all website pages are defined dynamically in XML files. To deploy the CMS, copy the following files to your web server :

File nameFile typeTarget folder
Index.aspx ASP.NET Server Page ~/webserver-root/
Global.asax ASP.NET Server Application ~/webserver-root/
Web.config XML Configuration File ~/webserver-root/
NVelocity.dll Application extension ~/webserver-root/bin/
Framework.Core.dll Application extension ~/webserver-root/bin/
Framework.Web.Core.dll Application extension ~/webserver-root/bin/
Framework.TemplateEngine.dll Application extension ~/webserver-root/bin/
Framework.TemplateEngine.Interfaces.dll Application extension ~/webserver-root/bin/
Framework.XmlContentManagement.Services Application extension ~/webserver-root/bin/
Framework.Web.XmlContentManagement.dll Application extension ~/webserver-root/bin/

Create a domain

ASP.NET XML Content Management System ASP.NET XML Content Management SystemThe CMS supports running many domain names using the same .NET code from the same physical folder. Each domain definition has its own XML file. When the .NET application stats, it loads all the defined domains from a physical directoty. To set this path, please edit your Web.config file and update the XmlService.Configurations.Folder variable. Do not use physical path because whether you are using Microsoft Windows or Linux, the CMS will convert the virtual path to physical path for you.

ASP.NET XML Content Management System

Variable nameValueFile name
XmlService.Configurations.Folder~/configurations/Web.config

To add a new virtual domain to the CMS, you need to create an XML file with the following variables :

ASP.NET XML Content Management System

Xml ElementDescription.NET Type
DomainVirtual domain nameSystem.String
IsDefaultConfigurationSets the domain as the default oneXmlService
PagesFolderVirtual path for domain pagesSystem.String
PagesSectionsFolderVirtual path for domain pages sectionsSystem.String
HideQueryVariablesMay be used for URL rewrittingSystem.Boolean
PageIdQueryStringVariableQuery string variable to display page by its IdSystem.String
PageAliasQueryStringVariableQuery string variable to display page by its AliasSystem.String
BackLinksList of domain backlinksSystem.Collections.Generic.List
AdvertissementsList of domain advertissementsSystem.Collections.Generic.List

Create a Web Page

ASP.NET XML Content Management System ASP.NET XML Content Management SystemThe CMS uses a unique Active Server Page : Index.aspx. Basically, when the Index.aspx page is loaded, it looks for the current virtual configuration based on the HTTP Request domain name. Once a virtual configuration is found, the Index.aspx page will try to display the request page based on 2 Query String variables : PageId and PageAlias. If there's no variables, the CMS will try to display the current virtual configuration default page (if you there's any).

Variable nameDescription
PadeId Page Id - If there's one, the CMS will look for this page and display it.
PageAlias Page Alias - If there's one, the CMS will look for this page and display it.

ASP.NET XML Content Management SystemAll pages are virtual and defined into XML files. Each virtual page has its own XML definition file. The domain Pages XML files should be placed on the same folder. A dynamic page is a composite of PageSesctionReference. A PageSectionReference is a link to a PageSesction Item on the current domain name. A virtual page is defined as following :

ASP.NET XML Content Management System

Xml ElementDescription.NET Type
PageIdPage identifier. Should be unique on the same domainSystem.String
IsDefaultPageSets the current page as default one for current domainSystem.Boolean
OutputHtmlCompressionEnables or disables [ HTML compression ]System.Boolean
OutputHtmlCommentsRemovalEnables or disables [ HTML Comments removal ]System.Boolean
PageAliasPage alias. Should be unique on the same domainSystem.String
TitleSets the Page Title meta tag. Should be into a CDATA blockSystem.String
DescriptionPage description. Should be into a CDATA blockSystem.String
KeywordsPage keywords. Should be into a CDATA blockSystem.String
PageSectionsReferencesReference to a page section by PageSection.SectionIdSystem.Collections.Generic.List

Create Page Sections

ASP.NET XML Content Management System ASP.NET XML Content Management SystemLike it's the case of dynamic pages, the pages sections are virtual and defined into XML files. Each page section has its own XML definition file and could be used by any page of the current domain name. The domain Pages Sections XML files should be placed on the same folder. A page section is defined as following :

ASP.NET XML Content Management System

Xml ElementDescription.NET Type
SectionIdSection identifier. Should be unique on the same domainSystem.String
PageSectionType3 case sensitive values : Header, Body, All : Where outputs are displayed.System.Enum
DynamicSets the section as dynamic to be processed as an NVelocity template.System.Boolean
CommentsSection commentsSystem.String
IconSection iconSystem.String
ContentsSection Html contents or NVelocity template. Should be into a CDATA blocSystem.String
TitleSection titleSystem.String
InitializeItemsMay be used in NVelocity templates to display enrtiesSystem.Boolean
InitializeItemMay be used in NVelocity templates to display an enrtieSystem.Boolean
InitializeLastItemsMay be used in NVelocity templates to display last enrtiesSystem.Boolean
DebugMay be used in NVelocity templates to display debug outputsSystem.Boolean
InitializeBannersMay be used in NVelocity templates to initialize domain bannersSystem.Boolean
VariablesInternal section variablesSystem.Collections.Generic.List

.NET Projects Overview

ASP.NET XML Content Management System The Content Management System .NET projects are well-architectured with a strong C#/ASP.NET Object Oriented Programming model. Its C# code follows and respects the .NET/C# and ASP.NET good naming conventions.

ASP.NET XML Content Management System

.NET Projects Maintainability

Maintainability Index calculates an index value between 0 and 100 that represents the relative ease of maintaining the code. A high value means better maintainability. The Maintainability Index can be used to quickly identify trouble spots in your code. A green rating is between 20 and 100 and indicates that the code has good maintainability. A yellow rating is between 10 and 19 and indicates that the code is moderately maintainable. A red rating is a rating between 0 and 9 and indicates low maintainability. Each .NET project has a good Code Metrics results and a minimum of 80% Maintainability Index.

ASP.NET XML Content Management System

Author Information

ASP.NET XML Content Management SystemThe XML Content Management System developed and maintained by Badr CHOUFFAI and sold exclusively on codecanyon.net marketplace. Get your open source copy today...

Help & Support

ASP.NET XML Content Management SystemFor help or questions regarding the XML Content Management System, please feel free to contact me by email at chouffainet@gmail.com or visit my web page at www.badr-chouffai.com.