Features

Feature framework is an innovation to enhance modular provisioning. It works by grouping logical elements into scenario-driven “features”.

l  Features can be add to and reused across site definitions

l  New features can be activated in existing site to add functionality

l  Features scoped at web, site ,web application and farm.

l  Features need to be installed before they can be activated, via stsadm.exe or custom code using SharePoint API

l  Once installed, a user can activate or deactivated feature in context of site or site collection

 

Features are composed of XML files and .aspx files

l  XML in CAML

l  Features have ID, name, scope

l  Features are composed of elements

l  Generate GUID using Visual Studio 2005

 

Feature Dependencies

Features can be designed with dependencies: Allows one feature to assume another feature is present Example: Feature B might depend on feature A.

 

l  B should be written with activation dependency on A

l  Activating B forces A to be activated as well

l  Deactivating B results in deactivation of A

 

Features can be defined as hidden; this will hide the feature from users in administration pages, however it can still be activated via dependencies

 

Features and Site Definitions

Features add modularity to site definitions: Site definitions can include feature references, e.g. Lists, document libraries, content types, etc.

 

Activating Features via the UI

Feature elements can add commands to WSS 3.0 UI:

l  Extensible to site settings, action actions, menus, ECB, etc.

l  Performed using SiteActions menu elements with Url Action

l  ECB menu associated by list type, content type or file type

 

Feature Site Template Associations a.k.a. Feature Stapling

l  Enables you to include a specific feature as part of a site definition when you provision sites through the site definition

l  Preserves original out of the box definitions

l  Keeps customer environment in a supported state

l  Makes it easier to manage customizations in customer environments

l  Reduces development and deployment time

 

 

Examples of where SharePoint can be extended using Features (based on scope):

Farm Elements

l  Item Custom Actions

l  Site Settings Links

l  Admin Custom Actions

Web Application elements

l  Item Custom Actions

l  Site Settings Links

l  Admin Custom Actions

Site Elements

l  Site Settings Links

l  Site Web Part Definitions

l  Workflow Definitions

l  Site Content types

l  Site columns

l  Files [provisioned to root web]

l  List Instances [provisioned to rootweb]

 

Web Elements

l  List Definitions + Forms + Views

l  List Instances

l  List Item Events

l  Item Custom Actions

l  Web Admin Custom Actions

l  Files