office 365 development overview

55
Office 365 Development Mahmoud Hamed Technical Consultant, ITWorx

Upload: mahmoud-mahmoud

Post on 26-Jan-2015

113 views

Category:

Technology


4 download

DESCRIPTION

Office 365 Development Overview

TRANSCRIPT

Page 1: Office 365 Development Overview

Office 365 DevelopmentMahmoud HamedTechnical Consultant, ITWorx

Page 2: Office 365 Development Overview

Intro

Office 365 App Model

Office 365 APIs

Resources

Agenda

Page 3: Office 365 Development Overview

Devices + Cloud 2010sPC + Servers 2000s

Technology journeyPC 1990s

Open standards Mobile SDK’s

VBA VBACom add-insVSTOFTC

Page 4: Office 365 Development Overview

Robust APIs

The new Office development platform Contextual apps Flexible tools

Documents Search

Mail

Calendar People

Social

iOS

Page 5: Office 365 Development Overview

Office 365 App Model

Office 365 Development Overview

Page 6: 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.

Page 7: Office 365 Development Overview

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.

Page 8: Office 365 Development Overview

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

Page 9: Office 365 Development Overview

If you know general web development, you also know Office 365 development…

App ModelDevelopment

Page 10: Office 365 Development Overview

Distribution choices

Office Store App Catalog

Page 11: Office 365 Development Overview

Apps for SharePoint

Page 12: Office 365 Development Overview

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

Page 13: Office 365 Development Overview

SharePoint building blocksLists/librariesWeb partsSite columnsContent typesRemote event receiversWorkflows

Page 14: Office 365 Development Overview

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

Page 15: Office 365 Development Overview

Client-side patternSharePoint environmentSite collection

Host web App web

ListsSite pagesCSS filesJavaScript files

Page 16: Office 365 Development Overview

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

Page 17: Office 365 Development Overview

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

Page 18: Office 365 Development Overview

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

Page 19: Office 365 Development Overview

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

Page 20: Office 365 Development Overview

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

Page 21: Office 365 Development Overview

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

Page 22: Office 365 Development Overview

Custom client code

_api

JavaScript library Silverlight library .Net CLR library

Execute query REST/

OData

…SearchLists and

librariesTaxonomy FeedsUser profile

The SharePoint client APIs

Page 23: Office 365 Development Overview

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

Page 24: Office 365 Development Overview

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

Page 25: Office 365 Development Overview

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

Page 26: Office 365 Development Overview

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

Page 27: Office 365 Development Overview

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

Page 28: Office 365 Development Overview

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

Page 29: Office 365 Development Overview
Page 30: Office 365 Development Overview

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

Page 31: Office 365 Development Overview
Page 32: Office 365 Development Overview

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

Page 33: Office 365 Development Overview
Page 34: Office 365 Development Overview

Office 365 APIs

Office 365 Development Overview

Page 35: Office 365 Development Overview

Office 365 device apps

Page 36: Office 365 Development Overview

Common Consent

41

Page 37: Office 365 Development Overview

Custom client code

_api

JavaScript library Silverlight library .Net CLR library

Execute query REST/

OData

…SearchSites, Lists and

LibsTaxonomy BCSWorkflow

The SharePoint client APIs

Page 38: Office 365 Development Overview

Office 365 APIs SharePoint

Sites

Exchange & Outlook.com

Calendar

Contacts

Mail

Active Directory

Users

Groups

OneDrive

OneDrive for Business

OneDrive

Client API

Search

Sites, Lists and Libs

Taxonomy

BCSWorkflow

Page 39: Office 365 Development Overview

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

Page 40: Office 365 Development Overview

Resources

Office 365 Development Overview

Page 41: 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.

Page 42: Office 365 Development Overview

dev.Office.comEnvironment

http://msdn.microsoft.com/en-us/subscriptions/aa718661.aspx

Page 43: Office 365 Development Overview

dev.Office.comEnvironment

https://www.microsoftofficedemos.com/

Page 44: Office 365 Development Overview

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.

Page 45: Office 365 Development Overview

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

Page 46: Office 365 Development Overview

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

Page 47: Office 365 Development Overview

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

Page 48: Office 365 Development Overview

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

Page 50: Office 365 Development Overview

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

Page 51: Office 365 Development Overview

dev.Office.comOpportunity

Build

Transform

Code Samples

Patterns & Practices

API Reference

Community

Office 365 Developer Center

http://dev.office.com/

Page 52: Office 365 Development Overview

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/)

Page 53: Office 365 Development Overview

dev.Office.comOffice 365 Technical Network on Yammer

https://www.yammer.com/itpronetwork

Page 54: Office 365 Development Overview

59

Monthly updates

Developer features

Associated blog posts

Roadmap

Page 55: Office 365 Development Overview

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