Book Image

ASP.NET 3.5 CMS Development

Book Image

ASP.NET 3.5 CMS Development

Overview of this book

ASP.NET 3.5 is equipped with a built-in security system, standard design templates, and easy configurations for database connections, which make it the ideal language for building a content management system. With the strong community support for the ASP.NET platform, you can be assured that what you write today will be around and supported for years to come. You can imagine how easy it is to get lost in the myriad features especially if you are a newcomer. This book shows you how to make use of ASP.NET's features and create a functional Content Management System quickly and conveniently. You will learn how to build your site and see the different ways in which you can customize your code to fit your needs. With this book in hand, you can easily set up users and groups, create valuable content for your users, and manage the layout of your site efficiently. All you need is a basic understanding of coding and a desire to learn, and this book will take care of the rest. This book will teach you to get your site up and running quickly, and maintain its content even if you have little or no web design or programming experience. It will give you all the knowledge you need to use the tools as well as the code required to make yourself a strong developer far beyond your site. It begins with setting up your programming environment and coding a Content Management System. You will learn how to install and configure a database and connect it to your CMS. You will be able to create content and manage the layout of your site, and also make it available beyond the browser. At the end of this book, you will have designed and built a CMS that allows you to administer an Articles section, Images and Files sections, as well as a full set of Administrator tools for your site.
Table of Contents (14 chapters)
ASP.NET 3.5 Content Management System Development
Credits
About the Authors
About the Reviewer
Preface

What a Content Management System is


A Content Management System or CMS sounds like an easily defined subject. It's obviously a system to manage content. But what is content, and how do you manage it? And what is managing in the first place? These very basic questions don't have basic answers, and in many cases, the answer depends on who you are and what you need.

For example, a medical facility such as a hospital or clinic has plenty of content, including patient records, billing information, instruction manuals for equipment, employment records, press releases, employee newsletters, photos of the facility, material safety data sheets for chemicals used, shipping and receiving documents, vehicle registrations, medical licenses, email, training videos, contracts, letters to donors, x-rays, and just about everything else you can think of. All are content. Most of it needs to be managed. But is it all worth having a CMS for?

Of course not. Email is best kept with an email archiving system, which is itself a specialized type of content management. Instruction manuals might use a Content Management System, called a file cabinet, which predates computers. And employee newsletters may simply be printed and forgotten. But all of this content could potentially qualify for a Content Management System.

So, how do we narrow and define content? In our situation, we're going to narrow the content by defining the type of Content Management System we're going to build—a Web Content Management System. Web content consists of anything you might want to put on a web site, mostly text and images.

Web Content Management Systems

Web Content Management Systems are designed to allow users with little or no web design or programming experience to maintain and update content on a web site. They often provide a What You See Is What You Get (WYSIWYG) editor for the content, along with security for granting access to update or delete content, and some kind of workflow management for the content. Workflow management may include entry, approval, and publishing steps so that a user can enter new content. However, another level of security is required to approve and publish that content. Content is often dated, sometimes with an expiration date, and reusable on other pages of the site.

The site itself is usually templated in some manner, separating content from the presentation layer of the CMS, and the coding for the site is hidden from the users. In this setup, a programmer would create the application and provide enhancements to it, a designer would create the look and feel, and content authors and editors would work solely with the content to be displayed.

In many cases, there may be restricted content, viewable by only a specific class of users, and there would be a user management system to handle the creation of users and assignment of permissions. There will normally be some sort of navigation mechanism, and a search mechanism would make retrieving content easier for the end user. For a Content Management System to be useful, content should be dynamic, and should be displayed to specific users, based on specific queries or navigation choices.

A CMS is not necessarily a portal, a community site, a group of forums, or an e-commerce site. While these sites will often have content management as part of their functionality, they are not part of a CMS by default. On the other hand, blogs are purely content management—articles and comments are the content, and it's only the fact that the template creates a blog style which makes them a blog. There's really no difference between an online newspaper and a blog, or a site full of product documentation. All of them have specific content, whether articles, blog posts, or documents, which needs to be managed.

Over the course of this book, we will develop a Web Content Management System, and we'll use the acronym CMS for this. We'll program a basic content system based on articles, along with workflow for the process. This will require a user security system, based on membership of groups that are allowed to perform certain tasks, and we'll add a template system to provide for the layout of the pages separate from the content. We'll use ASP.NET, Visual Web Developer, and SQL Server 2005 Express as our environment, although you should feel free to use tools you are comfortable with, provided they are compatible.