I’m writing this introduction in the hope it might shed some light on some confusing parts I found when first using SharePoint. When I first started looking at SharePoint a few weeks back I was completely confused about what exactly SharePoint was and how other technologies fit in with SharePoint. There will be alot missing from this introduction but I’m writing it now as my memory is fresh on what things confused me when I first started looking at it and was trying to find resources for it. If I have missed anything or possibly got something wrong please get in contact with me and I’ll try to fix the problem areas.
What is Windows SharePoint Services 3.0 (WSS 3.0)?
WSS is known as a ‘team collaboration’ service (I personally prefer the term Content Management System as it isn’t necessarily just for use by teams) that can be installed on Microsoft Windows Server 2003. At a glance it provides a set of basic templates for building a basic site, such as a blog site or a wiki site. It also provides the means for content management of these sites from the frontend such as creation/addition/modification of content and .
Beneath it is a more complex framework that is fairly extensible. It provides functionality such as security, document control and a framework for ‘pluggable’ ASP.NET 2.0 controls known as web parts, just to name a few. Obviously there’s a few tools on the administration interfaces that allow you to do alot of stuff but occassionally when you want to complete more complex tasks, such as workflows, there is a need for development.
[WARNING: Personal Comments Ahead] While I do like WSS 3.0, the feature set it provides and the ease of administration, development for it at this point in time (7th July 2007) is a bit of a bitch. From what I’ve read its extremely different from WSS 2.0 so I’d say its a bitch for anybody new or old to the whole WSS framework. Online documentation is sort of lacking and most books I’ve come across address Microsoft Office SharePoint Server (something I’ll get to soon) more than the raw WSS 3.0 framework. The only other CMS I have worked with is DotNetNuke and thats a hell of alot worst. Other than the fact its written in VB.NET, extensibility is absolute chaos in comparison with WSS 3.0. Taking this experience into consideration, I’d choose WSS 3.0 any day.
What is Microsoft Office SharePoint Server (MOSS)?
MOSS is an enterprise server application that makes use of the WSS 3.0 framework. It builds on top of it and provides extra tools such as designers for workflows. The problems I’ve faced with research into WSS 3.0 and development for it is the fact most articles deal with using the functionality within MOSS to complete the task I’m attempting. This makes it difficult to find indepth articles for developers who want to make use of WSS 3.0 without having to purchase MOSS.
N.B. In all the articles on my site (for the time being) I’ll be talking only about stuff you can do with WSS 3.0 and Visual Studio 2005. As I can see it, the number of articles written by people with access to MOSS and Microsoft InfoPath seem to outnumber articles on how to actually use WSS 3.0 as the basis for a system.
WSS 3.0 Basics
When beginning with WSS 3.0 there’s a few useful things to know about its framework and the features that are available. I’ll try to give a brief description of each of the basic components available within WSS 3.0.
WSS 3.0 makes use of ASP.NET 2.0 Master Pages and custom templates can be created and used in place of the default one provided. The default Master Page provides multiple content placeholders for areas such as the title, main area, header, footer, left navigation menu etc. The default one can be found at [%Program Files%\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS\application.master].
Application Pages is the name given to the the aspx content pages that are consumed by the SharePoint Master Page. These aren’t normal content managed pages and can be found in the directory [%Program Files%\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS\]. Its useful to create such pages when there may be a need to do some slightly complex backend processing such as posting to a database and you want to maintain the general “look and feel” provided by SharePoint. The main problem I’ve encountered with creating such pages is the fact that nice things such as the left navigation window aren’t provided for and there’s a little messing around to get the breadcrumbs working.
Web Parts refers to the model similar to the standard Web Parts components found with ASP.NET 2.0 framework. WSS 3.0 provides a framework that is capable of hosting these components. The Web Parts found in ASP.NET 2.0 are not interchangeable with those found in WSS 3.0 and inherit from Microsoft.SharePoint.WebPartPages.WebPart base class.
Sites, Site Collections and Webs
When I started this was a major source of confusion for me. What makes it confusing is the fact that some of the sites hold the configuration for the site collection. I’ll begin with what a site is. A site, put briefly, is represented by one of the tabs (within a traditional SharePoint site) along the top navigation bar. Within a site there can be lists, task lists, web pages and so on. It provides a method to categorise completely different topics while keeping them within the same SharePoint instance.
A web is contained within a site and refers to the individual pages you may host within a site. This could include posts for blogs and other sorts of pages you may create and deploy web parts to. A single site is capable of having many different webs. It is possible to display the webs for a site within the left hand side navigation menu known as the ‘Quick Launch’ menu.
A site collection is literally a collection of sites. The site collection is not actually represented physically by any page but it’s configuration is accessed via the top level site. Initially this can seem very confusing for a beginner as you may assume that the top level site is the site collection and all other sites sitting along side it are actually webs. For the top level site, as with all other sites, there is configuration data for that specific site but the top level site provides a method to access the configuration for the site collection. Any modifications made to the site collection will affect all sites.