Agenda• What ALM is• Approaches to ALM• ALM Maturity Model• Getting started• Case Study
WHAT IS ALM?
Application Lifecycle Management (ALM) is acontinuous process of managing the life of anapplication through governance, developmentand maintenance.WikiPedia
ALM is the marriage of business managementto software engineering made possible by toolsthat facilitate and integrate requirementsmanagement, architecture, coding, testing,tracking, and release management.WikiPedia
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
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 active SITE A SITE B SITE C SPDevWiki SPDevWiki SPDevWiki V22.214.171.124 V126.96.36.199 V188.8.131.52 V184.108.40.206 V220.127.116.11SPDevWiki SPDevWiki SPDevWikiV18.104.22.168 V22.214.171.124 V126.96.36.199
Dev PC Team Foundation Server Fix Bugs (repeat as necessary) Check In F5 Deploy Development Nightly build -OR- Smoke Testing Continuous Integration WSP Check in WSP Staging Build Server Bugs Team Build Warm-blooded user testing Build WSP SP2010 DLL’s Install and Activate [script] Unit TestingAutomated testing
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? Automated Automated Testing Deployment Automated Builds Source controlNoSourceControl
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 http://msdn.microsoft.com/en-us/ff622991.aspx• SharePoint/TFS Continuous Integration Starter Pack http://sharepointci.codeplex.com/
The cheaper• Source control – TortoiseHg and Mercurial• Continuous Integration – JetBrains Team City
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
The After-Party: SharePint Karl Strauss Brewing Company 1157 Columbia Street San Diego, CA 92101 Phone: 619-234-2739Immediately following event closing & prize drawings (@6:30 pm) Directions (.9 miles): 1. Head northeast on 1st Ave 2. Turn left onto W B St 3. Turn left onto Columbia St Karl Strauss will be on the left
Thank our SponsorsPlease be sure to fill out your session evaluation!
References• My Links – http://delicious.com/jthake/alm+sharepoint• Webcast – Introducing SharePoint 2010 (SP2010) Development to ALM (VS2010 and TFS2010) – Feature upgrade in SharePoint 2010• SharePoint 2010 – http://sharepoint.microsoft.com/• SharePoint ALM resource center – http://msdn.microsoft.com/en-us/sharepoint/dd552992• SharePoint Patterns & Practices Group (SPG) – http://msdn.microsoft.com/en-us/library/ff770300.aspx• FREE conference videos & slides – http://msdn.microsoft.com/en-us/sharepoint/ff405669.aspx – http://www.microsoft.com/downloads/details.aspx?FamilyID=f8cb362c-75ad-4cb9-9fbc- 3abcdf6afeaf• SPDisposeCheckStatic Rules – http://spdisposecheckstatic.codeplex.com/
References• What is application lifecycle management by David Chappell• WikiPedia – ALM• Microsoft Visual Studio 2010 TFS