Many a times i have heard a lot of discussions on feature dependency and stapling in sharepoint and their application in sharepoint . Both these terminologies depends on other feature for its applications . I would like to point out my understanding on them in this section .
Feature Dependency – As per my understanding “Activation of a feature depends on the other ” . To make it clear let me give a scenario where “Office SharePoint Server Publishing” feature can be activated only if “Office SharePoint Server Publishing Infrastructure” feature is activated, without which the former is not possible .
In this scenario “Office SharePoint Server Publishing” is dependent on “Office SharePoint Server Publishing Infrastructure” .
Feature Stapling – Whenever we need to activate a feature on site creation using site definitions we need to go for stapling . This is because sharepoint doesn’t have synchronous/asynchronous events to capture site/web creation.For eg : lets say we need to change master page for a site on its creation then we can have a feature that does this and associate it with another feature using FeatureSiteTemplateAssociation .
Feature that has FeatureSiteTemplateAssociation is called as stapler while the one that changes master page( in this scenario) is called as staplee. This concept is used especially in branding a sharepoint site .