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
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 add modularity to site definitions: Site definitions can include feature references, e.g. Lists, document libraries, content types, etc.
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
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
l Item Custom Actions
l Site Settings Links
l Admin Custom Actions
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]
l List Definitions + Forms + Views
l List Instances
l List Item Events
l Web Admin Custom Actions