Expand Minimize

SMA267001: Avoid deployment of Feature Staplings via Feature Framework

Using the Feature Stapling Feature of the Feature Framework creates dependencies on the provisioning XML files. Break this dependency to help future migrations, and updates by using the Remote Provisioning techniques from Microsoft.

CheckId SMA267001
TypeName FeatureStaplingRecommendations
Severity CriticalWarning
Type TemplateAccociation

Full Trust Approach App Approach
Enforcing Functionality during Creation of New Sites/SubSites

Feature Stapling allows you to declaratively link Features with the creation of new Sites/Subsites which use a certain template on creation. This allows you to easily add extra functionality even to Out of the Box Site Templates, as well as custom Site Templates

App Stapling

The product catalog can be configured to always include an app with a new site created from a template. While we won't have feature stapling directly in the App Model, App stapling allows you to simulate this process and provide almost identical features, which ties in with Remote Provisioning models of the SharePoint 2013 App Model.

Impact of Full Trust Approach Benefit of App Approach
Not migratable to App Model

A rethink of the design and structure of the Feature Stapling will have to take place. There is no direct mapping to a feature stapling in the App Model. While work arounds are possible.

Cannot garentuee order of stapling

This is a common issue with Feature stapling in SharePoint, sometimes very complex work arounds are required, in order to acheive what should be an easy change to the site. This results in unpredictability and poor governance.

Hides the processing from the end user

When using this technique traditionally, you will get the normal please wait feedback, with no information. This can be troublesome with Feature Stapling, due to it often increasing the provisioning time of a site creation.

Better usability, and user feedback

The App Model helps push things to the presentation layer. This in turn allows you to keep the users aprised of why any processing may be taking longer than expected.

Seperation of roles

The provisioning engine can be hosted away from the SharePoint farm, this increases many factors, including performance and disaster recovery. Allowing for faster spin ups after a disaster recovery action, or on initial provisioning.

Efforts and Benefits

Migration Impact Critical
Re-Design Effort Medium/High
Re-Development Effort Low ~ High
Long Term Benefit High

Effort Drivers

To suppress this violation in XML SharePoint code add the following comment right before the XML tag which causes the rule violation. Learn more about SuppressMessage here.

<!-- "SuppressMessage":{"rule":"SMA267001:FeatureStaplingRecommendations","justification":"Provide reason for suppression here"} -->
Disclaimer: The views and opinions expressed in this documentation and in SPCAF do not necessarily reflect the opinions and recommendations of Microsoft or any member of Microsoft. SPCAF and RENCORE are registered trademarks of Rencore. All other trademarks, service marks, collective marks, copyrights, registered names, and marks used or cited by this documentation are the property of their respective owners.