Application Lifecycle Management in Office & SharePoint

32

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 of Application Lifecycle Management in Office & SharePoint

Page 1: Application Lifecycle Management in Office & SharePoint
Page 2: Application Lifecycle Management in Office & SharePoint

Application Lifecycle Management in Office and SharePoint

SPC273

Eric CharranRegional ArchitectMicrosoft@mougue

Ayman El-HattabTechnical ManagerAvePoint@aymanelhattab

Page 3: Application Lifecycle Management in Office & SharePoint

Enterprise Collaboration Strategist

Meet Ayman El-Hattab

SharePoint MVP since 2010

ALM Ranger (2012)

Author, Blogger, Speaker

www.aymanelhattab.com@aymanelhattab

Page 4: Application Lifecycle Management in Office & SharePoint

Regional Architect

Meet Eric Charran

SharePoint and ALM Ranger

Author, Blogger, Speaker@mougue

Tahoe

Digital Dashboard

Outlook Today

Page 5: Application Lifecycle Management in Office & SharePoint

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

Page 6: Application Lifecycle Management in Office & SharePoint

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

Page 7: Application Lifecycle Management in Office & SharePoint

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

Page 8: Application Lifecycle Management in Office & SharePoint

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

Page 9: Application Lifecycle Management in Office & SharePoint

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

Page 10: Application Lifecycle Management in Office & SharePoint

Types of AppsSharePointApps for SharePoint

OfficeContent AppsTask Pane AppsMail AppsProject Apps

Page 11: Application Lifecycle Management in Office & SharePoint

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

Page 12: Application Lifecycle Management in Office & SharePoint

Development Environments

Page 13: Application Lifecycle Management in Office & SharePoint

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

Page 14: Application Lifecycle Management in Office & SharePoint

On-Premises Developer Site(s)

SharePoint-hosted App Provider-hosted App

On-Prem Development Environments

Visual StudioOffice Developer Tools

SharePoint Client Components

Page 15: Application Lifecycle Management in Office & SharePoint

SharePoint 2013 Virtual Machines

SharePoint-hosted App Provider-hosted App Server-side solution

On-Prem Development Environments

Visual StudioOffice Developer Tools

SharePoint Client Components

Page 16: Application Lifecycle Management in Office & SharePoint

Application Lifecycle Management (ALM)

Page 17: Application Lifecycle Management in Office & SharePoint

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

Page 18: Application Lifecycle Management in Office & SharePoint

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

Page 19: Application Lifecycle Management in Office & SharePoint

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

Page 20: Application Lifecycle Management in Office & SharePoint

Demo

Continuous IntegrationSharePoint-hosted and Autohosted Apps

Page 21: Application Lifecycle Management in Office & SharePoint

Demo

Continuous IntegrationProvider-hosted Apps

Page 22: Application Lifecycle Management in Office & SharePoint

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

Page 23: Application Lifecycle Management in Office & SharePoint

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

Page 24: Application Lifecycle Management in Office & SharePoint

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

Page 25: Application Lifecycle Management in Office & SharePoint

Demo

Automated Build/Deploy/Test WorkflowsSharePoint Apps

Page 26: Application Lifecycle Management in Office & SharePoint

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

Page 27: Application Lifecycle Management in Office & SharePoint

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.

Page 28: Application Lifecycle Management in Office & SharePoint

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

Page 29: Application Lifecycle Management in Office & SharePoint

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

Page 30: Application Lifecycle Management in Office & SharePoint

Q&A

Questions?Comments? Feedback?

Page 31: Application Lifecycle Management in Office & SharePoint

MySPCSponsored by

connect. reimagine. transform.

Evaluate sessionson MySPC using yourlaptop or mobile device:myspc.sharepointconference.com

Page 32: Application Lifecycle Management in Office & SharePoint

© 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.