340 likes | 538 Views
The SharePoint 2013 App Model Martin Loitzl 19.12.2012. WELCOME. Introduction. Martin Loitzl 3.5 years in SharePoint Development 1 year @ Trivadis AG > 15 years Web Development Studied Information Systems @ TU Graz, Austria MCTS, MCPD, MCT for SharePoint 2010. Agenda.
E N D
The SharePoint 2013 App Model Martin Loitzl 19.12.2012 WELCOME SharePoint 2013 App Model
Introduction • Martin Loitzl • 3.5 years in SharePoint Development • 1 year @ Trivadis AG • > 15 years Web Development • Studied Information Systems @ TU Graz, Austria • MCTS, MCPD, MCT for SharePoint 2010 SharePoint 2013 App Model
Agenda Introduction A look back – Why a new App Model? Where do Apps run? The Shape of Apps The ApplicationProgramming Interface (API) Authentication andAuthorization Wrap-up SharePoint 2013 App Model
Whatcool andnew in SharePoint 2013? • Yammer Integration (Corporate SocialWeb) • 1 unified Search (FAST everywhere) • Branding Designer (canbeusedby Designers) • New Workflow Engine (Windows AzureWorkflows) • SkyDrivePro • ... andmanymore SharePoint 2013 App Model
The new SharePoint 2013 App Model Common Model Common approach to development across client and server embracing web technologies including HTML5, JavaScript, OpenData and OpenAuth2 – Service Orientation Cross-Device, Online & On-Prem Apps run across devices with cloud deployment options for both SharePoint and Office. In-Product Marketplace New opportunities to monetize apps through an in- product marketplace. SharePoint 2013 App Model
Agenda Introduction A look back – Why a new App Model? Where do Apps run? The Shape of Apps The ApplicationProgramming Interface (API) Authentication andAuthorization Wrap-up SharePoint 2013 App Model
App Model: Past, Present and Future Azure, IIS, LAMP, etc… SharePoint 2007 SharePoint 2010 SharePoint 2013 SharePoint Sandbox SharePoint iFrame SharePoint 2013 App Model
App Model:End User Experience • Howdoesitfeelforthe End-User? • Office Marketplace, likefor Windows Phone and Windows 8 • User installsanddecidestotrust • Demo @ Office 365 SharePoint 2013 App Model
Agenda Introduction A look back – Why a new App Model? Where do Apps run? The Shape of Apps The ApplicationProgramming Interface (API) Authentication andAuthorization Wrap-up SharePoint 2013 App Model
SharePoint Server 2013 Development Scenarios DevelopmentOptions Development Tools Deployment Options Web Browser Farm-Trust Solution On-Premise Farm Installation Sandboxed Solutions SharePoint Designer 2013 Office 365 & SharePoint Online SharePoint-Hosted App Visual Studio 2012 Hosted Installation Provider-Hosted App Eclipse, LAMP, Etc. Azure Auto-Hosted App SharePoint 2013 App Model
SharePoint 2013: The new App Package Structure App Package manifest.xml SiteCollection Host Web http://sp.com SharePoint Package .wsp App Installation Process New App Web Web Features App Web http://abc-567adcca.sp.com App Installation Process External App Package http://acme-apps.com SharePoint 2013 App Model
Three Approaches for Hosting Apps Provider Hosted app SharePoint Host Web Your Hosted Site Cloud based apps “Bring your own server hosting infrastructure” Developers will need to isolate tenants Get remote events from SharePoint Use CSOM/REST + OAuth to work with SP Auto Hosted App SharePoint Host Web Azure from WebDeploy, DacPac Windows Azure + SQL Azure provisioned invisibly as apps are installed SharePoint Hosted App SharePoint Host Web • 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 App Web from WSP SharePoint 2013 App Model
Agenda Introduction A look back – Why a new App Model? Where do Apps run? The Shape of Apps The ApplicationProgramming Interface (API) Authentication andAuthorization Wrap-up SharePoint 2013 App Model
New App Model: User Experience Full page app Implement complete app experiences to satisfy business scenarios • App part app • Create app widgets that can interact with the SharePoint experience • Command extensions • Extend existing functionality with new commands SharePoint 2013 App Model
Agenda Introduction A look back – Why a new App Model? Where do Apps run? The Shape of Apps The ApplicationProgramming Interface (API) Authentication andAuthorization Wrap-up SharePoint 2013 App Model
SharePoint 2010: Client Object Model API Services SharePoint Foundation: List and Library interaction API surface Access via JavaScript, Silverlight, and .Net Drawbacks Still needs old asmx Services, what about iOS, PHP, Node.JS, … SharePoint Foundation _vti_bin/client.svc Server Execute Query Client JavaScript Library Silverlight Library .Net CLR Library Custom Client Code SharePoint 2013 App Model
App Model: Apps have a new _api API Services Existing SharePoint Client Object Model, User Profiles, Search, Taxonomy, Feeds, Publishing, Sharing, Workflow, E-Discovery, IRM, Analytics Business Data Services, and more! Simplified API surface Focused on the most used API’s and removed redundancy/duplicate paths Symmetric Same object model on the server and all client object models SharePoint Foundation User Profile Search Taxonomy More… _api Server Execute Query Client REST/ ODATA JavaScript Library Silverlight Library .Net CLR Library Custom Client Code SharePoint 2013 App Model
_api: Access to SharePoint Services REST/ODATA http://host/sites/test/_api/Web/Title Managed Code clientContext.Load(clientContext.Web); clientContext.ExecuteQuery(); TextBox1.Text = clientContext.Web.Title; JavaScript ctx.load(ctx.get_web()); ctx.executeQueryAsync(function () { ctx.get_web().get_title() }); SharePoint 2013 App Model
Demo: SharePoint Hosted App Demo SharePoint 2013 App Model
Agenda Introduction A look back – Why a new App Model? Where do Apps run? The Shape of Apps The ApplicationProgramming Interface (API) Authentication andAuthorization Wrap-up SharePoint 2013 App Model
API accessof a SharePoint 2013 App App maybehosted in IFrame! http://abc-567adcca.sp.com http://sp.com http://acme-apps.com JavaScript JavaScript C#, PHP, JavaScript, … xss Client Server Host Web App Web Cloud App Host App App SharePoint 2013 App Model
OpenAuth: Introduction ? SharePoint 2013 App Model
1 User navigatestopagecontaining an app OAuth: AuthN and AuthZ flow 2 SharePoint requests a contexttoken 3 ACS returnssignedcontexttoken CloudACS 4 SharePoint renderspagewithIFrame 5 Browser requestsIFrame 6 ACS validatessignatureofcontexttoken 3 7 ACS issues an accesstoken 7 8 App Host accessesdatawithOAuthtoken 2 Browser SharePoint 2013 9 SharePoint returnsdata 1 10 Renderedcontentdelivered 4 6 8 App iFrame 9 5 App Host acme-apps.com 10 SharePoint 2013 App Model
Demo: Cloud Hosted SharePoint 2013 App DEMO SharePoint 2013 App Model
NoCloud ACS OAuth: on-premise? NoContext Token CloudACS No Access Token Establish Trust-Relation withCertificate 3 7 2 Browser SharePoint 2013 1 „Trusted Security Token Issuer“ 4 6 8 App iFrame 9 5 App Host intranet-apps.com 10 SharePoint 2013 App Model
Demo: Provider Hosted SharePoint 2013 App on-prem DEMO SharePoint 2013 App Model
Introductionto Event Handling • Event Handlers in SharePoint 2007 and 2010 • Lists, Webs, etc. (ListItemAdded, Web Provisioned, …) • Possibilitytocapture User Interaction • e.g. new Task in Task List, documentpublished, … • Possibilitytoenforcebusinessrules • e.g. preventdocumentdeletionbased on meta-data, … • SharePoint 2013 Apps:„Remote Event Receivers“ • SharePoint eventsareforwardedto an App endpoint • SharePoint 2013: Remote Event Receivers forBusiness Connectivity Services • BCS: accesstoexternal Line-of-Business systems SharePoint 2013 App Model
1 User adds Item tosome List Data Access: Remote Event Handler 2 SharePoint asks ACS forcontext Token 3 ACS returnstoken 4 SharePoint calls Remote Event Receiver 5 App doesit‘sjob 6 App send context Token 7 App getsaccess Token 8 App updates SharePoint SharePoint 2013 1 8 5 4 .svc 2 6 3 CloudACS App Host acme-apps.com 7 SharePoint 2013 App Model
Remote Event Receivers: Demo Demo SharePoint 2013 App Model
Agenda Introduction A look back – Why a new App Model? Where do Apps run? The Shape of Apps The ApplicationProgramming Interface (API) Authentication andAuthorization Wrap-up SharePoint 2013 App Model
Choice, Control and Flexibility to acquire and deploy SharePoint and O365 Office.com Public Marketplace IntegratedMarketplace Dev center submission TRIAL/ PURCHASE Developer End users TRIAL/ PURCHASE Direct Negotiated deals/ IT projects Corporate Catalog IT admin SharePoint 2013 App Model
Recap: Threechoicestomake Hosting Entry Points Data Access SharePoint .Net / Silverlight Full Page Auto-Provisioned on Azure JavaScript App Part Developer hosted REST / ODATA Extension SharePoint 2013 App Model
Links For more exotic scenarios:Work with the cross-domain library across different Internet Explorer security zones in apps for SharePointhttp://msdn.microsoft.com/en-us/library/jj612823.aspx How to: Access SharePoint 2013 data from remote apps using the cross-domain libraryhttp://msdn.microsoft.com/en-us/library/fp179927.aspx How to: Access SharePoint 2013 data from remote apps using the cross-domain libraryhttp://msdn.microsoft.com/en-us/library/fp179927.aspx Office/SharePoint Tools for Visual Studio 2012https://www.microsoft.com/web/handlers/WebPI.ashx/getinstaller/OfficeToolsForVS2012GA.appids App Configuration on-premhttp://technet.microsoft.com/en-us/library/fp161236 App AuthPolicyhttp://msdn.microsoft.com/en-us/library/office/apps/fp179892.aspx High Trust S2S on-premhttp://msdn.microsoft.com/en-us/library/office/apps/fp179901.aspxhttp://blog.loitzl.com/?p=229 Tips and FAQs: OAuth and remote apps for SharePoint 2013http://msdn.microsoft.com/en-us/library/fp179932.aspx Registering SharePoint 2013 High-Trust Apps Using S2S the Easy Way (Beta 2 only!)http://www.andrewconnell.com/blog/archive/2012/08/07/registering-sharepoint-2013-high-trust-apps-using-s2s-the-easy.aspx Can App Parts be used on SharePoint-Hosted pages?http://social.msdn.microsoft.com/Forums/en-US/appsforsharepoint/thread/abb96582-e5b1-4fbd-9e63-2ffc01780835/ SharePoint 2013 App Model
Trivadis AG Dipl.-Ing. Martin Loitzl Europastrasse 58152 Glattbrugg Tel. +41 79 909 7242 Martin.Loitzl@trivadis.comwww.trivadis.com Thanks! SharePoint 2013 App Model