SlideShare une entreprise Scribd logo
1  sur  42
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.com
          gplus.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, trac
king, 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

      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
Automated Builds
Build Process
Build Process
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
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?


                                            Automated
                                Automated   Deployment
                                Testing
                    Automated
                    Builds
          Source
          control

No
Source
Control
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
Case study

NOTHINGBUTSHAREPOINT.COM
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/
References

• What is application lifecycle management by
  David Chappell
• WikiPedia – ALM
• Microsoft Visual Studio 2010 TFS

Contenu connexe

En vedette

SAP HANA SPS08 Platform Lifecycle Management
SAP HANA SPS08 Platform Lifecycle ManagementSAP HANA SPS08 Platform Lifecycle Management
SAP HANA SPS08 Platform Lifecycle Management SAP Technology
 
Solving the Automation Puzzle - how to select the right automation framework ...
Solving the Automation Puzzle - how to select the right automation framework ...Solving the Automation Puzzle - how to select the right automation framework ...
Solving the Automation Puzzle - how to select the right automation framework ...Ori Bendet
 
SAP TechED Las Vegas 2016- OEM Partnesr SAP HANA Platform Agenda
SAP TechED Las Vegas 2016- OEM Partnesr SAP HANA Platform Agenda SAP TechED Las Vegas 2016- OEM Partnesr SAP HANA Platform Agenda
SAP TechED Las Vegas 2016- OEM Partnesr SAP HANA Platform Agenda Shivakumar Vishwanath
 
IDC Infobrief- Unleash the opportunities in the Cloud with SAP Partner Manage...
IDC Infobrief- Unleash the opportunities in the Cloud with SAP Partner Manage...IDC Infobrief- Unleash the opportunities in the Cloud with SAP Partner Manage...
IDC Infobrief- Unleash the opportunities in the Cloud with SAP Partner Manage...SAPPartnerCloud
 
Enabling the-Connected-Car-Java
Enabling the-Connected-Car-JavaEnabling the-Connected-Car-Java
Enabling the-Connected-Car-Javaterrencebarr
 
CA Technologies' Agile Application Lifecycle Management (ALM) Solution – An E...
CA Technologies' Agile Application Lifecycle Management (ALM) Solution – An E...CA Technologies' Agile Application Lifecycle Management (ALM) Solution – An E...
CA Technologies' Agile Application Lifecycle Management (ALM) Solution – An E...Tasktop
 
SAP HANA SPS08 Application Lifecycle Management
SAP HANA SPS08 Application Lifecycle ManagementSAP HANA SPS08 Application Lifecycle Management
SAP HANA SPS08 Application Lifecycle Management SAP Technology
 

En vedette (7)

SAP HANA SPS08 Platform Lifecycle Management
SAP HANA SPS08 Platform Lifecycle ManagementSAP HANA SPS08 Platform Lifecycle Management
SAP HANA SPS08 Platform Lifecycle Management
 
Solving the Automation Puzzle - how to select the right automation framework ...
Solving the Automation Puzzle - how to select the right automation framework ...Solving the Automation Puzzle - how to select the right automation framework ...
Solving the Automation Puzzle - how to select the right automation framework ...
 
SAP TechED Las Vegas 2016- OEM Partnesr SAP HANA Platform Agenda
SAP TechED Las Vegas 2016- OEM Partnesr SAP HANA Platform Agenda SAP TechED Las Vegas 2016- OEM Partnesr SAP HANA Platform Agenda
SAP TechED Las Vegas 2016- OEM Partnesr SAP HANA Platform Agenda
 
IDC Infobrief- Unleash the opportunities in the Cloud with SAP Partner Manage...
IDC Infobrief- Unleash the opportunities in the Cloud with SAP Partner Manage...IDC Infobrief- Unleash the opportunities in the Cloud with SAP Partner Manage...
IDC Infobrief- Unleash the opportunities in the Cloud with SAP Partner Manage...
 
Enabling the-Connected-Car-Java
Enabling the-Connected-Car-JavaEnabling the-Connected-Car-Java
Enabling the-Connected-Car-Java
 
CA Technologies' Agile Application Lifecycle Management (ALM) Solution – An E...
CA Technologies' Agile Application Lifecycle Management (ALM) Solution – An E...CA Technologies' Agile Application Lifecycle Management (ALM) Solution – An E...
CA Technologies' Agile Application Lifecycle Management (ALM) Solution – An E...
 
SAP HANA SPS08 Application Lifecycle Management
SAP HANA SPS08 Application Lifecycle ManagementSAP HANA SPS08 Application Lifecycle Management
SAP HANA SPS08 Application Lifecycle Management
 

Plus de Jeremy Thake

Using Microsoft Teams to enhance your organizational productivity
Using Microsoft Teams to enhance your organizational productivityUsing Microsoft Teams to enhance your organizational productivity
Using Microsoft Teams to enhance your organizational productivityJeremy Thake
 
Connect with your customers wherever they are with an azure based mobile solu...
Connect with your customers wherever they are with an azure based mobile solu...Connect with your customers wherever they are with an azure based mobile solu...
Connect with your customers wherever they are with an azure based mobile solu...Jeremy Thake
 
Understand the future of software development in the cloud with the azure app...
Understand the future of software development in the cloud with the azure app...Understand the future of software development in the cloud with the azure app...
Understand the future of software development in the cloud with the azure app...Jeremy Thake
 
Connect with your customers wherever they are with an azure based mobile solu...
Connect with your customers wherever they are with an azure based mobile solu...Connect with your customers wherever they are with an azure based mobile solu...
Connect with your customers wherever they are with an azure based mobile solu...Jeremy Thake
 
Getting started with SharePoint 2013 online development
Getting started with SharePoint 2013 online developmentGetting started with SharePoint 2013 online development
Getting started with SharePoint 2013 online developmentJeremy Thake
 
Acing application lifecycle management in SharePoint
Acing application lifecycle management in SharePointAcing application lifecycle management in SharePoint
Acing application lifecycle management in SharePointJeremy Thake
 
Getting started with microsoft office 365 share point online development
Getting started with microsoft office 365 share point online developmentGetting started with microsoft office 365 share point online development
Getting started with microsoft office 365 share point online developmentJeremy Thake
 
Presenting SharePoint as a service back to your organization
Presenting SharePoint as a service back to your organizationPresenting SharePoint as a service back to your organization
Presenting SharePoint as a service back to your organizationJeremy Thake
 
The future of social collaboration in SharePoint
The future of social collaboration in SharePointThe future of social collaboration in SharePoint
The future of social collaboration in SharePointJeremy Thake
 
Introducing the new SharePoint 2013 app model
Introducing the new SharePoint 2013 app modelIntroducing the new SharePoint 2013 app model
Introducing the new SharePoint 2013 app modelJeremy Thake
 
SharePoint 2013 overview jeremy thake
SharePoint 2013 overview   jeremy thakeSharePoint 2013 overview   jeremy thake
SharePoint 2013 overview jeremy thakeJeremy Thake
 
Getting started with Office 365 SharePoint 2010 online development
Getting started with Office 365 SharePoint 2010 online developmentGetting started with Office 365 SharePoint 2010 online development
Getting started with Office 365 SharePoint 2010 online developmentJeremy Thake
 
How to create a secure efficient extranet user experience
How to create a secure efficient extranet user experienceHow to create a secure efficient extranet user experience
How to create a secure efficient extranet user experienceJeremy Thake
 
Deep dive into feature versioning in SharePoint 2010
Deep dive into feature versioning in SharePoint 2010Deep dive into feature versioning in SharePoint 2010
Deep dive into feature versioning in SharePoint 2010Jeremy Thake
 
How we built nothingbutsharepoint.com on sharepoint 2010
How we built nothingbutsharepoint.com on sharepoint 2010How we built nothingbutsharepoint.com on sharepoint 2010
How we built nothingbutsharepoint.com on sharepoint 2010Jeremy Thake
 
Governance enforcement with out of the box SharePoint
Governance enforcement with out of the box SharePointGovernance enforcement with out of the box SharePoint
Governance enforcement with out of the box SharePointJeremy Thake
 
Deep dive into feature versioning and upgrade support in SharePoint 2010
Deep dive into feature versioning and upgrade support in SharePoint 2010Deep dive into feature versioning and upgrade support in SharePoint 2010
Deep dive into feature versioning and upgrade support in SharePoint 2010Jeremy Thake
 
AUSPC 2011: How we did it: NothingButSharePoint.com
AUSPC 2011: How we did it: NothingButSharePoint.comAUSPC 2011: How we did it: NothingButSharePoint.com
AUSPC 2011: How we did it: NothingButSharePoint.comJeremy Thake
 
Do's and Don'ts for SharePoint developers
Do's and Don'ts for SharePoint developersDo's and Don'ts for SharePoint developers
Do's and Don'ts for SharePoint developersJeremy Thake
 
Jeremy thake introducing alm to share point development implementations (ap...
Jeremy thake   introducing alm to share point development implementations (ap...Jeremy thake   introducing alm to share point development implementations (ap...
Jeremy thake introducing alm to share point development implementations (ap...Jeremy Thake
 

Plus de Jeremy Thake (20)

Using Microsoft Teams to enhance your organizational productivity
Using Microsoft Teams to enhance your organizational productivityUsing Microsoft Teams to enhance your organizational productivity
Using Microsoft Teams to enhance your organizational productivity
 
Connect with your customers wherever they are with an azure based mobile solu...
Connect with your customers wherever they are with an azure based mobile solu...Connect with your customers wherever they are with an azure based mobile solu...
Connect with your customers wherever they are with an azure based mobile solu...
 
Understand the future of software development in the cloud with the azure app...
Understand the future of software development in the cloud with the azure app...Understand the future of software development in the cloud with the azure app...
Understand the future of software development in the cloud with the azure app...
 
Connect with your customers wherever they are with an azure based mobile solu...
Connect with your customers wherever they are with an azure based mobile solu...Connect with your customers wherever they are with an azure based mobile solu...
Connect with your customers wherever they are with an azure based mobile solu...
 
Getting started with SharePoint 2013 online development
Getting started with SharePoint 2013 online developmentGetting started with SharePoint 2013 online development
Getting started with SharePoint 2013 online development
 
Acing application lifecycle management in SharePoint
Acing application lifecycle management in SharePointAcing application lifecycle management in SharePoint
Acing application lifecycle management in SharePoint
 
Getting started with microsoft office 365 share point online development
Getting started with microsoft office 365 share point online developmentGetting started with microsoft office 365 share point online development
Getting started with microsoft office 365 share point online development
 
Presenting SharePoint as a service back to your organization
Presenting SharePoint as a service back to your organizationPresenting SharePoint as a service back to your organization
Presenting SharePoint as a service back to your organization
 
The future of social collaboration in SharePoint
The future of social collaboration in SharePointThe future of social collaboration in SharePoint
The future of social collaboration in SharePoint
 
Introducing the new SharePoint 2013 app model
Introducing the new SharePoint 2013 app modelIntroducing the new SharePoint 2013 app model
Introducing the new SharePoint 2013 app model
 
SharePoint 2013 overview jeremy thake
SharePoint 2013 overview   jeremy thakeSharePoint 2013 overview   jeremy thake
SharePoint 2013 overview jeremy thake
 
Getting started with Office 365 SharePoint 2010 online development
Getting started with Office 365 SharePoint 2010 online developmentGetting started with Office 365 SharePoint 2010 online development
Getting started with Office 365 SharePoint 2010 online development
 
How to create a secure efficient extranet user experience
How to create a secure efficient extranet user experienceHow to create a secure efficient extranet user experience
How to create a secure efficient extranet user experience
 
Deep dive into feature versioning in SharePoint 2010
Deep dive into feature versioning in SharePoint 2010Deep dive into feature versioning in SharePoint 2010
Deep dive into feature versioning in SharePoint 2010
 
How we built nothingbutsharepoint.com on sharepoint 2010
How we built nothingbutsharepoint.com on sharepoint 2010How we built nothingbutsharepoint.com on sharepoint 2010
How we built nothingbutsharepoint.com on sharepoint 2010
 
Governance enforcement with out of the box SharePoint
Governance enforcement with out of the box SharePointGovernance enforcement with out of the box SharePoint
Governance enforcement with out of the box SharePoint
 
Deep dive into feature versioning and upgrade support in SharePoint 2010
Deep dive into feature versioning and upgrade support in SharePoint 2010Deep dive into feature versioning and upgrade support in SharePoint 2010
Deep dive into feature versioning and upgrade support in SharePoint 2010
 
AUSPC 2011: How we did it: NothingButSharePoint.com
AUSPC 2011: How we did it: NothingButSharePoint.comAUSPC 2011: How we did it: NothingButSharePoint.com
AUSPC 2011: How we did it: NothingButSharePoint.com
 
Do's and Don'ts for SharePoint developers
Do's and Don'ts for SharePoint developersDo's and Don'ts for SharePoint developers
Do's and Don'ts for SharePoint developers
 
Jeremy thake introducing alm to share point development implementations (ap...
Jeremy thake   introducing alm to share point development implementations (ap...Jeremy thake   introducing alm to share point development implementations (ap...
Jeremy thake introducing alm to share point development implementations (ap...
 

Dernier

Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 

Dernier (20)

Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 

Application lifecycle management in SharePoint 2010

  • 1. Application Lifecycle Management in SharePoint 2010 Jeremy Thake
  • 2. 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.com gplus.to/jthake @jthake
  • 3. Agenda • What ALM is • Approaches to ALM • ALM Maturity Model • Getting started • Case Study
  • 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, trac king, and release management. WikiPedia
  • 7. Three aspects of ALM David Chappell (2008)
  • 11. Focus for today…development • Requirements management • Architecture • Coding • Testing • Tracking • Release management
  • 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
  • 15. Coding • Code Analysis – Consistent code • Naming standards • Casing • Formatting – Disposing correctly – Defensive coding – Readable coding
  • 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
  • 18. Tracking • Tasks • Issues • Bugs • Risks
  • 19. Release management • Continuous Integration • Automation! – release packages – unit testing – code analysis – build numbers • Red/Green – Don’t break the build!
  • 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
  • 27. 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
  • 28. Unit and Integration Testing • No interfaces • Integration • Tiered layer development • Design Patterns • TypeMock Isolator and Moles/Pex
  • 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
  • 31. Where are you? Automated Automated Deployment Testing Automated Builds Source control No Source Control
  • 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. 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/
  • 36. The cheaper • Source control – TortoiseHg and Mercurial • Continuous Integration – JetBrains Team City
  • 38. 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
  • 39. 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)
  • 40. Q&A
  • 41. 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/
  • 42. References • What is application lifecycle management by David Chappell • WikiPedia – ALM • Microsoft Visual Studio 2010 TFS

Notes de l'éditeur

  1. Jeremy Thake, Enterprise Architect at AvePoint Inc and SharePoint MVP, will explain the principles of Application Lifecycle Management in SharePoint 2010. The session will suit SharePoint Developers, Team Leaders, Architects and Development Managers to understand how to approach ALM with SharePoint.The pillars of ALM will be discussed in detail and the benefits of each from a Solution perspective.The ALM maturity model will be presented to allow you to evaluate where you are in your own internal processes and how to mature these further.The NothingButSharePoint.com Project ALM approach will be discussed in detail as a case study, which involves global distributed development teams and designers. The pros and cons of this approach will be compared to the others. Common problems with promoting from Dev to Staging to Production will be discussed in detail.From this session you should walk away with:·         An understanding of what application lifecycle management is·         An understanding of the approaches to ALM with SharePoint Development·         An understanding of how to get started with baby steps as a SharePoint Developer, Team Leader or Solution Architect   
  2. 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.
  3. 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?”
  4. 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)
  5. We’ve discussed the operating system options, now let’s look at what needs to be installed. The developer’s PC will have Visual Studio and SharePoint 2010 installed. You will use unit testing, smoke testing, and leverage the capabilities of Visual Studio for F5 deployment. In a SharePoint 2007 environment, you can use a number of tools to enable this such as WSP Builder, VSeWSS 1.3, or STSDEV. In a 2010 environment, Visual Studio 2010 provides integrated development capabilities for SharePoint. (build)Once you have written and unit tested your code, you check it into a source code repository such as Visual Studio Team System’s Team Foundation Server. Team Foundation Server provides the enterprise source code repository and application lifecycle management capabilities to support an enterprise development team. (build)After the code is checked in, a nightly build or continuous integration server will create the WSP. Here, we see Visual Studio Team System’s Team Build installed on a server with only the SharePoint 2010 DLLs. The product team will be releasing guidance to show how to configure a build server with only the SharePoint 2010 DLLs deployed so that you do not need to install SharePoint on your build server. This allows you to perform unit testing and build operations in a clean environment. Further guidance will be coming from the SharePoint product team as we near RTM on how to achieve this. (build)Since the build server created the WSP, it should be checked into the source repository so that the installation can be repeated in the future and its version maintained. The next step is to install and activate the WSP. This can be achieved as part of the build process. (build)The staging environment is now ready for automated testing and warm-blooded user testing.
  6. http://msdn.microsoft.com/en-us/library/dd293540.aspx
  7. SharePoint is now a part of the toolset out of the gates!
  8. http://www.cruisecontrolnet.org/projects/ccnet/wiki
  9. 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.