application lifecycle management in sharepoint

44
Application Lifecycle Management in SharePoint Jeremy Thake

Upload: jeremy-thake

Post on 01-Jun-2015

4.094 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Application lifecycle management in SharePoint

Application Lifecycle Management in SharePoint

Jeremy Thake

Page 2: Application lifecycle management in SharePoint

© 2012 AvePoint, Inc. All rights reserved. No part of this may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written consent of AvePoint, Inc.

SpeakerAuthor

AvePoint Labs

Chief ArchitectText/Icon/Pic

Jeremy Thake

@[email protected]

Page 3: Application lifecycle management in SharePoint

Agenda

• What ALM is• Approaches to ALM • ALM Maturity Model• Getting started• Case Study

Page 4: Application lifecycle management in SharePoint

WHAT IS ALM?

Page 5: Application lifecycle management in SharePoint

Application Lifecycle Management (ALM) is a continuous process of managing the life of an application through governance, development and maintenance.

WikiPedia

Page 6: Application lifecycle management in SharePoint

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

Page 7: Application lifecycle management in SharePoint

Three aspects of ALM

David Chappell (2008)

Page 8: Application lifecycle management in SharePoint

Governance

David Chappell (2008)

Page 9: Application lifecycle management in SharePoint

Development

David Chappell (2008)

Page 10: Application lifecycle management in SharePoint

Operations

David Chappell (2008)

Page 11: Application lifecycle management in SharePoint

Focus for today…development

• Requirements management• Architecture• Coding• Testing• Tracking• Release management

Page 12: Application lifecycle management in SharePoint

APPROACHES OF ALM

Page 13: Application lifecycle management in SharePoint

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

Page 14: Application lifecycle management in SharePoint

Coding

• Source Control– “Copy of” projects– No source code for a build (labeling)– Branching– Shelving

Page 15: Application lifecycle management in SharePoint

Coding

• Code Analysis– Consistent code

• Naming standards• Casing• Formatting

– Disposing correctly– Defensive coding– Readable coding

Page 16: Application lifecycle management in SharePoint

Coding

• Debugging– Breakpoints in code– Inspecting live objects– Prevents

• debug statements throughout code• unnecessary logging whilst in development that stays

Page 17: Application lifecycle management in SharePoint

Testing

• Unit Testing• Integration Testing• Web Testing• Lab Management

Page 18: Application lifecycle management in SharePoint

Tracking

• Tasks• Issues• Bugs• Risks

Page 19: Application lifecycle management in SharePoint

Release management

• Continuous Integration• Automation!

– release packages– unit testing– code analysis– build numbers

• Red/Green– Don’t break the build!

Page 20: Application lifecycle management in SharePoint

Artifact Provisioning

Page 21: Application lifecycle management in SharePoint

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

Page 22: Application lifecycle management in SharePoint

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

Page 23: Application lifecycle management in SharePoint

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

Page 24: Application lifecycle management in SharePoint

Automated Builds

Page 25: Application lifecycle management in SharePoint

Build Process

Page 26: Application lifecycle management in SharePoint

Build Process

Page 27: Application lifecycle management in SharePoint

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

Page 28: Application lifecycle management in SharePoint

Unit and Integration Testing

• No interfaces• Integration• Tiered layer development• Design Patterns• TypeMock Isolator and Moles/Pex

Page 29: Application lifecycle management in SharePoint

Load and Performance Testing

• Visual Studio Ultimate• Stress test code

– Simulating users• Highlights overuse of

creating new SPSite objects

• Validates server roles and hardware

Page 30: Application lifecycle management in SharePoint

ALM MATURITY MODEL

Page 31: Application lifecycle management in SharePoint

Where are you?

No Source Control

Source control

Automated Builds

Automated Deployment

Automated Testing

Page 32: Application lifecycle management in SharePoint

GETTING STARTED

Page 33: Application lifecycle management in SharePoint

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!

Page 34: Application lifecycle management in SharePoint

Visual Studio 2010

Page 35: Application lifecycle management in SharePoint

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/

Page 36: Application lifecycle management in SharePoint

The cheaper

• Source control– TortoiseHg and Mercurial

• Continuous Integration– JetBrains Team City

Page 37: Application lifecycle management in SharePoint

NOTHINGBUTSHAREPOINT.COMCase study

Page 38: Application lifecycle management in SharePoint

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

Page 39: Application lifecycle management in SharePoint

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)

Page 40: Application lifecycle management in SharePoint

Q&A

Page 41: Application lifecycle management in SharePoint

The After-Party: SharePint

Karl Strauss Brewing Company 1157 Columbia Street San Diego, CA 92101Phone: 619-234-2739

Immediately following event closing & prize drawings (@6:30 pm)

Directions (.9 miles):1. Head northeast on 1st Ave2. Turn left onto W B St 3. Turn left onto Columbia StKarl Strauss will be on the left

Page 42: Application lifecycle management in SharePoint

Thank our Sponsors

Please be sure to fill out your session evaluation!

Page 43: Application lifecycle management in SharePoint

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/