Click here to Skip to main content
Licence CPOL
First Posted 26 Nov 2005
Views 74,383
Downloads 2,430
Bookmarked 67 times

SharpCMS, an Open Source portal server built on ASP.NET 2.0

By | 26 Nov 2005 | Article
A CMS built using WebParts and MasterPages.
 
Part of The SQL Zone sponsored by
See Also

Sample Image - SharpCMS.png

SharpCMS

For quite some time now, I have been investing time in ASP.NET 2.0. Because there is no better way to study than to just experience the product by using it thoroughly, I decided to build a portal server application using the new WebPart framework and MasterPages. My goal was to build an application which I can use to host my new-found home on the web, www.dive-in-it.nl, and to be able to use skins extensively on this site. Why skins? Mainly because my HTML skills are lacking so to speak. I create horrendous looking websites. Using skinning, I can create the content and let somebody else worry about making it look nice! The result? SharpCMS! (Until someone thinks of a cooler name maybe...)

What is this SharpCMS then? It is a portal server application built in ASP.NET 2.0, a bit like DotNetNuke. Not feature-complete yet, but a nice start has been made. Some of the current features include:

  • Skinning of pages and modules (WebParts), using MasterPages and UserControls
  • Custom rendering for the popup menus found on a WebPart
  • Dynamic creation of portals and sub portals, pages, and of course, WebParts
  • Security, who can access portal / view page, etc... (almost entirely done)
  • Custom providers for the provider model to, for instance, provide default user accounts for new portals
  • URL rewriting to make each portal searchable by search engines
  • A data access layer which gracefully handles nullable types and other conversions
  • Database storage for resource files

Because of the new features found in ASP.NET 2.0, all kinds of nifty features are easily added, such as client-side drag and drop for the WebParts (which also works with skinned WebParts!). You can easily use any server control as a WebPart. The Login module is an example of this; it uses a Login control.

I am releasing this project as Open Source (duh), and after some research, decided on the new Microsoft licensing schema. I am really looking for others interested in investing a bit of time in this project; discussing architecture and such is really boring when talking to yourself the whole time!

In the mean time, you can download the alpha version of SharpCMS using the links found on the top of this page. This download provides a pretty primitive version; you will need to install the database using SQL scripts and such. In the future, I am planning to incorporate MSI installers. Also, this version is in mid-development, and I am not using any real versioning yet. So some namespaces and classes are there, but not doing anything yet. It does compile and run as expected on my machine using IIS as the host.

There have been many technical challenges presented by developing SharpCMS, which I am keen to share. Keep an eye on my homepage, which of course, doesn't have a nice skin either! I use it as a deployment testing ground, and in the future, maybe a home for SharpCMS. I wrote a separate article regarding some of the long nights which accompanied this application, for those interested in the technical side of this story... nah, that's probably none of you :)

Installation instructions

You require .NET 2.0 and SQL Server.

  1. Download the binaries.
  2. Deploy them to an IIS website or virtual directory.
  3. Go to the SharpCMS.Database directory, and from there, run all the 'runall.cmd' files in the following order:
    1. Create Scripts
    2. TextModule
    3. AnnouncementsModule
    4. Stored Procedures
    5. Fill Scripts
  4. Install all provider databases using the 'aspnet_regsql.exe' utility, or use the 'ProviderDatabases.cmd' command file.
  5. Modify the web.config file. Change the connection string for the SqlClient connection as you require.
  6. Make sure the account running ASP.NET has access to the database and access to the file system in the SharpCMS directory.
  7. If running on IIS:
    1. Go to the IIS settings panel for the website / virtual directory.
    2. Open the 'Home directory' tab.
    3. Select the 'Configuration' button.
    4. Map the '.res' file extension to 'aspnet_isapi.dll'.
    5. Make sure that the 'Check that file exists' setting is turned off.
  8. Ready to run! A new user account will be added for you by default. You can log in with the username 'Host', using the password 'pass@word1'.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

Wouter van Vugt

Web Developer
Code Counsel
Netherlands Netherlands

Member

Wouter van Vugt is a Microsoft MVP with Office Open XML technologies and an independent consultant focusing on creating Office Business Applications (OBAs) with SharePoint, the Office 2007 system and related .NET technologies. Wouter is a frequent contributor to developer community sites such as OpenXmlDeveloper.org and MSDN and has published several white papers and articles as well a book available on line titled Open XML: the markup explained. Wouter is the founder of Code-Counsel, a Dutch company focusing on delivering cutting-edge technical content through a variety of channels. You can find out more about Wouter by reading his blog and visiting the Code-Counsel Web site.


Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board. (secure sign-in)
 
Search this forum  
 FAQ
    Noise  Layout  Per page   
  Refresh
GeneralContent!!!!!!!!!!!! Pinmemberyg.rajesh4:41 14 Mar '09  
QuestionCMS project PinmemberAmir Mokarram6:22 7 May '07  
AnswerRe: CMS project PinmemberPrabhu Chakkaravarthy0:54 10 Sep '07  
GeneralCant install batch files Pinmembersureshprogrammer1:17 28 Feb '07  
Generalrun error Pinmemberdino66623:16 13 Dec '06  
GeneralSQL? I don't setup PinmemberH.Hom21:31 14 Nov '06  
GeneralSystem.NullReferenceException Pinmembersunixnt17:46 13 Aug '06  
GeneralAccess Denied [modified] PinmemberdvptUml7:25 1 Jul '06  
GeneralParser Error Message: Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'. Pinmemberteixeira19859:14 30 Jun '06  
Hi,
 
I was trying the first time launch for this, and an error appeared "Parser Error Message: Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'."
Its strange bcause i confirm the existence of this stored procedure in the database stored procedure folder.
 
And the source error is:
Source Error:
 
Line 58:
Line 59:
Line 60:
Line 61:

Line 62:


 
System Resources are: Win2k Adv. Server 2000 + IIS 5.0
 
Any help provided will be appreciated,
 
Thanks,
 
Tiago Teixeira
GeneralRe: Parser Error Message: Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'. Pinmemberhquesada3:59 20 Oct '06  
GeneralI cant make DB PinmemberYoussef Saad21:11 18 Jun '06  
GeneralRe: I cant make DB PinmemberWouter van Vugt23:50 18 Jun '06  
GeneralGeart Work !! PinmemberWaleedS2:15 27 Feb '06  
GeneralRe: Geart Work !! PinmemberWaleedS2:19 27 Feb '06  
GeneralMany null reference errors PinmemberKeith Farmer23:13 27 Nov '05  
GeneralRe: Many null reference errors PinmemberWouter van Vugt8:32 28 Nov '05  
GeneralRe: Many null reference errors PinmemberKeith Farmer9:12 28 Nov '05  
GeneralRe: Many null reference errors PinmemberJeffrey Scott Flesher8:22 26 Jun '06  
GeneralRe: Many null reference errors PinmemberWouter van Vugt9:29 26 Jun '06  
GeneralForgotten the http PinmemberWouter van Vugt15:18 26 Nov '05  
GeneralRe: Forgotten the http PinmemberGary Thom0:46 27 Nov '05  
GeneralRe: Forgotten the http PinmemberWouter van Vugt1:13 27 Nov '05  

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Mobile
Web01 | 2.5.120529.1 | Last Updated 26 Nov 2005
Article Copyright 2005 by Wouter van Vugt
Everything else Copyright © CodeProject, 1999-2012
Terms of Use
Layout: fixed | fluid