office 365 development overview
DESCRIPTION
Office 365 Development OverviewTRANSCRIPT
Office 365 DevelopmentMahmoud HamedTechnical Consultant, ITWorx
Intro
Office 365 App Model
Office 365 APIs
Resources
Agenda
Devices + Cloud 2010sPC + Servers 2000s
Technology journeyPC 1990s
Open standards Mobile SDK’s
VBA VBACom add-insVSTOFTC
Robust APIs
The new Office development platform Contextual apps Flexible tools
Documents Search
Calendar People
Social
iOS
Office 365 App Model
Office 365 Development Overview
Build apps Web Standards
Apps are built using industry proven web standards such as HTML, JavaScript and REST
Scalable and Safe
Apps are independently scalable which reduces total cost of ownership. Apps are secured and isolated from SharePoint
Accessible
Apps can be accessed from any device with a web browser.
Build for the cloud Write once, run anywhere
An app can run outside the firewall in the cloud and from inside the firewall in a data center.
Hosting freedomApps can be hosted on any platform giving you complete freedom.
Re-use logic and assetsBuild apps that can share logic and code with other web hosted solutions. Re-use existing services and assets within you app.
Modern app development
Apps
App catalog and store
Vacation request
Event planning
Expense calculator
Learning management
Risk management
Help-desksupport
Products and platforms
Services and data
If you know general web development, you also know Office 365 development…
App ModelDevelopment
Distribution choices
Office Store App Catalog
Apps for SharePoint
Introducing the app modelSharePoint apps do not “live” on the SharePoint serverCustom code executes in the client, cloud or on-premisesApps are granted permissions to SharePoint via OAuth Apps communicate with SharePoint via REST/CSOMAcquire apps via centralized location
App catalogPublic store (via submission process)APIs for manual deployment
SharePoint building blocksLists/librariesWeb partsSite columnsContent typesRemote event receiversWorkflows
Architecture of appsAzure
ApacheApp 3Web
App 3mySQL
App 3Worker
IIS web serverApp 4Web
App 4SQL
App 4Windowsservice
SharePoint
Web application
Site collection
Root site
App 1SP hosted
App 2Provider hosted
App 3 Provider hosted
Sub siteApp 3Provider hosted
App 4Provider hosted
App 2Web
App 2SQL
App 2Worker
Client-side patternSharePoint environmentSite collection
Host web App web
ListsSite pagesCSS filesJavaScript files
Server-side patternSharePoint environmentSite collection
Host web
IFrameApp web
IFrame
ASP.NET environmentOn-premises or in Microsoft Azure
Remoteweb
Remoteweb
Managed codeC# or VB
Managed codeC# or VB
SQL serverOn-premises data
SQL serverCloud-based data
Client-side object model calls
Hybrid patternSharePoint environmentSite collection
Host web
Custom JavaScript App web
Custom JavaScript
ASP.NET environmentOn-premises or in Windows Azure
Remoteweb service
Remoteweb service
Managed codeC# or VB
Managed codeC# or VB
Client-side object model calls
SQL serverOn-premises data
SQL serverCloud-based data
Provider versus SharePoint hostedProvider hosted apps Provider hosted apps
SharePoint hosted apps
Preferred hosting model for almost all types of apps
Good for smaller apps and resource storage
Full power of web—choose your infrastructure and technology
SharePoint-based; no server-side code
May require your own hosting Automatically hosted in SharePoint
May require you own handling of multitenancy and permission management
Inherent multitenancy and isolation
Application isolationWhen apps are provisioned, new SPWeb (AppWeb) created within hosting SPWebEach app resides within it’s own SPWeb for isolation
Special DNS address configured by administrators
App SPWeb’s live in separate domain (DNS)
Each app hosted on it’s own unique URL becauseBlocks XSS: isolation to special SPWeb under special domain blocks cross site scripting
Enforces app permissions: apps communicate with sites via CSOM/API and must be granted to do so
Understanding the app URLScenario: App installed in https://intranet.contoso.com
Dissecting the app URL:
https://tenant-APPUID.domain.com/APPNAME
https://app-bf473b5225nn0f.contoso.com/SharePointAppTitle
APPUID
Unique ID given to each app installation in tenancy
Makes each app domain unique
APPNAME
Name of SPWeb under where app is installed
Developers have control
App entry pointsApp entry pointsStart page
App parts
UI custom commands
The Chrome ControlUse the Chrome Control to inherit style and links from the host web in a cloud app
Custom client code
_api
JavaScript library Silverlight library .Net CLR library
Execute query REST/
OData
…SearchLists and
librariesTaxonomy FeedsUser profile
The SharePoint client APIs
Web scopeCan register and use resources in parent site, site collection
Tenant scopeCan register start page, custom actions
Tenant admins can filter-enable on sites
By site collection, managed path, template type
App scoping
Packaging and publishing appsPackaging apps.app file extension—a package typically includes the following files:
AppManifest.xml
AppIcon.png
AppWeb.wsp package
Publishing appsOffice Store
App catalogs
App Stabling
Cross domain callsUsing the cross domain libraryAccess content in the app web from JavaScript in a remote web
SP.RequestExecutor.js
AppWebProxy.aspx
Using the web proxyAccess content in SharePoint or elsewhere from JavaScript in a remote web
SP.WebRequestInfo
Trusting domains for cross domain calls
Azure
Apache
IIS web server
App 3WebV1.0.0.0
App 3SQLV1.0.0.0
App 3workerV1.0.0.0
VersioningSharePoint
Web application
Site collection
Root site
App 1V1.0.0.0
App 2V1.0.0.0
App 3 V1.0.0.0
Sub siteApp 4V1.0.0.0
App 3V1.0.0.0
App 2WebV1.0.0.0
App 2SQLV1.0.0.0
App 1V2.0.0.0App 1V3.0.0.0
App 2V2.0.0.0
App 2WebV2.0.0.0
App 2SQLV2.0.0.0
App 2V3.0.0.0
App 2WebV3.0.0.0
App 2SQLV3.0.0.0
App 3WebV2.0.0.0
App 3SQLV2.0.0.0
App 3workerV2.0.0.0
App 3 V2.0.0.0
App 3WebV3.0.0.0
App 3SQLV3.0.0.0
App 3workerV3.0.0.0
App 3 V3.0.0.0
App 4V2.0.0.0
App 2WorkerV1.0.0.0
App 2WorkerV2.0.0.0
App 2WorkerV3.0.0.0
App 4SQLV1.0.0.0
App 4WebV1.0.0.0
App 4WebV2.0.0.0
App 4SQLV2.0.0.0
Marketplace
SP app upgrade process
Parent site
Child Site A
Child Site B
Child Site C
Meetings appV1.0.0.0
App1.0.0.0
New version available
App1.0.1.0
Meetings appV1.0.0.0
Meetings appV2.0.0.0
Meetings appV2.0.0.0
App shapes for SharePointFull pageImplement complete app experiences to satisfy business scenarios
PartsCreate app parts that can interact with the SharePoint experience
UI command extensionsAdd new commands to the ribbon and item menus
App shapes for SharePointFull pageImplement complete app experiences to satisfy business scenarios
PartsCreate app parts that can interact with the SharePoint experience
UI command extensionsAdd new commands to the ribbon and item menus
App shapes for SharePoint
Full pageImplement complete app experiences to satisfy business scenarios
PartsCreate app parts that can interact with the SharePoint experience
UI command extensionsAdd new commands to the ribbon and item menus
Office 365 APIs
Office 365 Development Overview
Office 365 device apps
Common Consent
41
Custom client code
_api
JavaScript library Silverlight library .Net CLR library
Execute query REST/
OData
…SearchSites, Lists and
LibsTaxonomy BCSWorkflow
The SharePoint client APIs
Office 365 APIs SharePoint
Sites
Exchange & Outlook.com
Calendar
Contacts
Active Directory
Users
Groups
OneDrive
OneDrive for Business
OneDrive
Client API
Search
Sites, Lists and Libs
Taxonomy
BCSWorkflow
…
Apps for SharePoint
Apps for Office
VS tooling
Store and lifecycle
Contextual apps
Compose time apps
Robust Office 365 APIs
Tools and platform
Android SDK
Adding new endpoints
More APIs (Tasks, Office Graph)
iOS SDK
Embracing Open
Integrating platform + Tools
Empowering users
Continuous innovation
LAST YEAR THIS YEAR THE FUTURE
Resources
Office 365 Development Overview
dev.Office.comEnvironment
1.365 Developer Tenant Signup - Sign up for your Office 365 Developer Tenant to start building Apps for Office and SharePoint and get access to the Office 365 APIs.2.Adding Dev Site to Existing O365 Subscription - If you already have an Office 365 Subscription you can get a developer tenant for free inside your existing tenant.3.Microsoft Azure Tenant Signup - Get a Microsoft Azure tenant to host your provider-hosted SharePoint apps or custom web apps that use Office 365 APIs.4.Sign up for a Seller Dashboard account to publish your apps into the Office Store.
dev.Office.comEnvironment
http://msdn.microsoft.com/en-us/subscriptions/aa718661.aspx
dev.Office.comEnvironment
https://www.microsoftofficedemos.com/
dev.Office.comTools
1.Get the Visual Studio Latest Update to start building apps for Office and SharePoint with project templates and starting points.2.Get the Office 365 API Tools for Visual Studio 2013 to start leveraging the Office 365 APIs inside your web applications.3.Get the Office 365 SDK for Android to start building native Android apps leveraging the Office 365 APIs.
dev.Office.comIntroduction to Office 365 DevelopmentAround the globe, 1 billion Office users spend an average of two to three hours each day in Office clients, with more than 400 petabytes of data hosted in the Office 365 service. If you're a web developer, the Office 365 platform gives you the opportunity to reach these users with your business solutions, automate the day-to-day solutions, and even create custom solutions.
http://channel9.msdn.com/Series/Introduction-to-Office-365-Development
dev.Office.comSharePoint 2013 Development: Client Object Model and REST API This course covers the fundamental use of the Client Object Model (CSOM) and the REST API, discusses how they have evolved in SharePoint 2013, and highlights many of the their new features.
http://www.pluralsight.com/courses/table-of-contents/sharepoint-2013-client-object-model-rest
This package is released by a group of volunteers who are committed to continue further expanding this sample package in the future. You are more than welcome to join the team on helping to provide samples which shows different patterns and practices towards app model development with SharePoint and Office client.
Currently this project is very focused on the SharePoint scenarios but we are keeping a keen eye towards including the all-up Office Developer story as we move forward. Your submissions on this area are more than welcome.
Patterns & Practices
https://github.com/OfficeDev/PnP
Github.com/OfficeDevSDKsAndroid SDK
Code Samples• WikiPedia App for Word• Campaign Manager for Android• Expense Manager for Windows 8• Research Manager inc. AngularJS• Building Snippets for Word
ContributeWe want your enhancements and your samples!
GitHub
https://github.com/OfficeDev
Patterns & Practices
Videos
http://channel9.msdn.com/Blogs/Office-365-Dev
SharePoint 2013 and SharePoint Online solution packsThe SharePoint 2013 and SharePoint Online solution packs contain code samples and documentation that demonstrate how to use site branding and site provisioning techniques as well as search customization scenarios for SharePoint 2013 and SharePoint Online.
http://www.microsoft.com/en-us/download/details.aspx?id=42030
dev.Office.comOpportunity
Build
Transform
Code Samples
Patterns & Practices
API Reference
Community
Office 365 Developer Center
http://dev.office.com/
dev.Office.comOffice 365 Developer Center
Broadcasts
Office 365 Developer Podcast (http://blogs.office.com/2014/06/05/office-365-developer-podcast-episode-001-with-chris-johnson-and-sonya-koptyev/)
Microsoft Cloud Show (http://www.microsoftcloudshow.com/)
dev.Office.comOffice 365 Technical Network on Yammer
https://www.yammer.com/itpronetwork
59
Monthly updates
Developer features
Associated blog posts
Roadmap
©2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Office, Azure, System Center, Dynamics 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.