Acing Application Life Cycle Management in SharePoint                  Jeremy Thake                    Chief Architect    ...
Jeremy ThakeAvePoint LabsAuthor                  Chief Architect
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...
ALM is the marriage of business  management to software engineering made  possible by tools that facilitate and integrate ...
Three aspects of ALMDavid Chappell (2008)
GovernanceDavid Chappell (2008)
DevelopmentDavid Chappell (2008)
OperationsDavid Chappell (2008)
Focus for today…development•   Requirements management•   Architecture•   Coding•   Testing•   Tracking•   Release managem...
APPROACHES OFALM
Today’s poll question•   I am developing Visual Studio SharePoint    projects•   I am packaging all custom code as a WSP• ...
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   ...
Coding•   Debugging    – Breakpoints in code    – Inspecting live objects    – Prevents      debug statements throughout c...
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    ...
ArtifactProvisioning
Declarative vs. Imperative•   Declaratively    – Provision some artifacts    – SPI’s built into Visual Studio•   Imperativ...
SharePoint Designer•   Promotion between environments•   Should certain artifacts be packaged as a    WSP?•   Manual copyi...
One farm, many feature versions active        SITE A                  SITE B        SITE C        SPDevWiki               ...
App Model•   Code executed off SharePoint•   Can be any language executed on any web    server•   Client-side object model...
Automated  Builds
Build Process
Build Process
Unit and Integration Testing•   No interfaces•   Integration•   Tiered layer development•   Design Patterns•   TypeMock Is...
Load and Performance Testing•   Visual Studio Ultimate•   Stress test code    – Simulating users•   Highlights overuse of ...
ALM MaturityModel
Where are you?                                                Automated                                                Tes...
GETTINGSTARTED
The Microsoft approach•   Visual Studio 2010 Team System    – Visual Studio 2010    – Team Foundation Server 2010    – Tes...
Visual Studio 2010
TFS 2012 and SharePoint 2013•   Supported now•   http://blog.hinshelwood.com/integrate-    sharepoint-2013-with-team-found...
SharePoint 2010 Build server•   It doesn’t work out of the box ;-)    – Need to put assemblies on TFS server      http://m...
SharePoint 2013 Build Server•   SharePoint Server 2013 Client    Components SDK Preview    – http://www.microsoft.com/en- ...
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 fro...
Additional Tools•   Developer Dashboard     stsadm -o setproperty -pn developer-dashboard -pv    ondemand•   Microsoft.Sha...
Q&A      Jeremy Thake      www.jeremythake.com      www.NothingButSharePoint.com      jeremy.thake@avepoint.com      @jtha...
Upcoming SlideShare
Loading in...5
×

Acing application lifecycle management in SharePoint

1,538

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,538
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
22
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Like a human life, an application’s lifecycle is demarcated by significant events. It begins with an idea: Why don’t we build something that does this? Once the application is created, the next big event is deployment, when the application goes into production. And finally, when it no longer has business value, the application reaches end of life and is removed from service.
  • Devs“It works on my machine”“Can’t find the source control for this version”“Haven’t got the source control”“I’ve made changes in SharePoint Root”“I copied it to the GAC manually”Admins“We don’t know where to deploy it!”“What version is in Production?”
  • Automate building of WSPEnforce that all artefacts get deployed via WSP.No manual copying of files to SharePoint RootDisaster RecoveryCheck in policyBuild StampingBuild ServerSeparate serverDon’t install SharePoint on it!Get administrators to push to environments…or automate it (PowerShell 2.0 remoting)
  • http://msdn.microsoft.com/en-us/library/dd293540.aspx
  • SharePoint is now a part of the toolset out of the gates!
  • http://www.cruisecontrolnet.org/projects/ccnet/wiki
  • Sandboxed-compatible Visual Web Part This item template enables you to use a visual designer to create SharePoint web parts that can be deployed in a SharePoint 2010 sandboxed solution.Sandboxed Compilation This extension displays build errors when you use types or members in a SharePoint 2010 sandboxed project which are not allowed in the SharePoint sandbox environment.
  • Acing application lifecycle management in SharePoint

    1. 1. Acing Application Life Cycle Management in SharePoint Jeremy Thake Chief Architect Level: Intermediate
    2. 2. Jeremy ThakeAvePoint LabsAuthor Chief Architect
    3. 3. Agenda• What ALM is• Approaches to ALM• ALM Maturity Model• Getting started• Case Study
    4. 4. What is ALM?
    5. 5. Application Lifecycle Management (ALM) is a continuous process of managing the life of an application through governance, development and maintenance.WikiPedia
    6. 6. 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
    7. 7. Three aspects of ALMDavid Chappell (2008)
    8. 8. GovernanceDavid Chappell (2008)
    9. 9. DevelopmentDavid Chappell (2008)
    10. 10. OperationsDavid Chappell (2008)
    11. 11. Focus for today…development• Requirements management• Architecture• Coding• Testing• Tracking• Release management
    12. 12. APPROACHES OFALM
    13. 13. 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
    14. 14. Coding• Source Control – “Copy of” projects – No source code for a build (labeling) – Branching – Shelving
    15. 15. Coding• Code Analysis – Consistent code Naming standards Casing Formatting – Disposing correctly – Defensive coding – Readable coding
    16. 16. Coding• Debugging – Breakpoints in code – Inspecting live objects – Prevents debug statements throughout code unnecessary logging whilst in development that stays
    17. 17. Testing• Unit Testing• Integration Testing• Web Testing• Lab Management
    18. 18. Tracking• Tasks• Issues• Bugs• Risks
    19. 19. Release management• Continuous Integration• Automation! – release packages – unit testing – code analysis – build numbers• Red/Green – Don’t break the build!
    20. 20. ArtifactProvisioning
    21. 21. 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
    22. 22. 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
    23. 23. One farm, many feature versions active SITE A SITE B SITE C SPDevWiki SPDevWiki SPDevWiki V1.0.0.0 V3.0.0.0 V3.0.0.0 V2.0.0.0 V3.0.0.0 SPDevWiki SPDevWiki SPDevWiki V1.0.0.0 V2.0.0.0 V3.0.0.0
    24. 24. App Model• Code executed off SharePoint• Can be any language executed on any web server• Client-side object model executed on pages hosted in SharePoint
    25. 25. Automated Builds
    26. 26. Build Process
    27. 27. Build Process
    28. 28. Unit and Integration Testing• No interfaces• Integration• Tiered layer development• Design Patterns• TypeMock Isolator, Moles/Pex, SharePoint Emulator
    29. 29. Load and Performance Testing• Visual Studio Ultimate• Stress test code – Simulating users• Highlights overuse of creating new SPSite objects• Validates server roles and hardware
    30. 30. ALM MaturityModel
    31. 31. Where are you? Automated Testing Automated Deployment Automated Source Builds control No Source Control
    32. 32. GETTINGSTARTED
    33. 33. 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!
    34. 34. Visual Studio 2010
    35. 35. TFS 2012 and SharePoint 2013• Supported now• http://blog.hinshelwood.com/integrate- sharepoint-2013-with-team-foundation- server-2012/
    36. 36. SharePoint 2010 Build server• 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/
    37. 37. SharePoint 2013 Build Server• SharePoint Server 2013 Client Components SDK Preview – http://www.microsoft.com/en- us/download/details.aspx?id=30355• Microsoft Windows SDK for Windows 7 and .NET Framework 4 – http://www.microsoft.com/en- us/download/details.aspx?id=8279
    38. 38. The cheaper• Source control – TortoiseHg and Mercurial• Continuous Integration – JetBrains Team City
    39. 39. NothingButsharepoint.comCase study
    40. 40. 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
    41. 41. Additional Tools• Developer Dashboard stsadm -o setproperty -pn developer-dashboard -pv ondemand• Microsoft.SharePoint.Emulators (NuGet)• SPDisposeCheck (bit.ly/iiE3D6)• VS2010 SharePoint Power Tools (bit.ly/hmx9hS)• CKS:Dev (bit.ly/4Gpju2)• Fiddler (www.fiddler2.com)• SharePoint Manager 2010 (bit.ly/4dtX5A)
    42. 42. Q&A Jeremy Thake www.jeremythake.com www.NothingButSharePoint.com jeremy.thake@avepoint.com @jthake www.linkedin.com/in/jeremythake
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×