Chapter 1. The ASP.NET Community Starter Kit
Everybody agrees that .NET brought in many improvements over previous development paradigms and technologies. The drawback with new technologies is that developers need time to master the new skills; the large code bases, solutions, techniques, and expertise that were available with older technologies are no longer applicable within the framework of new technologies. It is always more difficult to build a complex solution with a technology you haven’t yet mastered, no matter what that technology is.
In order to help developers become more efficient with ASP.NET, Microsoft has released a number of starter kits that help ASP.NET developers to create their own solutions in a faster and easier manner.
The ASP.NET Starter Kits are complete solutions that you can update and customize for your own needs. When building complex applications, designing the application architecture is often a time-consuming step. Borrowing the entire architecture from an existing solution can be of immense help if the job is done right.
At the time of writing, there were five starter kits available for download at http://www.asp.net/starterkits (visit the site for more information on these):
Time Tracker Starter Kit
Reports Starter Kit
Community Starter Kit
Commerce Starter Kit
Portal Starter Kit
The names of the starter kits are self-describing.
This book is exclusively dedicated to the Community Starter Kit (CSK), which is the most complex and powerful of all the starter kits. It provides a complete application that can be adjusted exclusively using the administrative interface included within the starter kit without touching a single line of code or knowing its internal working.
In the first five chapters, you’ll learn how to create your own customized solution by using the administrative interface that comes with the Community Starter Kit application. In Chapters 6 through 11, you will learn how to programmatically create new modules and plug them into the site.
What Can the Community Starter Kit Do for You?
The CSK helps you to create and administer online community websites by providing the complete source code for a carefully tested, scalable, and modular structure that can be reused and customized to suit your particular needs.
Note
Community websites are websites that support online communities. These can be regional user communities, developer resource sites, news sites, or other kinds of user‑group sites. Most community websites provide features such as presenting news and events concerning the community, photo galleries, links to other websites, discussion forums, and so on.
The CSK application itself is quite complex but can save you many hours of design and development efforts. It is built using powerful and flexible 3-tier architecture with reusable components and offers good performance. We’ll discuss the details of the architecture starting withChapter 6, but an example of its modularity is that the application, excluding the administration pages, has only two ASPX web forms. Each client page is dynamically built using separate web user controls and data gathered from the SQL Server database.
By default, the CSK comes with out-of-the box functionality that includes support for nine types of content including articles, books, events, photo galleries, downloads, user polls, and more. It also supports features such as moderation, upload quotas, comments, user polls, ratings, newsletters, advertisements, web services, and security. We’ll take a detailed look at each of these in Chapters 2 and 3.
Note
To see how these features work, you can preview the Lunar .NET community (the sample community that ships with the CSK) at http://www.asp.net/CommunityStarterKit/.
The CSK has built-in functionality for skinnable interfaces, which means you can change its appearance entirely through its administration interface and configuration files without modifying a single line of code.
An advantage of using the CSK is that a number of Internet Service Providers (ISPs) support automatic deployment of websites that are based on it. We’ll talk more about deployment techniques and strategies inChapter 11.