250 likes | 378 Vues
Explore the fundamentals of SharePoint development with this comprehensive guide by Becky Isserman. Learn the significance of Features, the backbone of SharePoint solutions, which allow for reusable components at various scopes such as farm, web application, and site collection levels. The guide delves into key concepts like feature.xml, activation dependencies, and the creation of user controls using the SharePoint Object Model. Discover best practices for manual installation and activation, and understand the advantages and disadvantages of Feature-based solutions in SharePoint.
E N D
SharePoint Development 101: Feature Design By Becky Isserman http://www.mosslover.com
SharePoint Development vs. ASP .Net Development • User Controls • Features
What is a Feature? • Re-usable solutions on the farm, web application, site collection (site), and site (web) level • Have endless possibilities for use… • Requires a Feature.xml (feature definition file) • Can have an Elements.xml or more • Are stored in 12\template\features
Answer: 137 Question: How many features are installed in SharePoint out of the box?
Feature Definition (feature.xml) • Includes: • Elements Attributes • Activation Dependencies • Feature Elements (included in elements.xml files)
Feature Definition Example <Feature Title = “My Feature” Scope = “Web” Id=“235A5BAD-7D97-435C A2DB-AB579CAD79BC” Version = “2.3.1.2” xmlns = “http://schemas.microsoft.com/sharepoint”> <ElementManifests> <ElementManifest Location=“Elements.xml” /> </ElementManifests> </Feature> Bonus: What do these attributes mean?
Activation Dependencies • Definition: Requirement in the relationship between two features • Can be on the same scope or cross-scope • Between two separate scope • i.e. Web to Site, Site to Web Application, or Web Application to Farm • Used to guarantee resources or group features together
The Team Collaboration Site Definition Activates 19 features can you name some of them?
Feature Receivers • FeatureInstalled • FeatureUninstalling • FeatureActivated • FeatureDeactivating • Good Reference STSDEV Video with Ted Pattison
Solution Package • Feature.xml and Elements.xml files • Manifest.xml • GUID • Tells feature if it should be deployed on WFE’s, Application Server, etc… • Lists Safe Controls • Diamond Directive File (ddf) • Place to include files and directories for solution package • .Set DestinationDir=Directory • To manually create Feature Package (wsp file):MakeCab.exe /F DeploymentFiles\Test.ddf /D CabinetNameTemplate=Feature.wsp /D DiskDirectory1=wsp
Solution Package • Dynamically create a feature package by creating Test.targets file • Add some xml to point to MakeCab.exe and add command shell • Right click on the solution in Solution Explorer and select “Unload Project” • Right click the project name in solution explorer and select Edit [project name].csproj • Add to end: <Import Project = “DeploymentFiles\Test.targets” /> • Delete all commented xml, but <Target Name=“AfterBuild”></Target> • Add:<Target Name = “AfterBuild”><CallTarget Targets = “Test” /></Target> • Save Changes and Right Click on the project name and choose “Load” (you may see a warning dialog box, ignore it)
Manual Installation and Activation • All Features must be installed before they can be activated • All features must be deactivated before they can be uninstalled, unless scope is farm or web app
Manual Installation and Activation stsadm.exe –o installfeature{-filename <relative path to Feature.xml> | -name <feature folder>} [-force] stsadm.exe –o uninstallfeature {-filename <relative path to Feature.xml> | -name <feature folder> | -id <feature Id>} [-force] stsadm.exe –o activatefeature {-filename <relative path to Feature.xml> | -id <feature id>} [-url <url>] [-force] stsadm.exe –o deactivatefeature {-filename <relative path to Feature.xml> | -id <feature id>} [-url <url>] [-force]
Feature Disadvantages • Before STSDev you had to manually create the manifest, ddf files, feature.xml, elements.xml, solution installer, etc… • Deactivating and retracting features leave artifacts • Not all lists, content types, and columns leave when the feature is turned off • Can still remove items manually • Some people do not like coding only in xml • XML intellisense was just added in the new SDK for SharePoint • There is no debugger • There is no pretty design interface
Feature Advantages • Easy to deploy in multiple environments and sites • Creates items as un-customized • i.e. master pages can reside in one place and include 3 references, rather than normally where SharePoint Designer creates 3 separate master pages • Can control site columns and content types • Harder to track if created individually in user interface • Overall a lot of time is saved, which equals $$
Tools • STSDev • http://www.codeplex.com/stsdev • VSEWSS 1.1 (Visual Studio Extensions for Windows SharePoint Services) • http://www.microsoft.com/downloads/details.aspx?FamilyID=3e1dcccd-1cca-433a-bb4d-97b96bf7ab63&displaylang=en • Andrew Connell CodeRush/Refactor Tool for Developershttp://www.andrewconnell.com/blog/articles/ProductivityToolsForSharePointDevelopers.aspx • SharePoint for Developer's Part 1: http://msdn.microsoft.com/en-us/rampup/dd221355.aspx
References • Professional SharePoint 2007 Developmentby John Holliday, et al. pages 138-158 • Microsoft SharePoint Server 2007 Bible by Wynne Leon, et al. pages 255-283 • Real World SharePoint 2007 b Scot Hillier, et al. pages 96-111 • Professional SharePoint 2007 Web Content Management Development by Andrew Connell pages 63-67
Contact Information • Blog: http://www.mosslover.com • E-Mail: rebecca.isserman@gmail.com • SharePoint Comic: http://www.sharepointcomic.com • Kansas City Office Geeks Site: http://www.officegeeks.org/kcog