VWD-CMS is an open source content management system for ASP.NET

Why Build Another CMS?

Most people ask me why I built VWD-CMS when there are so many systems available already. There are a number of reasons why I built VWD-CMS and continue to add new features:

  1. I wanted a CMS that I could use to build sites for my clients - in order to do this, I needed to know for sure that I could completely customize the system to their needs, and if any bugs showed up, I need to be able to fix them quickly. I know every line of code in this system so I can locate bugs quickly and usually have a fix in a few minutes.
  2. Creating a New ASPX Page - ASP.NET Web Form

    Creating a New ASPX Page - ASP.NET Web Form

    You can quickly create a new Web Form or any other type of document supported by Visual Web Developer. When creating web forms, you can choose from a list of Master Pages that have been configured to work with VWD-CMS. For all document types, you can select a template file to make starting your document easier and faster.

  3. Most CMS products available today end up restricting what a developer can do - this is unacceptable to me as I must be able to provide the features that my clients ask for. VWD-CMS does not force a developer to use the CMS - some pages in the site can be managed by the CMS, while others can be completely independent, or even run under a different CMS. Yes, you can run VWD-CMS on your site even if you already have another CMS installed.
  4. Building a flexible content management system is challenging...and I love a challenge. In order to be flexible, a CMS should allow you to design your own template/layout for your site - you should not be forced to choose from a few predifined templates. VWD-CMS is based on ASP.NET Master Pages which are essentially web page layout templates. You can build as many Master Pages as you need to handle all of the different layouts for your pages.
  5. VWD-CMS has been built entirely in Visual Web Developer (VWD) which is a completely free version of Visual Studio from Microsoft. A lot of developers are wondering if VWD has serious limitaitons, and if they should buy the retail versions of Visual Studio or if they will be able to get by with Visual Web Developer. I'm a Microsoft shareholder, so if you want to buy a copy of Visual Studio, go ahead ;). For developers or businesses wondering if Visual Web Developer has what it takes to build real websites, I offer VWD-CMS as an example of what you can do with VWD for free.

What Makes VWD-CMS Different?

VWD-CMS can be broken down into the following major components:

  1. Core Content Management API
  2. Configuration, Management, and Developer Tools
  3. Site Designer (Tools & Wizards for non-technical users)

VWD-CMS has been designed for ASP.NET developers. I have spent many hours chatting or talking with friends an co-workers about the nightmares we experience when trying to get a CMS to let us build our pages with the functionality that has been requested. One of my primary goals with VWD-CMS was build a CMS that wouldn't give developers such a headache all of the time.

Advanced ASP and C# Code Editor

Advanced ASP and C# Code Editor

The Code Editor has features that make development easier: Find, Find & Replace, Indent, Decrease Indent, C#/JavaScript Comments, HTML Comments, Block Comments, ASP.NET Server Control Comments, Make Upper Case, Make Lower Case

This ties into the order in which the VWD-CMS features have been built - the features that I have focused on for versions 1 and 2 are really the back-end / technical / infrastructure features. Rather than building fancy editor pages right away, I have held off on those features and tried to ensure that the core API and technical tools are solid.

I really feel that it is important to get all of the infrastructure and developer tools in place before adding WYSIWYG content editing and other tools and wizards for non-technical users. The reason for this is that as I use the CMS, I sometimes discover some core functionality that needs to be changed and if I had already built a lot of fancy editing tools, it would be a huge effort to update those tools every time I change something in the backend of the system. My feeling is that the CMS platform should mature a little bit before the designer tools are built.

Web Page and SEO Properties Editor

Web Page and SEO Properties Editor

The Web Page and SEO Properties Editor lets you easily set the Page Title, Meta Description, and Meta Keywords. You can also publish content from one or more RSS feeds and set Ad Keywords to control the type of ads that are displayed on each page.

Content management systems have been around for a long time now and now is a good time to give a little thought to who really benefits by having a CMS managed website, what the benefits are and what the drawbacks are. A medium sized organization operating a website usually consists of individuals specializing in one of the following job functions: business & management, sales & marketing, product and content management, imaging & graphic design, system configuration & administration, and web application & software development.

The traditional approach to designing and building a CMS is to identify all of the tasks that a user of the system needs to complete, such as editing the title of a web page, and building easy to use tools that don't require any technical knowledge on the part of the user. This approach assumes that the user of the CMS is a non-technical person, and as the scope and complexity of newer content management systems expands, this assumption is no longer valid. As mentioned above, modern CMS products should provide end to end support for website deployment, development, and maintenance that goes far beyond simple content edits like page titles and navigation menus.

Master Page Content Selections

Select the content that will be rendered on this page - based on the Content Place Holder controls on the Master Page.

The Master Page Content Selections view lets you customize each content page and choose exactly what content will be rendered in the Content Controls and Content Place Holders defined in the Master Page. You can select zero or more CSS files, JavaScript files, and other reusable content blocks to be included in your page.

Different types of CMS users, or user roles, require different tools to perform their job efficiently and effectively. Because most content management systems are built for non-technical people, the priority is placed on making tools for these people to be able to edit pages and other information that is displayed on the site.

The approach I have taken with VWD-CMS is to initially focus on the tools and features that benefit ASP.NET developers when building customized web applications. For this reason VWD-CMS currently has many technical tools for configuring and developing ASP.NET websites and a number of advanced server controls that develpers can use to build highly functional web pages.

Non-technical users should be aware that the current release of VWD-CMS does not come with wizards or WYSIWYG content editing.

 
 

What is the Future of VWD-CMS?

VWD-CMS version 3 will have many more features for non-technical users. I have already started working on a number of the tools and components that fall in the "Designer" area - these tools are specifically built to make it easy for non-technical users of the CMS to build pages, edit content, and manage assets such as images or other files.

WYSIWYG editing is standard in most CMSs and I understand how important these tools are. I am currently working on an even better solution - Edit In Place (EIP) / In Page Editing - in the next release of VWD-CMS you will be able to edit your web pages on the actual page. In Page Editing is far better than simple WYSIWYG editing because it saves time - you immediately see how the page will look, you don't have to waste time making edits, saving, end then going to a preview mode to see how your changes will look on the real site.

There is another major reason why there is no WYSIWYG editing in VWD-CMS right now. There are so many WYSIWYG editors available, and some of them are free, but to my knowledge, none of them can handle ASPX code, they only support HTML. One of the features of VWD-CMS is that reusable, editable content blocks can contain server side content and controls. If I implement a WYSIWYG editor that doesn't support this, I would be forced to disable this feature for the content blocks that would be edited in the WYSIWYG tool. Having dynamic, server side content in the content blocks is a very important feature for myself, and other developers, so I am not willing to impose this limitation on the CMS. For this reason, I am planning to build my own WYSIWYG editor that supports ASPX controls and server side content.