Windows SharePoint Services v3.0 1:Introduction
In this series of articles I'm going to be looking at Windows SharePoint Services 3.0, which we'll abbreviate to WSS3 from here on. WSS3 is the free version of SharePoint whereas Microsoft Office SharePoint Server 2007 (MOSS) is its big, commercial brother. It is its brother however and is closely related. We're going to focus almost exclusively on WSS3 but will mention MOSS occasionally along the way. MOSS is entirely based on WSS3.0 though it does provide a number of additions. WSS3 is a capable and not insubstantial item of software in itself however.
I am going to assume you know a little (though only a little) about SharePoint technologies in that you have used either WSS3, MOSS or a previous version of SharePoint though perhaps only from an end user's perspective (though an end user can do a fair bit in SharePoint!) It is also assumed later in the series that the reader is a competent ASP.net 2.0 programmer and knows about things like master pages and web parts.
In the first few articles in this series we will largely be introducing and exploring the copious number of features available out of the box with WSS but just a quick early note on the required development environment in case this puts anyone off at this early stage. WSS3 installs on Windows Server only so it is not going to be easy developing for SharePoint unless you have access to such an environment. This means either an accessible server (which may be your main machine) or a virtual machine on your primary development machine if running a client OS, for example via Microsoft’s free Virtual PC product (see Microsoft downloads). We may discuss the pros and cons of each approach nearer the time but here's a brief spec for a development environment: Windows Server 2003 R2 with WSS 3.0, .NET 3.0, SQL Server (2000/2005/Express) and VS 2005. We'll leave that topic for now but will return to development issues for the second half/ two thirds of this article series.
Talking of the future ... what is the plan? See below – these are the subjects we'll be covering approximately. The odd topic may force its way in as we progress.
An introduction to WSS3, in particular the architecture and key concepts in overview
WSS3 Out of the Box – unsurprisingly a look at using some of the out of the box features of WSS3
Security - Authentication and Authorisation
Basic Customisation of WSS3
Site Definitions – sites are a key building block of WSS3 so site definitions are also key
Features – these are components of functionality that can be activated at different levels within WSS3
Web Services – in WSS3 the API is exposed via Web Services
Web Parts – pretty central in development terms
WSS3 Object Model – ditto!
Custom Field Types – in WSS3 you can extend the definitions of field types
Events
Workflow – based on .NET 3.0 WF
Performance
So, in this article we are going to introduce the WSS v3 architecture and key concepts such as sites, site collections, workflow, master pages, web parts and content types.
The main reference for this series of articles is Todd Bleeker’s 'Developers Guide To Windows SharePoint Services3.0', one of the early books available on WSS3 development.
The architectural hardware model is designed to be scalable with 3 logical tiers: front end web server(s) (IIS), search server(s) and database server(s) (content and configuration). This logical model can be physically deployed on any number of servers, 1 upwards.
Application administration is exposed via two main avenues in WSS: via SharePoint Central Administration – a web site in its own right – and via the standard functionality exposed to the admin roles via the SharePoint site. The SharePoint administration model includes support for the following roles:
It is also important to note that the command line tool stsadmin is an essential tool for the more technical SharePoint administrator. More of this tool in later chapters.
A site collection is a hierarchy of WSS web sites (aka workspaces/ webs/ sites – we'll try and settle on the latter). They share elements such as a templates, workflows, site columns, master pages and content types (more of which later but the reader should be aware of most of these concepts already). Sites within a site collection can share content and navigational elements.
The default permissions and permissions groups for a site collection are:
On installation and by default a single site collection /web application is created. Further site collections may be created from the SharePoint Central Administration site (subsequently CA assuming I remember). The CA is accessible directly on the server under admin tools or via the CA URL. The required option is Application Management – Create or Extend web application – Create new Web Application. By default:
It is also recommended that
You may need to recycle the application pool before you use the new site collection as configuration information is cached and may need to be forced to reset. The easiest/ best way to do this is to right click on the application pool in IIS and select recycle.
A (web) site is a collection of zero or more lists and libraries and the pages that manage them. Security may be inherited or unique among the various webs within a site collection, definable by the site admin. Sites can have their own content types and site columns. More of which shortly.
Workspaces are just sites really. They are, however, predisposed due to the nature of their included lists and libraries to specific business activities. Types of workspace include the document workspace and a variety of meeting workspaces. Document workspaces can be created from a document library (see next section) in WSS or from Office client software.
Microsoft Office SharePoint Designer 2007 (subsequently SPD) can be used to edit sites and their sub-objects simply by pointing SPD at the URL of the web site, as one would have done with Frontpage, which is no coincidence as SPD is the evolution of Frontpage. Note that a WSS3 site uses a shared template page on the file system in a site template definition. Customising a page, through SPD for example, forces it to stop using this template page and for the new ‘template’ to be stored in the content database. In WSS2 this was referred to as 'unghosting' a page and is a terminology that is likely to continue. Note that a) SPD provides a warning when this is about to happen and b) SPD allows the process to be reversed.
Sites in SharePoint are comprised of lists and their close bedfellow, libraries. A list is a place to store data. A (document) library is a special type of list modelled more on the concept of file systems folders for storing documents. Lists rely on the concept of columns (aka fields or attributes) – an item of information about the type of list, e.g. name of a document. In turn views rely on columns – specific views of the list data based on criteria applied against the columns.
WSS2 introduced the concept of the gallery for site templates, list templates and web parts. Once added to a site collection gallery an item was available for use throughout the site collection. This has changed a little in WSS3. Instead of there being a single gallery for a site collection each site has a gallery. With each site items may be shared between a parent and its children; items such as columns, content types and workflows. The full list of gallery types is now:
The first three are available to all sites but the others only to the root site of the site collection.
Just for comparison and information as MOSS is not the technology under primary discussion, MOSS Standard Edition includes the following:
The Enterprise edition further provides
For all these extras you pay a great deal more. See http://office.microsoft.com/en-us/sharepointserver/FX102176831033.aspx. The great thing is that with WSS3 you can do quite a lot for 'free'.
This first article in the series on WSS3 introduced the product, presenting a high level look at many of the key elements of WSS3 including site collections and their constituent elements as well and hopefully started to give you an idea of what is achievable using WSS3 'out of the box'. Before we start looking at customising and extending what is supplied, both programmatically and by other means, we'll continue in the next article to look at some of the features we’ve introduced in more detail. One of the key requirements for a WSS/ MOSS architect is understanding how functionality can be delivered 'out of the box' and as a consequence when bespoke development work is required instead. This way lays optimum bang for your buck.
Developers guide to WSS3.0 Todd Bleeker Charles River Media http://dotnetaddict.dotnetdevelopersjournal.com/moss_vs_wss.htm