application lifecycle management in sharepoint 2010
DESCRIPTION
Jeremy Thake, Enterprise Architect at AvePoint Inc and SharePoint MVP, will explain the principles of Application Lifecycle Management in SharePoint 2010. The session will suit SharePoint Developers, Team Leaders, Architects and Development Managers to understand how to approach ALM with SharePoint. The pillars of ALM will be discussed in detail and the benefits of each from a Solution perspective. The ALM maturity model will be presented to allow you to evaluate where you are in your own internal processes and how to mature these further. The NothingButSharePoint.com Project ALM approach will be discussed in detail as a case study, which involves global distributed development teams and designers. The pros and cons of this approach will be compared to the others. Common problems with promoting from Dev to Staging to Production will be discussed in detail. From this session you should walk away with: · An understanding of what application lifecycle management is · An understanding of the approaches to ALM with SharePoint Development · An understanding of how to get started with baby steps as a SharePoint Developer, Team Leader or Solution ArchitectTRANSCRIPT
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
[email protected]/jthake@jthake
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 active
SPDevWikiV1.0.0.0
SPDevWikiV2.0.0.0
SITE A SITE B SITE C
SPDevWikiV3.0.0.0
SPDevWikiV3.0.0.0
SPDevWikiV1.0.0.0
SPDevWikiV2.0.0.0
SPDevWikiV3.0.0.0
SPDevWikiV3.0.0.0
Automated Builds
Build Process
Build Process
Dev PC
Development
Smoke Testing
F5
Dep
loy
Team Foundation Server
Check In
Staging
Automated testing
Warm-bloodeduser testing
Build Server
Team Build
SP2010 DLL’s
Build
Unit Testing
Fix Bugs(repeat as necessary)
Nightly build
-OR-
Continuous Integration
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 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
NOTHINGBUTSHAREPOINT.COMCase 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 (www.fiddler2.com)• SharePoint Manager 2010 (bit.ly/4dtX5A)
Q&A
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