Introduction
This ASP.NET user control allows you to embed a very useful wiki directly into your already existing ASP.NET website.
The Wiki Control can be downloaded from here:
http://wikicontrol.codeplex.com/
The page you are reading is currently part of a wiki instance using this control. Version history in this case is not visible, but see My Favourite Techniques page to see what it looks like with this option enabled. It is up to you whether you have this on or not.
What you can't see (without being logged in) is the edit view - which looks like this:

One big advantage is the use of Markdown to edit each version of the page. It is the same technology used on www.stackoverflow.com for adding content.
To see what markdown is like to play with, head to the wmd demo page.
The Markdown syntax you can use can be found here.
Just like other wiki's, links that take you to another site automatically have an out arrow image (
) added beside them - as opposed to a link to another page in the wiki such as to Test Page (feel free to click this directly - you do not need to open this in a new window).
Creating a new page in the wiki is as easy as enclosing the new page name in double square brackets (like [[Test Page]] for the one above), and then clicking on the generated link to give the new page some content.
Motivation
There were many reasons for me wanting to create this control for use with my BlogEngine.NET instance, they were:
- Wanting to have version history of page edits (for safe keeping).
- Wanting to make use of Markdown syntax instead of using the slightly clunky inbuilt TinyMCE editor of BlogEngine.NET.
- Combining a set of related pages easily within the same wiki.
- Quick and easy creation and editing of pages. I eventually want to use this control to keep track of development notes.
- I wanted to have a wiki inbuilt and integrated within my website as a user control, not as a separate website such as ScrewTurn Wiki.
Side benefits are:
- Supports multiple authors - including optimistic concurrency checking.
- Display of when the page was last updated (and who by).
- A generic control that will work on any ASP.NET website, not just BlogEngine.NET.
Technology
The user control is made up of the following:
- Stack Overflow's branch of the WMD editor
- MarkdownSharp (a C# Markdown processor)
- .NET 3.5 (BlogEngine.NET runs on 2.0 out of the box, the web.config needs to be updated to support this)
- Linq To SQL (yes you will need to have this running on top of a MSSQL database)
- ASP.NET AJAX
Creditation
Thankyou to the creators of the WMD editor and MarkdownSharp that provide the great Markdown functionality.
The control is free, and open source under the MIT license. I hope you also see the benefits!
Installation
Please refer to the following ASP.NET Wiki Control Installation Instructions for a guide on how to install the control.