SlideShare a Scribd company logo
1 of 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

More Related Content

Viewers also liked

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
 

Viewers also liked (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
 

More from 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
 

More from 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...
 

Recently uploaded

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
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
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 

Recently uploaded (20)

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
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
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 

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

Editor's Notes

  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.