1. Proven Practices for Application Lifecycle
Management with SharePoint
Mary Leigh Mackie
maryleigh.mackie@avepoint.com
@mlmackie
2. Session Objectives and Takeaways
• SharePoint Application Lifecycle Management
• Managing and Governing ALM in SharePoint
– Definition and Purpose of Governance
– ALM Governance and Management Challenges
• SharePoint ALM
– Out of the box capabilities
– When to think about additional technology options
• Final Considerations
3. AvePoint: Who We Are
Global Leader -- Microsoft® SharePoint Infrastructure Management
“Clearly AvePoint is making the most of both Microsoft technology and the Microsoft
Partner Network in its quest to create a profitable business.”
– Jon Roskill, Microsoft Corporate Vice President, Worldwide Partner Group
5. SharePoint is an Application:
Application Lifecycle Management!
Development Testing Staging Production
Design Design Design Design
Front-End Front-End Front-End Front-End
Solutions Solutions Solutions Solutions
6. Planning for ALM in SharePoint
SharePoint Development IS an IT Project
• Global change management is required for…
– Platform updates and upgrades
– Branding
– Solutions and customizations: 80-20 Rule
– IA restructuring
– Etc…
Source: Microsoft TechNet, MSDN, and blogs
10. Key Policy Areas of Governance
Project
IT Assurance
Governance
Technology &
Information
Business
Governance
Alignment
Continuous
Improvement
http://www.21apps.com/governance/sharepoint-governance-3-0/
13. Getting the right tools for the job…
• Standard administration
interfaces
– Quotas, locks, permissions,
records management
• Powershell
– Administrative functions,
Data protection
• SharePoint services and
features
– Managed metadata service
for classification
– ISV solutions for
management
Manual
• SharePoint Designer, Visual Automated
Studio
14. Governing Application Management
Strictly managed Loosely Managed
development Development
Customizations must adhere to Rules about development
customization policy, deployments and environments or customizations are
updates tested and rigorously managed. less rigid.
What’s the right balance
for your organization?
Determine customization types you want to allow/disallow, and how to
manage them:
Service level descriptions Approved tools for development
Processes for analyzing customizations Who is responsible for ongoing code
Process for piloting and testing support
customizations Specific policies regarding each
Guidelines for packaging and deploying potential type of customization (done
customizations through the UI or SD)
Guidelines for updating customizations
15. Options for Extending SharePoint
• Custom Code
(Powershell, STSADM,
.NET)
• CodePlex
• Visual Studio
• SharePoint Designer
• 3rd Party products/
services
15
16. Customizations & Branding
• Isolate custom solutions: Sandbox Solutions
– Cannot use certain computer and network resources
– Cannot access content outside the site collection they are deployed
in.
– Can be deployed by a site collection administrator.
– Governed: only a farm administrator can promote a sandboxed
solution to run directly on the farm in full trust.
• Master Pages and Page Layouts
• Themes
• To “Designer” or not to “Designer”
• Separate development, pre-production, and production
environments (keep these environments in sync)
17. Do I Build or Buy? (Or Neither)
Suggested Evaluation Criteria
Evaluate Out of the Box Features FIRST (80% Rule)
• Supportability and Maintenance (IT skill sets, upgrades,
debugging)
• Documentation (including Training and Handover)
• Extensibility
• Impact on Infrastructure (Data Protection SLAs, Storage,
etc)
• Integration with other 3rd parties/customizations
• Cost (of dev or product + training + support, etc) and
ROI
• Risk (Who is accountable?)
18. Challenges with SharePoint development
• Environment setup
• Platform learning curve
• Toolset support
• Team development
• Versioned releases
22. Solution (WSP) Packages
• Used to deploy
custom code
• Contains all files and
Manifest.xml Assembly.dll
deployment
instructions
• WSP extension
WSP – Internally a cabinet file
• Created by Visual
Studio
• Farm or Sandboxed
AppPage.aspx Image.jpg
24. List Improvements
• Scalability and performance
• Relationships
• Validation
• Lookup to multiple columns
• List index auto creation
• List query throttling
• XSLT views
27. Development Environment
• Windows 7/Vista SP1 support
• Must be 64-bit
• Requires min 4GB RAM for Foundation
• SharePoint 2010 must be installed locally
• Wizard installs and configures most things
• Virtualization
28. SharePoint Tools Continuum
Business Analyst/Process Designer/IW/Power User Professional developer
Designer Import
Code workflows
WSP
Web part hook up Package Event receivers
Views & Forms List definitions
Declarative Application pages
Export
workflows
29. VS2010 improvements
• Source control support
• Built-in SharePoint tooling
• F5 debugging
• Visual web parts
• Server Explorer
• Package Designer
• Feature Designer
• Extensible
30. But it’s not perfect
• Backwards compatibility
• .NET 4.0 support
• 64-bit only
• Unit testing
• Web testing
• Accessibility
32. 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
33. Deployment in SharePoint 2010
OOTB Capabilities? What is it missing?
• Deploy / roll-back • Granular control of rights
solutions (packages) (delegation), design
• Activate / deactivate elements, content, and
features customizations
• Export / import site • DLLs, GAC files,
collections, sites, or lists Customizations,
• More VS2010 integration Workflows, IIS
(sandbox) configuration
• Visual upgrade (first
deployment)
35. Moving Between Environments
Out of the Box Capabilities With Third Parties
• Perform change in test • Perform change in test
environment
• Package as solutions
environment
whenever possible • Ability to compare
(VS2010) environments
• Document all changes
• Repeat all changes in • Deploy to appropriate
production environment(s) farm(s)
– STSADM operations (now • Produce report of all
PowerShell scriptable)
– Define appropriate changes
parameters for IIS
– Make other settings and
configuration changes
(VS2010)
38. Dev PC Team Foundation Server
Fix Bugs
(repeat as necessary)
Check In
F5 Deploy
Development
Nightly build
-OR-
Smoke Testing Continuous
Integration
WSP
Check in WSP
Staging Build Server
Bugs
Team Build
Warm-blooded
user testing
Build
WSP
SP2010 DLL’s
Install and Activate [script] Unit Testing
Automated testing
41. Increase Production Reliability
Development Testing Staging Production
• Incorporate Multiple farm approach
• Plan for Global Change Management
Need repeatability to ensure success criteria!
41
42. Load and Performance Testing
• Visual Studio Ultimate
• Stress test code
– Simulating users
• Highlights overuse of
creating new SPSite
objects
• Validates server roles
and hardware
43. Data Protection Requirements
Monitor Health and ensure global protection
• Content DB
• Monitor SharePoint’s health globally
• Search Index
• Hive • Solutions
•
• Web Application
Protect valuable SharePoint assets Content
• GAC • Cust. Features
• Site Collection
– Multiple farms
• Gallery
– Custom solutions • Site Customizations
• Site Definition
– Workflows • List/Library
• Central Admin DB
– Content (even externalized!)
• Folder SharePoint Configurations
– Security structure, • Config DB
• Item/Document
– Wikis, blogs, MySites • Version Externalized Data (BLOB)
– Metadata • IIS Metabase
• Metadata
• IIS Settings
System Configurations
• Simplify Restore process • Web.Config
• InetPub Binary File (OS /
• Maintain failover environment? SharePoint)