Application Lifecycle Management in SharePoint 2010 Jeremy Thake
Enterprise Architect – AvePoint SharePoint MVP since July ‘10 Founded SharePointDevWiki.com Co-founder of NothingButSharePoint.com Speaker at MS TechEd 2009/10, SPC 11
Agenda What ALM is Approaches to ALM ALM Maturity Model Getting started Case Study
WHAT IS ALM?
Application Lifecycle Management (ALM) is a continuous process of managing the life of an application through governance, development and maintenance. WikiPedia
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
Three aspects of ALM David Chappell (2008)
Governance David Chappell (2008)
Development David Chappell (2008)
Operations David Chappell (2008)
Focus for today…development Requirements management Architecture Coding Testing Tracking Release management
APPROACHES OF ALM
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
Coding Source Control – “Copy of” projects – No source code for a build (labeling) – Branching – Shelving
Coding Code Analysis – Consistent code Naming standards Casing Formatting – Disposing correctly – Defensive coding – Readable coding
Coding Debugging – Breakpoints in code – Inspecting live objects – Prevents debug statements throughout code unnecessary logging whilst in development that stays
Testing Unit Testing Integration Testing Web Testing Lab Management
Tracking Tasks Issues Bugs Risks
Release management Continuous Integration Automation! – release packages – unit testing – code analysis – build numbers Red/Green – Don’t break the build!
Artifact Provisioning
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
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
One farm, many feature versions activeSPDevWikiV SPDevWikiV SITE A SITE B SITE C SPDevWikiV SPDevWikiV SPDevWiki V SPDevWiki V SPDevWiki V SPDevWikiV
Automated Builds
Build Process
Dev PC Development Smoke Testing F5 Deploy Team Foundation Server Check In Staging Automated testing Warm-blooded user testing Build Server Team Build SP2010 DLL’s Build Unit Testing Fix Bugs (repeat as necessary) Nightly build -OR-ContinuousIntegration Check in WSP Install and Activate [script] Bugs WSP WSP
Unit and Integration Testing No interfaces Integration Tiered layer development Design Patterns TypeMock Isolator and Moles/Pex
Load and Performance Testing Visual Studio Ultimate Stress test code – Simulating users Highlights overuse of creating new SPSite objects Validates server roles and hardware
ALM MATURITY MODEL
Where are you? No Source Control Source control Automated Builds Automated Testing Automated Deployment
GETTING STARTED
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!
Visual Studio 2010
Things to know It doesn’t work out of the box ;-) – Need to put assemblies on TFS server SharePoint/TFS Continuous Integration Starter Pack
The cheaper Source control – TortoiseHg and Mercurial Continuous Integration – JetBrains Team City
NOTHINGBUTSHAREPOINT.COM Case study
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
Additional Tools Developer Dashboard stsadm -o setproperty -pn developer-dashboard -pv ondemand SPDisposeCheck (bit.ly/iiE3D6) VS2010 SharePoint Power Tools (bit.ly/hmx9hS) CKS:Dev (bit.ly/4Gpju2) WSPBuilder 2010 (bit.ly/c5HtIZ) Fiddler ( SharePoint Manager 2010 (bit.ly/4dtX5A)
Q&A
References My Links – Webcast – Introducing SharePoint 2010 (SP2010) Development to ALM (VS2010 and TFS2010) Introducing SharePoint 2010 (SP2010) Development to ALM (VS2010 and TFS2010 SharePoint 2010 – SharePoint ALM resource center – SharePoint Patterns & Practices Group (SPG) – FREE conference videos & slides – – 4cb9-9fbc-3abcdf6afeaf 4cb9-9fbc-3abcdf6afeaf SPDisposeCheckStatic Rules –
References What is application lifecycle management by David Chappell What is application lifecycle management by David Chappell WikiPedia – ALM Microsoft Visual Studio 2010 TFS