sharepoint apps and the architecture of the new cloud app model introducing cloud app model...
TRANSCRIPT
Productivity
Henrik Mønsted, Morten Schioldan
SharePoint Apps and the Architecture of the new Cloud App Model
Microsoft Services
Agenda
SharePoint Apps and the Architecture of the new Cloud App Model
• Introducing Cloud App Model• Designing Apps • SharePoint-hosted Apps• Key Learnings
Objectives
Introduction to SharePoint Apps and the new Cloud App Model. Learn how to create and deploy SharePoint Apps to Office 365. Get introduced to new development client-based models and learn how to build modern responsive apps for SharePoint 2013.
Objectives:
• Introduction to SharePoint Apps
• Learn how to build your first SharePoint App for Office 365
Quiz
Why do customers want to customize?
Why do customers want to upgrade?
What’s the number one cost driver in projects?
What’s the number one reason for support cases?
What’s the number one issue blocking upgrade?
SharePoint Application Evolution
2003 – What is an Application?SharePoint was not an Application Platform, except web partsInvestments were in portals and content
2007 – Everything is an Application!Push to embrace SharePoint for LOB applicationsExperience was to write custom 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 App…Client side experience via html or iFrameLeverage CSOM and REST APIs from Azure and other clientsInvestments in app discovery and management via SharePoint store
SharePoint 2010 Application Challenges
Custom Code on server
• Root cause of most SharePoint outages and issues
• Lots to deploy
• Requires a big server touch
• Not possible in hosted environments
Sandbox Solutions
• Possible in hosted environment
• Limited set of things you can do
• In both, developers must know SharePoint API
Introducing Cloud App Model
A new cloud app model for developers
New apps
A new class of apps enabling new scenarios and user experiences.
Familiar toolsets
Embracing web standards to provide developers with choice and flexibility.
Flexible lifecycle
Deploy and maintain your apps publically or internally with flexibility and control.
SharePoint 2013 App Development Scenarios
Deployment Options
On-Premise Farm Installation
Hosted Installation
Development Options
Farm-Trust Solution
SharePoint-Hosted App
Cloud-Hosted App
Development Tools
Web Browser
SharePoint Designer
Visual Studio
Eclipse, LAMP, Etc.
Distributing Apps
Public Marketplace
• Similar Windows Phone Marketplace
• Subject to submission process & approval
• Admin approval possible
Corporate Catalog
• Apps developed internally
• Apps acquired and approved for internal use
Custom Deployment Process
• Developers can use remote / local SharePoint & Windows Azure APIs to deploy apps with custom code
• These APIs are restricted to the developer site for tooling scenarios
When to Use Apps or Solutions?
New SharePoint App Model is the preferred route for building app scenarios
• Provides most flexibility in development technologies, capabilities & infrastructure choices
• Provides highest level of process, user & data isolation
Both full-trust & sandbox solutions ideal for deep customizations to SharePoint, for example:
• Provisioning custom master pages, page layouts, branding assets
• Deploying advanced administration scenarios, like timer jobs
DemoEverything is an App
Designing Apps
App Shapes / Entry PointsShape Description Example
Immersive App(Full Page)
App that implements a new scenario for customers
Resource Tracking, Budgeting
App Part Provides new parts you can add to your sites
Weather, Team Mascot, News
Extension App(Custom Action)
Add new actions for documents and items
Display Document Visualization, Print to Print Service Vendor
Hosting: Three Architecture Approaches
App Web
Parent Web
SharePoint-Hosted App
Provision an isolated sub web on a parent web• Reuse web elements
(lists, files, out-of-box web parts)• No server code allowed; use client JavaScript for
logic, UX
Provider-Hosted App
“Bring your own server hosting infrastructure”
SharePoint
Web
Get remote events from SharePoint Use CSOM/REST + OAuth to work with SP
Cloud-based Apps
Your Hosted Site
Autohosted App
Windows Azure + SQL Azure provisioned invisibly as apps are installed
Azure SharePoint Web
Common App ArchitectureBrowser
Office JSOM
SharePoint JSOM
Web Server
Other Devices
Client-side CodeHTML / CSS / JavaScript
APP
Server-side CodeAny language
SharePoint
CSOM CSOMREST
Autohosted Provider-hosted
Other
E.g. LAM
P
IIS / ASP.N
et
Windows AzureWeb Sites
Workflow
SQL
Cloud Services
JavaScript Library
Silverlight Library
.Net CLR Library
Custom Client Code
Client
Server
_api is new alias for _vti_bin/client.svc
SharePoint 2013 Remote API
RESTODataJSON
CSOM
SharePoint-hosted Apps
SharePoint-hosted App – what is it?
Sub web of site collection (SharePoint-hosted)
“One app – one Web (SPWeb)”
Apps can deploy only web scoped features
Can include app parts or ribbon and ECB custom actions
Site collection resources deployed using classic solution options
End users cannot manipulate app web to avoid breaking of the apps using browser or SharePoint Designer
App for SharePoint Anatomy
Host Web
App Web
• Lists / Libraries• Declarative Pages• CSS Files• JavaScript Files
• Custom Actions for app
• Client Web Parts
Understanding the App URL• Scenario: App installed in
http://intranet.contoso.com
• Dissecting the App URL: • http://tenant-APP1UID.domain.com/GUIDAPP1
http://app-bf473b5225nn0f.apps.contoso.com/6763273b-fde9-402a-a30e-9c4f20856dde
APP1UID
Unique ID given to each app installation in tenancy
Makes each app domain unique
GUIDAPP1
Name of SPWeb under where app is installed
Developers have control
Office Developer Tools for Visual Studio 2012
• PAGES
Default.aspxMain page of the appWeb Part PageScript and Style references
Elements.xmlInstalls home page to the isolated app site
SCRIPTSApp.js
Template script fileElements.xml
Installs script file to isolated app site
APP MANIFESTAppManifest.xml
ProductID, Version, TitleTile and StartPage UrlsAppEvent Urls: Installed, Uninstalling, UpgradedApp Permission requests
DemoBuilding your first App
Key Learnings
First…
It is V1 (but quickly maturing)
ALM
For on-premise installations no single App Catalog for multiple web applications and farms
No auto-activate for apps
Not all artefacts can be included in apps (like web templates)
Business Continuity for Apps
Backup/restore
Protecting against data loss (the app is uninstalled)
Securing Against Malicious Apps
No way to secure against malicious apps in Office store
We can add Admin reviews, but no guarantee
Internet / Anonymous
Current version of Apps not really suited for anonymous Internet Scenarios
Zones and AAM
Apps do not work with several zones (e.g. AAM). All requests are served out of default zone
(eg. authenticated zone for authors and anon zone for public users)
Go Do’s
Start doing
• Evaluate Apps as preferred option
• Use CSOM or REST
• Leverage JavaScript frameworks, like Knockout
• Host business logic outside SharePoint
• Use remote provisioning
Stop doing
• Server OM C# Code!
• New Full Trust Code solutions
• Sandboxed solutions
EvaluationCreate a Text message on your phone and send it to 1919 with the content:
PR307 5 5 5 5 I liked it a lotSession Code
Morten Performance
(1 to 5)
Match of technical Level
(1 to 5)Relevance
(1 to 5)
Comments(optional)
Evaluation Scale: 1 = Very bad 2 = Bad 3 = Relevant 4 = Good 5 = Very Good!
Questions:• Speaker Performance• Relevance according to your work • Match of technical level according to
published level• Comments
Henrik Performance
(1 to 5)
© 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista 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.
Thank you