Ep structured share point development - v.4


Published on

SharePoint architecture
Review typical SharePoint Development
SharePoint customization vs development
Development with SharePoint Features
Deployment using WSS solution packages
Tips and tricks to SharePoint development

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Ep structured share point development - v.4

  1. 1. A Structured / Repeatable Approach to Building SharePoint Solutions <br />Ivan Sanders<br />SharePoint ArchitectDimension Solutions inc.<br />ivan@dimension-si.com<br />
  2. 2. Agenda<br />SharePoint architecture<br />Review typical SharePoint Development<br />SharePoint customization vs development<br />Development with SharePoint Features<br />Deployment using WSS solution packages<br />Tips and tricks to SharePoint development<br />
  3. 3. SharePoint Architecture<br />SharePoint v4 built on top of .NET 3.5<br />Majority of SharePoint files installedwithin SharePoint “14” RootFolder<br />Each SharePoint Web applicationhas its own Web root on file system<br />File system of SharePoint sites is virtualized<br />Many pages and files map to files on the file system<br />But not all…<br />
  4. 4. Templates Versus Instances Concept <br />Files in a site exist in the siteobject model as SPFile objects<br />All files live within folders (SPFolder)<br />Customized versus uncustomized files<br />Uncustomized file – source on the file system<br />Customized file – source in sites content DB<br />Customization appliesonly to site pages and files<br />Application pages (/_layouts/*) don’t apply<br />
  5. 5. File Source Retrieval Process<br />SharePoint Designer<br />Browser/Web Services<br />SharePoint(HTTP Application/Modules/Handlers)<br />Source of the file is retrieved… first <br />the content database is checked<br />SPFile<br />http://foo/somePage.aspx<br />* if file is uncustomized, underlying template is fetched<br />File template/definition<br />[ .. ]12TEMPLATEFEATURESSomeFeaturePageTemplate.aspx<br />
  6. 6. Typical Site Development<br />Infrastructure assets<br />Create site column andcontent types via browser<br />Layout assets<br />Create master pages and pagelayouts with SharePoint Designer 2010<br />Modify look and feel, adding CSS and images using SharePoint Designer 2010<br />
  7. 7. "Big Picture" Challenges<br />How do you make this development process repeatable? How to automate it?<br />What about source control?<br />SharePoint has version control on lists and libraries<br />No version control for infrastructure assets<br />No version control for site pages and files<br />What about a true softwaredevelopment lifecycle process?<br />What about change management process?<br />
  8. 8. SharePoint Customization<br />Creating and editing instances of assetsthat live exclusively in the site’s content DB<br />Even if originally based off a template,source still lives in content DB<br />Tools used in SharePoint customization<br />SharePoint API <br />SharePoint browser interface<br />SharePoint Designer 2010<br />
  9. 9. SharePoint Customization<br />Advantages<br />Plenty of resources documenting the process<br />WYSIWYG developmentwith SharePoint Designer 2010<br />Easily make changes in multiple environments<br />Disadvantages<br />Site columns and content types arenot easily moved between environments<br />Challenging to package and deploy<br />New files and changes to existing files<br />Multiple environments<br />
  10. 10. Challenges In Creating Publishing Sites<br />Publishing sites exacerbate the challenges<br />All projects require sharing assets<br />Between developers on project team<br />Between environments (Dev/QA/UAT/Prod)<br />How to move asset change to other environments?<br />Manually move infrastructure and layout assets<br />Backup/restore (*** bad badbad option! ***)<br />Content deployment<br />Does not promote code reuse!<br />
  11. 11. SharePoint Development<br />Goals<br />Developers work at a lower level (file system)<br />Keep infrastructure/layout assets out of DB<br />Developers DevelopersDevelopers<br />SharePoint Feature schemaallows creation of all kinds of assets<br />Upon activation, Feature creates uncustomized instances in the site<br />SharePoint solutions enable packagingof Features in one portable file<br />
  12. 12. SP DevelopmentDisadvantages<br />SharePoint Features are tedious to build<br />No visual designer<br />Lots of CAML (XML) markup<br />Minimal debugging support<br />Provisioning files requires double development (but does it)<br />Feature deactivation leaves artifacts (Can this be avoided)<br />Current tools do not promote this approach (Tooling)<br />
  13. 13. SP DevelopmentAdvantages<br />Developers stay in Visual Studio<br />Keeps layout files uncustomized on server<br />Easy to package changes in order to<br />Share with other members on project dev team<br />Deploy to other environments<br />Fully leverage existing SCM solutions<br />Easier to adhere to SDL and change control<br />Full control of site columns and content types<br />Avoiding the _x0020_ in site columns!<br />
  14. 14. Structured SharePoint Solution Development<br />Demo…<br />
  15. 15. Tips And Tricks To SP Dev<br />Add CAML IntelliSense to Visual Studio<br />via Visual Studio XML Schema Cache<br />Using existing tools as IDE, then “Featurize”<br />Use browser for site column and content types<br />Use SharePoint Designer 2010 to createmaster pages and page layouts faster<br />Utilize SharePoint API to extract assets<br />STSADM.EXE Custom Commands<br />VSeWSS 1.3<br />Automate process of building WSP’s<br />WSPBuilder<br />
  16. 16. Third Party Tools & Demos<br />Stramit.CamlViewer2010<br />Beyond Compare 2<br />Elumenotion SharePoint Skinner<br />AFR<br />SharePoint_Tips_Utility_Pack<br />SPContentDeploymentWizard<br />Fiddler2<br />SharePoint Manager 2010<br />Visual Studio 2008 SP1 – VSTA, VSTO, SharePoint SDKs, Windows SDK<br />ColorPic<br />Bewise.SharePoint.QuickLaunch<br />Bewise.View.Permissions<br />PowerISO<br />WildCard Search<br />Faceted Search<br />Cascading Lookup Columns<br />