420 likes | 602 Views
Application Lifecycle Management in SharePoint 2010. Jeremy Thake. 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 jeremy.thake@avepoint.com
E N D
Application Lifecycle Management in SharePoint 2010 Jeremy Thake
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 jeremy.thake@avepoint.com gplus.to/jthake @jthake
Agenda • What ALM is • Approaches to ALM • ALM Maturity Model • Getting started • Case Study
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
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!
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 B SITE C SITE A SPDevWiki V3.0.0.0 SPDevWiki V3.0.0.0 SPDevWiki V1.0.0.0 SPDevWiki V3.0.0.0 SPDevWiki V2.0.0.0 SPDevWiki V1.0.0.0 SPDevWiki V2.0.0.0 SPDevWiki V3.0.0.0
Dev PC Team Foundation Server Fix Bugs (repeat as necessary) Check In Development F5 Deploy Nightly build -OR- Continuous Integration Smoke Testing Check in WSP Staging Build Server Bugs Team Build Warm-blooded user testing WSP WSP Build SP2010 DLL’s Unit Testing Install and Activate [script] Automated 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 SPSiteobjects • Validates server roles and hardware
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!
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 • JetBrainsTeam City
Case study NothingButsharepoint.com
Approach • BitBucket.org • $10 a month for a mercurial solution • No automated builds • as I do releases...but from Source Code • Using AvePoint’sDocAve Deployment Manager to deploy from Dev to Test to Production
Additional Tools • Developer Dashboard stsadm-o setproperty -pndeveloper-dashboard -pvondemand • SPDisposeCheck(bit.ly/iiE3D6) • VS2010 SharePoint Power Tools (bit.ly/hmx9hS) • CKS:Dev(bit.ly/4Gpju2) • WSPBuilder2010 (bit.ly/c5HtIZ) • Fiddler (www.fiddler2.com) • SharePoint Manager 2010 (bit.ly/4dtX5A)
References • My Links • http://delicious.com/jthake/alm+sharepoint • Webcast • Introducing SharePoint 2010 (SP2010) Development to ALM (VS2010 and TFS2010) • 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