What email address or phone number would you like to use to sign in to Docs.com?
If you already have an account that you use with Office or other Microsoft services, enter it here.
Or sign in with:
Signing in allows you to download and like content, and it provides the authors analytical data about your interactions with their content.
Embed code for: Why NOT to use feature framework
Select a size
Presentation used in the European SharePoint Conference.
Why you should NOT use feature Framework in your Customizations
Senior Program Manager, Microsoft
Start moving to remote API based approaches
There are multiple open source and commercial solutions available
Feature framework is not flexible enough
“What’s wrong with using the feature framework model?”
Challenge is the strong dependency of the provisioned assets to feature framework elements either in farm solution or in sandbox solution and that feature framework does not really support updates.
List template challenge
Manifest xml in the solution package introduces the feature framework elements.
Feature framework feature with element xml files for list templates, including a custom schema.xml file
Provisioned list instances have a dependency on specific schema file to exists in the context of the site – either deployed as farm or sandbox solution. If you remove the solution, your data is no longer accessable.
List template C
List template B
List template A
List template provisioning challenge with feature framework
Content type and site columns with dependency Not recommended approach
Feature framework feature with element xml files for content type and site columns.
Content Type A
Content Type C
Content Type B
Provisioned content types And site columns ha ve dependency on element xml files
Similar dependency challenge applies for Sandbox solutions…
Content type provisioning challenge with feature framework
Modules with Feature Framework
These are essentially files deployed to the site
You should follow the same “remote provisioning pattern” that we outlined for application artifacts such as .webpart files, page layouts and master pages.
Challenge with feature framework based provisioning is that any operation to sandbox or farm solution will impact directly end user sites
Note. This pic is for farm solution based provisioning, but same challenge is with sandbox solutions.
Site Templates & Web Templates
Site Templates & Web templates themselves aren’t the real problem. It is the FEATURES and ARTIFACTS within that you need to think about
These should be analyzed just like any other farm solution
Replacement method based on artifacts contained within
Problematic case sample: Web template replaces out of the box default.aspx page
Operational benefits of remote provisioning
No downtime for farm solution deploymetns or updates
All customizations reside inside of the content databases, easier backup and restore process
Custom feature activations or deactivations do not impact on the assets or configurations
How do you update sites where you have deployed configurations using feature framework?
“Using code either in feature receivers or with some console application, since updates are not supported with feature framework xml”
“Are sandbox solutions really a challenge with SharePoint Online as well?”
Yes. The challenge is the updates that you will eventually need to deploy to the sites at some point. Also the fact that when you use Sandbox solutions, your site has tightly coupled dependency on having that solution active in site. Managing customizations cross hundreds or thousands of site collections with sandbox solutions is a nightmare.
“I’m building a SP hosted add-in and need to provision elements, what should I do?”
SharePoint hosted add-ins are an exception for this recommendation and you should absolutely use the feature framework to provision needed lists and assets in your SharePoint hosted add-ins. This is an isolated scenario where the feature framework usage makes still sense.
“Visual Studio still promotes the feature framework based model - why?”
Does it really? We want to have backward compatibility on the provisioning, so we are not going to remove farm solution or sandbox solution capabilities from the Visual Studio. We do anyway recommend on gradually moving to remote APIs within SharePoint Online and also in on-premises.
“What about design manager and design packages?”
Design packages are actually sandbox solutions, which means that your assets have dependency on having specific sandbox solution enabled in the site collection level. Also managing updates with these is challenging.
PnP Provisioning Engine – Export/Import
OOB site with needed configuration
Empty OOB site
Site Provisioning Framework
// Get template from existing site
template = ctx.Web.GetProvisioningTemplate();
// Save template using XML provider
XMLFileSystemTemplateProvider provider =
new XMLFileSystemTemplateProvider(@"c:\temp\", "");
string templateName = "template.xml";
// Load the saved model again
ProvisioningTemplate p2 =
// Apply template to existing site
“What’s the difference for end users with the models?”
End users do not see how the assets and configurations are deployed to sites. There’s no impact for end users comparing on the models, difference is in the maintenance and operations of sites which have been provisioned.
Remote provisioning without feature framework
Open source remote provisioning frameworks
PnP Provisioning Engine
We provide base templates to implement ‘delta handling’
Base templates are available for all supported O365 site definitions
Embedded in the engine
Useful to keep sites up to date with reference templates – or to provide updates on existing sites
Do not remove/delete anything
Delta handling – how to apply changes on already provisioned sites
Sharing is caring…
Office 365 Development
Monthly community calls
Special Interest Groups
SharePoint Patterns and Practices
© 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
© 2015 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
© 2015 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.ad the saved model again