application lifecycle management in office & sharepoint
DESCRIPTION
There are several methods to customize SharePoint. Developers have the option of creating new cloud applications for SharePoint or maintaining legacy full trust code. Coupled with the complexity many organizations have in terms of managing SharePoint customizations across Office 365 and on-premises implementations, developers and solution architects will need to understand how to adjust application lifecycle management (ALM) techniques to support and deploy quality solutions. This session will focus on the establishment of development, testing and deployment best practices for on-prem and cloud applications and solutions. We, too, will include concepts such as continuous integration, release management and automated testing.TRANSCRIPT
Application Lifecycle Management in Office and SharePoint
SPC273
Eric CharranRegional ArchitectMicrosoft@mougue
Ayman El-HattabTechnical ManagerAvePoint@aymanelhattab
Enterprise Collaboration Strategist
Meet Ayman El-Hattab
SharePoint MVP since 2010
ALM Ranger (2012)
Author, Blogger, Speaker
www.aymanelhattab.com@aymanelhattab
Regional Architect
Meet Eric Charran
SharePoint and ALM Ranger
Author, Blogger, Speaker@mougue
Tahoe
Digital Dashboard
Outlook Today
Session Objectives And TakeawaysSession Objective(s): Understand Office and SharePoint Application development considerationsUnderstand how to apply application lifecycle management principles to SharePoint appsHow to adapt development practices to create SharePoint apps
Key Takeaway(s): App Model is (AM) is here to stayThere are ways to apply ALM practices to AM solutions
The Journey2003 – What is an Application?
SharePoint was not an Application Platform, except Web PartsInvestments were in MOSTLY portals and content
2007 – Everything is an Application!Push to embrace SharePoint for LOB applicationsCustom server side code
2010 – Choose the right ApplicationSharePoint and Developer Tools come togetherSilverlight, CSOM and other new capabilitiesPartially trusted code reduces impact and risk to farm
2013 – Redefine Application as AppClient side experience via HTML or iFrameLeverage CSOM and REST APIs from Azure and other clientsInvestments in App discovery and Management via SharePoint store
Deployments
2013 2010 2007
Current State of Apps @ CustomersChallenges in the app spaceLots of options (VSTO, FTC, Sandbox, AM) with little guidance on what to choosePain with FTC and Sandbox solutionsCustomers have Office Add-ins, VSTO or custom client automation solutions
Pain with FTCDeployment and ALM challengesPerformance considerationsPlatform rigidity in upgrade, patching, migration scenariosInability to move customizations to O365
Pain with SandboxSmall API footprintIncreased complexity of environment setup and managementChallenging UX when app is shut down for good reasonsDeprecation of Sandbox Solutions with Code
Current State of Apps @ CustomersPain with OfficeOffice Add-ins require “touching” desktop/machinesDevice-specific (supported OS), not agnosticAll the responsibility of managing a custom app deployed to machinesIntegration with LOB systemsMultiple legacy deployments/versions result in compatibility challenges
Application Model (AM)BenefitsCustomizations run OUTSIDE SharePointDecouples customizations/solutions from the platformAgility to upgrade/patch app AND SharePoint separatelyImplementation independence (JavaScript, HTML, Ruby, PHP, C#)Solutions can be deployed to both O365 AND on-premisesMonetization through familiar “store” model to expose and publish apps
ChallengesIt’s a new world, right? (JavaScript and HTML5 is back combined with REST)Customers can’t port or wrap their App in AMWhat to do with all the existing FTC/Office Add-ins?Programming against a refreshing platform
No custom code on the SharePoint server
Reduces the ramp time for building Apps
Leverage hosting platform features in new
Apps
Isolation – Private vs. Public clouds
Types of AppsSharePointApps for SharePoint
OfficeContent AppsTask Pane AppsMail AppsProject Apps
SharePoint AppsAuto HostedDeployed to and hosted in a dedicated Microsoft Azure subscription
SharePoint HostedUses client side technologies such as JavaScript, REST, HTML 5
Provider HostedDeployed to and hosted on on-premises or cloud hosted (Azure) platforms
Development Environments
Developer Site
NapaµOffice 365 Development Tools
SharePoint-hosted App Autohosted App Provider-hosted App
Office 365 Development Environments
Visual StudioOffice Developer Tools
SharePoint Client Components
On-Premises Developer Site(s)
SharePoint-hosted App Provider-hosted App
On-Prem Development Environments
Visual StudioOffice Developer Tools
SharePoint Client Components
SharePoint 2013 Virtual Machines
SharePoint-hosted App Provider-hosted App Server-side solution
On-Prem Development Environments
Visual StudioOffice Developer Tools
SharePoint Client Components
Application Lifecycle Management (ALM)
Application Lifecycle Management (ALM)Development Environment with TeamsUsed to require separate VMs, VM-capable hardwareO365 development sites (per developer) regardless of on-prem or O365 deploymentSharePoint on-prem developer sites (per developer)What to do with Napa in a team environment
Build ProcessesNon-compiled code needs build too (Continuous Integration)Build, deployment, and testing still done by TFS with some helpYes, you still have to “Trust It”, but…Coded UI Build Verification Tests (BVTs) still validate the build
On-Premises Farm(Integration/Systems testing environment)
Integration/Systems testing site collection
Office 365 SharePoint Online (Integration/Systems Testing site
collection)
Check in to Team Foundation Server
Deployment of compiled .app to SharePoint target environment
Test execution
Solution Deployment
Visual StudioOffice Developer Tools
SharePoint Client ComponentsFeatures, Package,
manifest, etc.
Supporting files, certificate(s), etc.
Pages, JavaScript, libraries, etc.
SharePoint Continuous Integration Build Process Template/Workflow
SharePoint Continuous Integration App Deploy PowerShell Scripts (requires
SharePoint Online Management Shell extensions)
Team Foundation Server or Visual Studio Online
SharePoint App Build Definition
Coded UI/Build Verification Tests
SharePoint App Build Definition
On-Premises Farm(Integration/Systems testing environment)
Integration/Systems testing site collection
Office 365 SharePoint Online (Integration/Systems Testing site
collection)
Provider hosted infrastructure (Azure/IaaS/on-premises web and data)
Check in to Team Foundation Server
Deployment of compiled .app to SharePoint target environment
Approve application trust level
Deployment of cloud hosted components to target
infrastructure
Test execution
Solution Deployment – Provider Hosted
Visual StudioOffice Developer Tools
SharePoint Client ComponentsFeatures, Package,
manifest, etc.
Supporting files, certificate(s), etc.
Pages, JavaScript, libraries, etc.
Provider/Auto hosted Web Project
SharePoint App Project
SharePoint Continuous Integration Build Process Template/Workflow
SharePoint Continuous Integration App Deploy PowerShell Scripts (requires
SharePoint Online Management Shell extensions)
Team Foundation Server or Visual Studio Online
SharePoint App Build Definition
Coded UI/Build Verification Tests
SharePoint App Build Definition
Demo
Continuous IntegrationSharePoint-hosted and Autohosted Apps
Demo
Continuous IntegrationProvider-hosted Apps
Application Lifecycle Management (ALM)TestingTenants can be different versionsAPIs between versions will be subject to roll out schedulesTesting environment should be in the same tenant as “production”Regression testing should cover SharePoint to provider-hosted componentsCoded UI Testing vs. Non Coded UI Testing
Testing
On-Premises Farm(Development Site
Site Collection)
Office 365 SharePoint Online (Development Site
Site Collection)
SharePoint Development Environment
NapaµOffice 365 Development Tools
Visual StudioOffice Developer Tools
SharePoint Client Components
Execute Tests
Provider hosted infrastructure (Azure/IaaS/on-premises web and data)
Cloud-hosted Development Environment
Application Deployment
On-Premises Farm(Integration/Systems testing
environment)
Office 365 SharePoint Online (Integration/Systems Testing site
collection)
SharePoint Integration/Systems testing environment
On-Premises Farm(UAT/QA testing environment)
Office 365 SharePoint Online (UAT/QA Testing site collection)
Provider hosted infrastructure (Azure/IaaS/on-premises web and data)
Cloud-hosted Testing Environment(s)
One Azure subscription with multiple services deployed (integration/system and UAT/QA services)
SharePoint App Build Definition
Execute Tests
Application Deployment
Release Manager
Test Scripts/Manual Testing
Application Deployment
Testing
Team Foundation Server or Visual Studio Online
Demo
Automated Build/Deploy/Test WorkflowsSharePoint Apps
Evergreen and release cycle – Old model
SP2013 O16 O17 O18
Tightly coupledSharePoint customizations
Upgrade Upgrade Upgrade Upgrade
Specific upgrade project each time new version is introduced
Customizations have to be upgraded to get access on new capabilities in
product
Will cause additional costs during each release cycle of customizations
Customization updates cause downtime each time something is changed
Complex ALM processes for ensuring quality of the code
Evergreen and release cycle – NEW model
SP2013
Loosly coupledSharePoint customizations
O16 O17 O18
Development
You choose when and how applications are updated...
Backwards compatibility for API level to move customizations cross versions
Customizations don’t block new capabilities from SharePoint
Customizations extend, not change SharePoint
Customizations can be updated with minimal impact on SharePoint
Customizations will utilize services from SharePoint and other services, but won’t usually change out of the
box services.
Explore SharePoint ALM Guidance
White paper is here: http://msdn.microsoft.com/en-us/library/office/dn567995.aspx
Get SharePoint Build Resources
Continuous integration with TFS Build Definition Resources are here: http://officesharepointci.codeplex.com/
Resources
Explore our new Preview APIs
In-depth articles on MSDNSubject to change; not for production use
Connect with the community
Speak your mind at OfficeSPDev.UserVoice.ComSolve your roadblocks on StackOverflow
[Office] and [SharePoint]
Build using our toolsUnleash your development skills with Office Dev Tools for Visual Studio 2013 and Office 365 API Tools for Visual Studio 2013
Calls to Action
Q&A
Questions?Comments? Feedback?
MySPCSponsored by
connect. reimagine. transform.
Evaluate sessionson MySPC using yourlaptop or mobile device:myspc.sharepointconference.com
© 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.