application lifecycle management in sharepoint 2010 jeremy thake

Post on 23-Dec-2015

223 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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.comgplus.to/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/

top related