Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Acing application lifecycle management in SharePoint

2,359 views

Published on

Published in: Technology
  • Hi there! Get Your Professional Job-Winning Resume Here - Check our website! http://bit.ly/resumpro
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

Acing application lifecycle management in SharePoint

  1. 1. Acing Application Life Cycle Management in SharePoint Jeremy Thake Chief Architect Level: Intermediate
  2. 2. Jeremy ThakeAvePoint LabsAuthor Chief Architect
  3. 3. Agenda• What ALM is• Approaches to ALM• ALM Maturity Model• Getting started• Case Study
  4. 4. What is ALM?
  5. 5. Application Lifecycle Management (ALM) is a continuous process of managing the life of an application through governance, development and maintenance.WikiPedia
  6. 6. ALM is the marriage of business management to software engineering made possible by tools that facilitate and integrate requirements management, architecture, coding, testing, tracking, and release management.WikiPedia
  7. 7. Three aspects of ALMDavid Chappell (2008)
  8. 8. GovernanceDavid Chappell (2008)
  9. 9. DevelopmentDavid Chappell (2008)
  10. 10. OperationsDavid Chappell (2008)
  11. 11. Focus for today…development• Requirements management• Architecture• Coding• Testing• Tracking• Release management
  12. 12. APPROACHES OFALM
  13. 13. Today’s poll question• I am developing Visual Studio SharePoint projects• I am packaging all custom code as a WSP• I am using source control• I am using a build server• I am using SPDisposeCheck• I am doing unit testing
  14. 14. Coding• Source Control – “Copy of” projects – No source code for a build (labeling) – Branching – Shelving
  15. 15. Coding• Code Analysis – Consistent code Naming standards Casing Formatting – Disposing correctly – Defensive coding – Readable coding
  16. 16. Coding• Debugging – Breakpoints in code – Inspecting live objects – Prevents debug statements throughout code unnecessary logging whilst in development that stays
  17. 17. Testing• Unit Testing• Integration Testing• Web Testing• Lab Management
  18. 18. Tracking• Tasks• Issues• Bugs• Risks
  19. 19. Release management• Continuous Integration• Automation! – release packages – unit testing – code analysis – build numbers• Red/Green – Don’t break the build!
  20. 20. ArtifactProvisioning
  21. 21. Declarative vs. Imperative• Declaratively – Provision some artifacts – SPI’s built into Visual Studio• Imperatively – Provision / de-provision all – Run class methods – Easier to debug & test – Defensive coding – Code samples – Wrapper classes
  22. 22. SharePoint Designer• Promotion between environments• Should certain artifacts be packaged as a WSP?• Manual copying and pasting files• Restricting use by policy• Using third party tools to manage deployments
  23. 23. One farm, many feature versions active SITE A SITE B SITE C SPDevWiki SPDevWiki SPDevWiki V1.0.0.0 V3.0.0.0 V3.0.0.0 V2.0.0.0 V3.0.0.0 SPDevWiki SPDevWiki SPDevWiki V1.0.0.0 V2.0.0.0 V3.0.0.0
  24. 24. App Model• Code executed off SharePoint• Can be any language executed on any web server• Client-side object model executed on pages hosted in SharePoint
  25. 25. Automated Builds
  26. 26. Build Process
  27. 27. Build Process
  28. 28. Unit and Integration Testing• No interfaces• Integration• Tiered layer development• Design Patterns• TypeMock Isolator, Moles/Pex, SharePoint Emulator
  29. 29. Load and Performance Testing• Visual Studio Ultimate• Stress test code – Simulating users• Highlights overuse of creating new SPSite objects• Validates server roles and hardware
  30. 30. ALM MaturityModel
  31. 31. Where are you? Automated Testing Automated Deployment Automated Source Builds control No Source Control
  32. 32. GETTINGSTARTED
  33. 33. The Microsoft approach• Visual Studio 2010 Team System – Visual Studio 2010 – Team Foundation Server 2010 – Test Professional 2010 – Project Server 2010• ALL INTEGRATED• TFS in the cloud is coming!
  34. 34. Visual Studio 2010
  35. 35. TFS 2012 and SharePoint 2013• Supported now• http://blog.hinshelwood.com/integrate- sharepoint-2013-with-team-foundation- server-2012/
  36. 36. SharePoint 2010 Build server• It doesn’t work out of the box ;-) – Need to put assemblies on TFS server http://msdn.microsoft.com/en-us/ff622991.aspx• SharePoint/TFS Continuous Integration Starter Pack http://sharepointci.codeplex.com/
  37. 37. SharePoint 2013 Build Server• SharePoint Server 2013 Client Components SDK Preview – http://www.microsoft.com/en- us/download/details.aspx?id=30355• Microsoft Windows SDK for Windows 7 and .NET Framework 4 – http://www.microsoft.com/en- us/download/details.aspx?id=8279
  38. 38. The cheaper• Source control – TortoiseHg and Mercurial• Continuous Integration – JetBrains Team City
  39. 39. NothingButsharepoint.comCase study
  40. 40. Approach• BitBucket.org – $10 a month for a mercurial solution• No automated builds – as I do releases...but from Source Code• Using AvePoint’s DocAve Deployment Manager to deploy from Dev to Test to Production
  41. 41. Additional Tools• Developer Dashboard stsadm -o setproperty -pn developer-dashboard -pv ondemand• Microsoft.SharePoint.Emulators (NuGet)• SPDisposeCheck (bit.ly/iiE3D6)• VS2010 SharePoint Power Tools (bit.ly/hmx9hS)• CKS:Dev (bit.ly/4Gpju2)• Fiddler (www.fiddler2.com)• SharePoint Manager 2010 (bit.ly/4dtX5A)
  42. 42. Q&A Jeremy Thake www.jeremythake.com www.NothingButSharePoint.com jeremy.thake@avepoint.com @jthake www.linkedin.com/in/jeremythake

×