Governance Resources for SharePoint 2010

Governance relates to decisions that define expectations, manage access, and validate performance and investment performance defined by established processes and procedures.  The information here contains references to governance resources as related to SharePoint 2010, for additional information see also Governance Overview (SharePoint Server 2010).

Resources

Resource Center (Governance in SharePoint Server 2010)

The Governance Resource Center provides documentation, references, and solutions to help IT Professionals plan and prepare to govern SharePoint 2010 environments.  The Governance Resource Center aligns to three (3) specific areas:

  1. IT Governance
  2. Information Management
  3. Application Management

Resource Center (ALM Resource Center | SharePoint 2010)

The ALM Resource Center provides documentation, resources, references, and solutions to help Developers with the coordination of all aspects of software engineering.

Whitepaper (SharePoint 2010 Governance Planning)

The SharePoint 2010 Governance Planning whitepaper targets the business value of governance and provides guidance for the necessary governance planning and implementation of SharePoint Server 2010.

Whitepaper (Implementing Governance in SharePoint 2010)

This document focuses on the product and technology aspects of SharePoint governance – the technical implementation. It provides high-level guidance on the many configuration options SharePoint provides to enable you to manage the environment for the benefit of all.

Publication (Essential SharePoint 2010: Overview, Governance, and Planning (Addison-Wesley Microsoft Technology Series)

Essential SharePoint 2010 provides information derived from a business value perspective that documents and illustrates how to plan and implement SharePoint 2010-based solutions to maximize business results.

Tools and Utilities

Tool (SharePoint Site Recycle Bin)

Track, report, and protect deleted sites and site collections with the SharePoint Site Recycle Bin.

The SharePoint Site Recycle Bin is a Microsoft SharePoint Foundation 2010 solution package that when deployed to a Microsoft SharePoint Foundation 2010 or Microsoft SharePoint Server 2010 server farm enables administrators to create a snapshot of subscriptions, site collections and Webs as they are deleted through the SharePoint user interface, the SharePoint Administration Tool, the SharePoint 2010 Management Shell, SharePoint 2010 Central Administration, or SharePoint Designer.

Solutions

Active Directory Domain Services Markers

Active Directory Domain Services Markers can be used to prevent and report on SharePoint installations in your organization.

Quotas

Quotas are used to specify limits to the amount of storage that can be used by a site collection and establish resource limits on sandboxed solutions.

Locks

Locks are used to prevent users from from adding content to or accessing site collections.

Self-Service Site Creation

Self-Service Site Creation is used to allow or prevent  users from creating site collections on demand.

For a comprehensive list of governance features see also http://technet.microsoft.com/en-us/library/cc262287.aspx.

Microsoft IT Site Delete Capture LE Version 1.0 Released

Microsoft IT Site Delete Capture LE version 1.0 has been released.


Microsoft Site Delete Capture LE version 1.0 is an Windows SharePoint Services 3.0 solution package that when deployed to a Windows SharePoint Services 3.0 or Microsoft Office SharePoint Server 2007 server farm enables administrators to create a snapshot of site collections and Webs when they are deleted through the SharePoint user interface, the SharePoint Administration Tool, or Microsoft Office SharePoint Designer 2007.

Microsoft IT Site Delete Capture LE 1.0 is a light-weight implementation of the Microsoft IT Site Delete Capture 1.0 offered as a Windows SharePoint Services 3.0 solution package. This build does not include e-mail notification logic and introduces deprecated application event logging.

Read more…

Announcing the Beta Release of the SharePoint Asset Inventory Tool

In the past several weeks, I’ve traveled along the west coast and overseas discussing governance as it applies to SharePoint Products and Technologies and am delighted to announce the availability of the beta of the SharePoint Asset Inventory Tool.


The SharePoint Asset Inventory Tool is single reporting application that can be used to mitigate SharePoint Products and Technologies server proliferation by scanning the network for server machines with Windows SharePoint Services 3.0 and/or Microsoft Office SharePoint Server 2007 installed.  The SharePoint Asset Inventory Tool leverages SQL Server Reporting Services to generate detailed reports on the location, content, and usage of the SharePoint Products and Technologies and incorporates an open model to enable administrators and IT Pros to create and generate custom reports tailored to their environments and the information pertinent to them.


To learn more about the SharePoint Asset Inventory Tool visit http://go.microsoft.com/fwlink/?LinkID=103035 or download the beta release on Microsoft Connect at https://connect.microsoft.com/programdetails.aspx?ProgramDetailsID=1600.

Dynamic Application of Master Pages in Microsoft Office SharePoint Server 2007

I’ve spent the past two months in various locations across the West coast speaking on governance in SharePoint Products and Technologies and one of the most common points of discussion is enabling a consistent look and feel across sites and Webs.  While most commonly this is achieved through employing a master page, many organizations either limit the distribution of Microsoft Office SharePoint Designer 2007 or do not use Microsoft Office SharePoint Designer 2007 in their organizations, while there are many articles across numerous blogs providing prescriptive guidance on master page development, Feature stapling, and other variations to support the implementation of master pages, I’ve yet to find a complete tutorial on implementing master pages using a combination of Feature stapling and a Feature Receiver.


NOTE Sample master pages can be downloaded from: http://www.microsoft.com/downloads/details.aspx?FamilyID=7c05ca44-869a-463b-84d7-57b053711a96&DisplayLang=enClick here to download sample master page resource files based on the Clarity master page included in the Windows SharePoint Services 3.0 Sample: Example Master Pages.  The Clarity master page in this download was modified to support installation as a Windows SharePoint Services 3.0 solution package.


Create the Solution Directory Structure


The directory structure is important to the solution when it is to be compiled using MAKECAB.exe later in this article, to simplify the compilation using MAKECAB.exe you should create a directory structure relative to the location on which the files will be installed on the Web server(s), the directories when the solution is added and deployed to the server farm are relative to %commonprogramfiles%Microsoft SharedWeb Server Extensions12 in this example.


+ Sample Master Page Solution


  + GAC Hosts the Feature Receiver called by the Feature


  +  TEMPLATES


    + FEATURES


      + Sample.MasterPage Hosts the master page feature scoped at the Site level and MasterPages subdirectory.


        + MasterPages Hosts the master page or master pages that will be used by the solution.


      + Sample.Stapler Hosts the stapling Feature that makes the master page(s) available to the Site and Web scopes.


      + Sample.Web.Master Hosts the master page feature scoped at the Web level.


    + LAYOUTS


      + <LocaleID>


        + Styles *Optional Hosts cascading stylesheets used by out of the box master pages and page layouts.


          + Sample *Optional Hosts cascading stylesheets used by the master page.


    + IMAGES


      + Sample *Optional Hosts images used by the master page.


Create the Master Page Feature (Scope = Site)


The master page feature contains both the files necessary to provision a Feature and the master page to be applied to newly created sites. The master page Feature directory should contain a directory to host the master page and two files, Feature.xml and ProvisionedFiles.xml.


Feature.xml


Feature.xml defines the base properties of the Feature and lists elements bound to it.


NOTE For more information see the Working with Features article on MSDN at http://msdn2.microsoft.com/en-us/library/ms460318.aspx.


Elements and Attributes


The <Feature> element defines the Feature and specifies the location of assemblies, files, dependencies, and additional properties supporting the Feature.  In Feature.xml the Title attribute specifies the name of the Feature as it appears in the SharePoint Products and Technologies user interface and is supported by the Description attribute which can be used to specify additional descriptive text to identify the Feature.  It is best to provide a clear description of the Feature, it’s purpose and scope in the Description attribute to easily identify the Feature in the SharePoint Products and Technologies user interface.  The Scope attribute specifies the scope at which the Feature applies itself, in this example, the scope is at the Site level.  The Hidden attribute specifies whether or not the Feature is visible in the SharePoint Products and Technologies user interface and the DefaultResourceFile specifies the default resource file used by the Feature.


The ElementManifests element specifies references to element manifests and element files that contain definitions for the Feature elements.


Example:


<!– _lcid=”1033″ _version=”12.0.4518″ _dal=”1″ –>
<!– _LocalBinding –>
<Feature  Id=”<GUID>”
          Title=”Sample Site Collection Master Page
          Description=”The sample master page provides an instant style ready to be applied to your SharePoint site.
          Version=”1.0.0.0
          Scope=”Site
          Hidden=”False
          DefaultResourceFile=”core
          xmlns=”
http://schemas.microsoft.com/sharepoint/>
    <ElementManifests>
        <ElementManifest Location=”ProvisionedFiles.xml/>
    </ElementManifests>
</Feature>


ProvisionedFiles.xml


ProvisionedFiles.xml defines the resources that are provisioned on the Web server as a component of the underlying associated Feature.


Example:


<!– _lcid=”1033″ _version=”12.0.4518″ _dal=”1″ –>
<!– _LocalBinding –>
<Elements xmlns=”
http://schemas.microsoft.com/sharepoint/>
<Module Name=”OSGMasterPagesUrl=”_catalogs/masterpagePath=”MasterPagesRootWebOnly=”TRUE“>
        <File Url=”Clarity.master” Type=”GhostableInLibrary”>
            <Property Name=”ContentTypeValue=”$Resources:cmscore,contenttype_masterpage_name;” />
            <Property Name=”PublishingPreviewImageValue=”/_layouts/images/clarity/clarity.gif/>
            <Property Name=”MasterPageDescriptionValue=”Clarity Master Page/>
        </File>
</Module>
</Elements>


In the example the preview image for the master page is stored in a subdirectory, clarity relative to %commonprogramfiles%Microsoft SharedWeb Server Extensions12BIN.  It is recommended to create resource directories to host supporting content to easily identify resources associated with the master page on the Web server file system.


Create the Master Page Feature (Scope = Web)


The master page feature contains both the files necessary to provision a Feature and the master page to be applied to newly created Webs. The master page Feature directory should contain two files, Feature.xml and ProvisionedFiles.xml.


Feature.xml


Example:


<!– _lcid=”1033″ _version=”12.0.4518″ _dal=”1″ –>
<!– _LocalBinding –>
<Feature  Id=”<GUID>”
          Title=”Sample Web Master Page
          Description=”The sample master page provides an instant style ready to be applied to your SharePoint site.”
          Version=”1.0.0.0
          ReceiverAssembly=”SampleReceiver, Version=1.0.0.0, Culture=neutral,PublicKeyToken=<PKT>
          ReceiverClass=”SampleReceiver.FeatureReciever
          Scope=”Web
          Hidden=”False
          DefaultResourceFile=”core
          xmlns=”
http://schemas.microsoft.com/sharepoint/>
    <ElementManifests>
        <ElementManifest Location=”ProvisionedFiles.xml/>
    </ElementManifests>
    <Properties>
      <Property Key=”MasterNameValue=”Clarity.master/>
    </Properties>
</Feature>


The Web master page Feature has two notable differences in comparison to the sites master page Feature, the ReceiverAssembly attribute and its dependencies and the <Properties> element that defines the master page to be applied when the custom code is called in the Feature Receiver specifies in the ReceiverAssembly attribute and dependant attributes.


The ReceiverAssembly attribute specifies the assembly name (instructions later in this article).  The Version and Culture attributes specify the assembly version and Culture.  The PublicKeyToken attribute specifies the Public Key Token for the assembly.  Once the assembly is compiled in Visual Studio you can use the Strong Naming utility SN.exe or optionally copy the assembly to your Global Assembly Cache to retrieve the Public Key Token.  NOTE Assemblies must be signed to support installation in the Global Assembly Cache.


ProvisionedFiles.xml


<!– _lcid=”1033″ _version=”12.0.4518″ _dal=”1″ –>
<!– _LocalBinding –>
<Elements xmlns=”
http://schemas.microsoft.com/sharepoint/></Elements>


Create the Master Page Stapling Feature


Feature.xml


Feature.xml defines the base properties of the Feature and lists elements bound to it.  NOTE For information on Feature.xml elements and attributes used in this solution, see Elements and Attributes in the Create the Master Page Feature section at the top of this article.


Example:


<!– _lcid=”1033″ _version=”12.0.4518″ _dal=”1″ –>
<!– _LocalBinding –>
<Feature  Id=”<GUID>”
          Title=”Sample Stapler
          Description=”Sample stapler feature.
          Version=”1.0.0.0
          Scope=”Farm
          Hidden=”False
          DefaultResourceFile=”core
          xmlns=”
http://schemas.microsoft.com/sharepoint/>
    <ElementManifests>
        <ElementManifest Location=”ElementsManifest.xml/>
    </ElementManifests>
</Feature>


The stapling Feature enables the association of a specific Feature with a site definition.  The stapling Feature directory should contain two files, Feature.xml (described above) and ElementManifest.xml.


ElementManifest.xml


ElementManifest.xml contains definitions for the Feature elements.


The <FeatureSiteTemplateAssociation> element specifies the site templates the Feature should be associated to.  In ElementManifest.xml the Id attribute specifies the globally unique identifier for the site template the Feature should be associated and the TemplateName attribute specifies the friendly name of the template associated with the globally unique identifier in the Id attribute.  In this example, the Feature is associated with an example collection of the out of the box site definitions for both sites and Webs, use additional Site Templates as needed by adding the identification values in the <Elements> element.


<!– _lcid=”1033″ _version=”12.0.4518″ _dal=”1″ –>
<!– _LocalBinding –>
<Elements xmlns=”
http://schemas.microsoft.com/sharepoint/>
  <!–Clarity.MasterPage Feature–> 
  <FeatureSiteTemplateAssociation Id=”<GUID>TemplateName=”STS#0” /> 
  <FeatureSiteTemplateAssociation Id=”<GUID>TemplateName=”STS#1” /> 
  <FeatureSiteTemplateAssociation Id=”<GUID>TemplateName=”STS#2” />


  <!–Clarity.Web.Master Feature–> 
  <FeatureSiteTemplateAssociation Id=”<GUID>TemplateName=”STS#0” />  
  <FeatureSiteTemplateAssociation Id=”<GUID>TemplateName=”STS#1” />
  <FeatureSiteTemplateAssociation Id=”<GUID>TemplateName=”STS#2” />
</Elements>


Create the Feature Receiver


The Feature Receiver provides the ability to respond to Feature events which permit trapping and responding to an event that fires when a Feature is installed in the Web farm, added to a Web application, or when a Feature is removed.  For additional information on Feature Events see http://msdn2.microsoft.com/en-us/library/ms469501.aspx or for additional information using Feature Receivers to modify master page properties and application on a SPWeb object see http://blogs.msdn.com/bgeoffro/archive/tags/branding/default.aspx.


The Feature Receiver is the core of the master page solution and enables a method by which an event is acted on when the Feature function or functions are called.  The Feature Receiver used in this example is called by the Clarity.Web.Master Feature.  Event handlers within the Feature Receiver class are fired when the Feature is installed, activated, uninstalled, and/or deactivated.  To instruct the SPWeb object to use the new Master Page you would supply the necessary code inside the FeatureActivated Event Handler.


Create the SharePoint Solution Package


The SharePoint solution package will contain the Feature resource files and receiver created in the steps above.  There are several applications available today specifically designed to create and compile SharePoint solution packages; however, most commonly the MAKECAB.exe application is used to create the solution package.  To download and learn more about MAKECAB.exe visit http://support.microsoft.com/kb/310618.  For solution packaging examples using MAKECAB.exe see Deploying ProClarity Viewer 6.3 for SharePoint and Understanding Solution Packages in Microsoft Office SharePoint Server 2007/Windows SharePoint Services 3.0.


Resources


Chris Johnson:  Feature Stapling in WSS v3 http://blogs.msdn.com/cjohnson/archive/2006/11/01/feature-stapling-in-wss-v3.aspx


Heather Solomon:  Create a Feature: Master Pages for Site Collections http://www.heathersolomon.com/blog/articles/servermstpageforsitecollect_feature.aspx


Andrew Connell:  Adding Master Pages to WSS v3 Site Collections via Features http://andrewconnell.com/blog/archive/2006/10/21/4954.aspx


Brett’s SharePoint Blog:  Branding http://blogs.msdn.com/bgeoffro/archive/tags/branding/default.aspx *Great Code Samples

Free PacWest Sales Event – SharePoint Products and Technologies Governance

If you are in or plan to be in the Puget Sound area on November 8th, I encourage you to register for the PacWest Sales Event focused on governance in SharePoint Products and Technologies; presenters will include myself, Joel, Jim Adams, and others…for more information on registration, location, date, and details visit Joel’s blog at http://blogs.msdn.com/joelo/archive/2007/10/30/free-pac-west-sales-event-meeting-of-the-minds-governance-and-sharepoint-2007.aspx.