Microsoft Windows SharePoint Services is a royalty free add-on to Windows Server 2003, and provides business users with multiple web site provisioning, collaboration tools, and document management functionality. Moreover, WSS is a rich development platform providing much added functionality on top of ASP.NET. Version 3.0 is currently in Beta 2 and set to replace the current version 2.0 of WSS in the later part of 2006.
SharePoint Portal Server is a licensed product built atop of WSS 2.0 and offers additional functionality in the form of team sites, portal sites, content management, and user profiles. The new version of Microsoft Office (Office 12, aka Office 2007) includes a replacement for Portal Server, called Office SharePoint Server 2007, which akin to its predecessor operates on top of WSS. Office Server 2007 uses the new version of WSS 3.0.
Windows SharePoint Services 3.0 has undergone some dramatic changes since version 2.0. The new system uses ASP.NET 2.0 and leverages the new features to provide a richer collaborative environment for business users. ASP.NET at the core also provides for a system that scales better and is much more extensive. ASP.NET 2.0 provides developers with new provider models, which open Windows SharePoint Services 3.0 to greater customization benefits.
The remainder of this article discusses the finer points of what is new in WSS.
Consider the manual process of setting up a new ASP.NET web site in production:
Create a web site in IIS
Optionally create a new application pool (IIS6) for the new web site
Create virtual directories in the web site for each ASP.NET application
Tweak the web site and virtual directory configuration settings – permissions, default documents etc
Upload ASP.NET page files and assemblies to the virtual directory location on disk
Stir, simmer, and your site should be ready to eat.
The problem with the process described above is that it requires access to the production web server and IIS. The design of Windows SharePoint Services and Office SharePoint Server is such that site developers can create and manage multiple web sites and applications using the central administration web UI. SharePoint manages all the creation of web sites, virtual directories, and databases.
It is worth mentioning SP terminology here: SharePoint refers to the entry in the IIS meta-base (step #1 above) as the web application. Web applications contain site collections, which manage the individual ASP.NET template based sites.
SharePoint conceptualizes four levels of scope:
Farm – This is the broadest scope level, and refers to all SharePoint installations within a farm. SharePoint web server installations share data via common database servers.
Web Application – A SharePoint application is the container for all sites on a particular server, on a specified IP address and port. Web applications map to what developers refer to as IIS web sites and an entry exists in the IIS meta-base for each web application on the web server.
Site Collection – A site collection is the grouping of all sites within a particular web application.
Web – Refers to an individual site within a site collection. This the least broad scope level.
Templates describe the layout, available features, web parts, and the look and feel of web site collections. WSS provides site templates for team collaboration, meetings etc, out of the box, and OSS adds more.
Templates exist in two flavors – Site Templates (aka *.STP files), and Site Definitions.
Web site designers create site templates from the SharePoint UI. The typical approach is to customize an existing site collection based on an existing WSS/OSS template and then save the modified template as an STP file. STP files are actually CAB files in disguise, and contain only the customizations applied to the stock template. Site Templates are effectively customized Site Definitions. STP files are limited to 10MB.
Site Definitions are template created by developers (see a later article about creating custom site definitions). SharePoint hosts a number of XML and ASPX files on the server, which describe the layout, features, and the look and feel of the template. When developers refer to the common name “Template,” they are typically talking about Site Definitions.
A special site definition exists in WSS 3.0, called the “Global Site Definition.” The GSD is a separate template containing all of the common elements for all provisioned sites in SharePoint. The GSD contains gallery definitions, master page galleries, base types (a big headache in version 2.0), and mobile redirects, to name but a few.
SharePoint features are pluggable functionality units that cross multiple templates – “modular bits of provisioning.” Examples of default features include forms services; excel services, search processing, document library, workflow etc. Developers can create customized feature sets and install them across multiple SharePoint sites. Features adhere to four levels of scope – web, site collection, web application, and farm. The scope level depicts what features are available. For example, workflow features are applicable at the site collection level – defining workflow for all web sites in the collection – but not at the farm or web application level. The web level scope inherits the workflow feature (if enabled) because the site collection scope encompasses the web scope.
Changes in Terminology and Architecture from Version 2 to Version 3
A number of changes in version 3.0 have affected the terminology and architecture of SharePoint. These changes aim to avoid confusion and make life easier for SP developers, site designers, and users of the product. The following list is far from exhaustive, and includes a few highlights worth mentioning.
The following assumes that the reader is familiar with IIS, ASP.NET 2.0, and WSS 2.0:
An IIS web site provisioned with WSS functionality is no longer called a virtual server (because of confusion with another product named the same), and is now called a web application.
WSS 2.0 referred to customized pages in the database (pages customized from those residing on disk) as un-ghosted pages, and non-customized pages on disk as ghosted pages. WSS 3.0 renames this terminology and now uses the terms customized pages and un-customized pages.
Office SharePoint Designer 2007 is the new name for the legacy Microsoft Office FrontPage 2003 application.
WSS 2 integrated with IIS using an ISAPI filter. ASP.NET 2.0 is at the core of WSS 3.0 and the new version uses HTTP handlers and HTTP modules to hook both platforms together.
WSS 3.0 installs a wildcard map to the IIS meta-base; this permits ASP.NET to handle all page requests for static content.
WSS has always stored customized ASPX pages in the main WSS database. WSS 2.0 included a proprietary page parser, since the page parser built into ASP.NET 1.1 could only read pages from disk files. ASP.NET 2.0 includes a pluggable virtual path provider. WSS 3.0 implements the SPVirtualPathProvider – a provider capable of reading ASPX pages from the WSS database.
Branding across multiple WSS 3.0 sites is achievable using ASP.NET 2.0 Master Pages, which promote a constant look and feel. WSS 2.0 achieved commonality with rudimentary cut-and-paste, causing tedious development.