5. Application Lifecycle Management (ALM) is a
continuous process of managing the life of
an application through governance,
development and maintenance.
WikiPedia
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
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. Coding
• Source Control
– “Copy of” projects
– No source code for a build (labeling)
– Branching
– Shelving
16. Coding
• Debugging
– Breakpoints in code
– Inspecting live objects
– Prevents
debug statements throughout code
unnecessary logging whilst in development that stays
17. Testing
• Unit Testing
• Integration Testing
• Web Testing
• Lab Management
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. 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. 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. 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
28. Unit and Integration Testing
• No interfaces
• Integration
• Tiered layer development
• Design Patterns
• TypeMock Isolator, Moles/Pex, SharePoint
Emulator
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
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!
35. TFS 2012 and SharePoint 2013
• Supported now
• http://blog.hinshelwood.com/integrate-
sharepoint-2013-with-team-foundation-
server-2012/
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. 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. The cheaper
• Source control
– TortoiseHg and Mercurial
• Continuous Integration
– JetBrains Team City
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
42. Q&A
Jeremy Thake
www.jeremythake.com
www.NothingButSharePoint.com
jeremy.thake@avepoint.com
@jthake
www.linkedin.com/in/jeremythake
Hinweis der Redaktion
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)
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.