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:
- 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.
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.
- 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.
- 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.
- 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:
- Core Content Management API
- Configuration, Management, and Developer Tools
- 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
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
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
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.