office 365 for developers

62
Overview Office 365 for Developers Bruce Kyle ISV Architect Evangelist Developer & Platform Evangelism, West Region US Partner Team Microsoft Corporation

Upload: wes-yanaga

Post on 13-May-2015

12.594 views

Category:

Technology


1 download

DESCRIPTION

Overview of features, techniques, features for developing on Office 365 Online. For technical decision makers, architects, developers.

TRANSCRIPT

Page 1: Office 365 for Developers

OverviewOffice 365 for DevelopersBruce KyleISV Architect EvangelistDeveloper & Platform Evangelism, West Region US Partner TeamMicrosoft Corporation

Page 2: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Page 3: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Agenda

• Developing for SharePoint Online Standard• What Is Supported• Sandboxed Solutions• Client Object Model• Windows Azure Integration• SharePoint Services & Workflow

• Migration Approaches• ISV Early Adoption Programs

Page 4: Office 365 for Developers

Office 365 Overview

Page 5: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Announcing Microsoft Office 365

BRINGING TOGETHER CLOUD VERSIONS OF OUR MOST TRUSTED COMMUNICATIONS AND COLLABORATION PRODUCTS WITH THE LATEST VERSION OF OUR DESKTOP SUITE FOR BUSINESSES OF ALL SIZES. 

Page 6: Office 365 for Developers

What Is Supported; What Isn’t Supported

SharePoint Online Standard

Page 7: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Key Extensibility Points for SharePoint Online

• Sandboxed Solutions• SharePoint Server

Ribbon• SharePoint Dialog Boxes• Event Enhancements• Rest APIs

• Silverlight Webpart• Listbox Lookups &

Relationships• LINQ to SharePoint• Client Object Model

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=4387e030-73dc-48e7-ac95-abc043b9335a

Architecture Guidelines

Page 8: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

SharePoint Online Platform for Devs

• OOTB Browser• SharePoint Designer 2010• Visual Studio 2010• Sandbox Solutions• Code• Feature Receivers, Event Receivers, Navigation, Web Parts, InfoPath Forms Logic,

Custom Declarative Workflow Activities• Declarative• Declarative Workflows, Content Types, Site Columns, List Definitions, Lists, Custom

Ribbon Actions/Extensions, Web templates, Site Pages, Page Layouts, Master Pages

• Client Object Model• Silverlight, JavaScript• .NET

Page 9: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Supported

• WSP Installs• Branding• On the Server• Sandbox Solutions

• On the Client• Client Object Model

• SharePoint Services, Workflows

Page 10: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Supported - Branding

• Custom branding• Master Pages, Page Layouts• CSS• Themes

• Embedding custom controls and Silverlight applications• Web Part limitations

• Deploying .js files to the Master Page Gallery

Page 11: Office 365 for Developers

Sandbox

SharePoint Online Standard

Page 12: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Administration

SharePoint 2010 SharePoint Online

Page 13: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Sandboxed Solution

• Designed for farm administrators to trust custom solutions will not damage or impair the SharePoint farm

• Gives site collection admins authority to manage apps in site collection

• Developers can create solutions deployed safely

Page 14: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Sandboxed Solutions

• Look and behave like farm solution• Sandboxed solution marked to allow partially trusted callers

• Scoped to SPSite / Site Collection• Web Parts• Lists• List Templates• Custom Actions• Workflows• Event Receivers• Content Types• Site Columns

• Compile time support within Visual Studio

Page 15: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Sandbox Benefits

• Removes risk of affecting processes outside the sandbox

• Deployment by site collection administrators• Increased scalability and flexibility are increased• A solution does not have to be modified or

recompiled if it is moved from a sandbox to running directly on the farm

Page 16: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Permitted Feature Elements

• ContentType • Field • CustomAction • Module • ListInstance • ListTemplate • Receivers• WebTemplate • WorkflowAssociation • PropertyBag • WorkflowActions

Page 17: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Sandbox Assemblies Cannot• Connect to resources that are not

located on the local server• Access a database• Change the threading model• Call unmanaged code• Write to disk• Access resources in a different site

collection

Office 365 Limitations Until GA++• No BCS• No Web Service Calls

Page 18: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Components You Can Deploy in Sandbox

• Web Parts• Event receivers• Feature receivers• Custom Microsoft SharePoint

Designer workflow activities• Microsoft InfoPath business logic

Page 19: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Sandbox Solution Support SummaryItem Template Sandbox Compatible?

Visual Web Part No

Visual Web Part (Sandboxed) Yes

Web Part Yes

Sequence Workflow No

State Machine Workflow No

Business Data Connectivity Model No

Application Page No

Event Receiver Yes

Module Yes

Content Type Yes

List Definition from Content Type Yes

List Definition Yes

List Instance Yes

Empty List Yes

User Control No

Page 20: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Sandbox Deployment

• WSP files• Solution Gallery located at root of site collection

Microsoft Conidential - NDA Only

Page 21: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Sandboxed Solution Monitoring• Quotas specify limits for

resource consumption per day• Summed across solutions deployed

to Site Collection• i.e.: add up CPU Points for all

solutions• Solution is self-regulated vs.

quotas to protect Site Collection• Throttled• Deactivated

Page 22: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Monitored Resources

Metric Name Description UnitsResources Per Point

Hard Limit

AbnormalProcessTerminationCount Process gets abnormally terminated Count 1 1

CPUExecutionTime CPU exception time Seconds 3,600 60CriticalExceptionCount Critical exception fired Number 10 3

InvocationCountNumber of times solution has been invoked

Count N/A N/A

PercentProcessorTime Note: # of cores not factored inPercentage Units of Overall Processor Consumed

85 100

ProcessCPUCycles CPU Cycles 1E+11 1E+11ProcessHandleCount Windows Handles 10,000 1,000

ProcessIOBytes(Hard Limit Only) Bytes written to IO

Bytes 0 1E+08

ProcessThreadCountNumber of Threads in Overall Process

Threads 10,000 200

ProcessVirtualBytes(Hard Limit Only) Memory consumed

Bytes 0 1E+09

SharePointDatabaseQueryCount SharePoint DB Queries Invoked Number 20 100

SharePointDatabaseQueryTimeAmount of time spent waiting for a query to be performed

Seconds 120 60

UnhandledExceptionCount Unhanded Exceptions 50 3

UnresponsiveprocessCountWe have to kill the process because it has become unresponsive

Number 2 1

Page 23: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Building Sandbox Web Part

Page 24: Office 365 for Developers

Client Object Model

SharePoint Online

Page 25: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

SharePoint Client Object Model

• Scoped SharePoint API• Microsoft.SharePoint.Client• Microsoft.SharePoint.Client.Runtime

• Works in• .NET Applications• Silverlight Applications• JavaScript

• Works on client machines (remote)• No need to install SharePoint runtime• Asynchronous operations• Security

Microsoft Confidential - NDA Only

Page 26: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Equivalent Objects

Server (Microsoft.SharePoint)

.NET Managed(Microsoft.SharePoint.Client)

Silverlight(Microsoft.SharePoint.Client.Silverlight)

ECMAScript(SP.js)

SPContext ClientContext ClientContext ClientContext

SPSite Site Site Site

SPWeb Web Web Web

SPList List List List

SPListItem ListItem ListItem ListItem

SPField Field Field Field

Member names mostly the same from server to client (e. g., SPWeb.QuickLaunchEnabled = Web.QuickLaunchEnabled)

Page 27: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Supported Areas

• Site Collections and Sites• Lists, List Items, Views, and List Schemas• Files and Folders• Web, List, and List Item Property Bags• Web Parts• Security• Content Types• Site Templates and Site Collection Operations

Microsoft Confidential - NDA Only

Page 28: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Client Object Model Execution Flow

JavaScript Controls and Logic

Managed Controls and Logic

Managed Object Model

Proxy

Proxy

JavaScript Object Model

Client Service

client.svc

Server Object Model

Content Databases

External Data Sources

ServerManaged Clients

Web Browsers

Microsoft Confidential - NDA Only

SPO-DOr BCS GA+

Page 29: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

SharePoint Online and Silverlight• Silverlight• Many benefits• RIA• Web Services/Distributed Systems• SP Client Object Model makes SP/SPO solutions possible

• SPO• Limitations overcome by SL

• SPO + Silverlight• Common solution pattern for cloud solutions

Page 30: Office 365 for Developers

Azure Integration

Page 31: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Extend & Scale

Developer Experience

Grow your business

Windows Azure Platform

Windows Platform in the Cloud

Cloud Storage

Connected Platform

Azure CloudApp

AppFabric

Page 32: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

What’s Possible?

Azure Integration HowSharePoint Client Object Model Interact with Azure data in a list.

BCS Model data from Azure and/or build external list to SQL Azure.

Silverlight Create UI against Azure services or data.

Sandboxed Solutions Silverlight application leveraging Azure deployed to site collections.

Standard / Visual Web Parts Leverage services and data from Azure.

REST Use REST to interact with Azure data to integrate with SP artifacts.

Office Server Services Combine with OO to auto-gen docs (ex: PDFs) on server.

Workflow / Event Receivers State or events that tie into Azure services or data.

LINQ Use for querying Azure data objects.

Search Federate search to include Azure data.

Microsoft Confidential - NDA Only

SPO-D or GA+

SPO-D

Page 33: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Calling External Code

Microsoft Confidential - NDA Only

SharePoint OnlineInternet

Azure

User

ACS 2.0

SPO

Services

Services

OAUTH2.0

Post-GA

Post-GA

Page 34: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Accessing External Data

Microsoft Confidential - NDA Only

SharePoint Online

Internet

Azure

User

ACS 2.0SPO

Data

Data

OAUTH2.0

BCS

Post-GA

Post-GA

Page 35: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Exposing SP Data to External Code

Microsoft Confidential - NDA Only

SharePoint Online

Internet

Azure

User

SPO

Data

OAUTH2.0

Web Application

Web Application

Post-GA

Page 36: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation On Premise

Azure AppFabric Service Bus Flow

YourService

Users

Azure AppFabric Service Bus Relay

Page 37: Office 365 for Developers

Excel & Access ServicesWorkflow Solutions

SharePoint Online

Page 38: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

SharePoint Services Summary

• Excel Services• Surface Excel data and artifacts in SharePoint Online• Publish pieces of Excel workbooks to SharePoint Online• Interact with Excel data and artifacts with the REST API

and JavaScript Object Model• Access Services• Convert Access databases to SharePoint lists and forms

Page 39: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Workflow Services

• Prototype workflows in Visio 2010• Use diagrams to get sign-off

• Implement the workflow in SharePoint Designer 2010• Custom or copy & modify built

in workflow• Actions, conditions and steps

• Develop custom workflow actions and events in Visual Studio 2010

Page 40: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Workflow Services• Implemented via Workflow Event Receiver• Override SPWorkflowEventReceiver

• Scope• SPSite• SPWeb• SPList• SPContentType

• Events• WorkflowStarting• WorkflowStarted• WorkflowCompleted• WorkflowLoading• WorkflowUnloading • WorkflowPostponed

• Can’t export from SPD2010 to VS2010• Can’t build Visual Studio code workflows in a sandboxed solution

Page 41: Office 365 for Developers

Common SharePoint Migration Approaches

Page 42: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Application Components

• What components make up your applications?• Solutions• Features

• How are they scoped?• Farm, Site, Web

• How do these components map to your target environment?• What changes need to be made?

Page 43: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Multiple paths are possible

• Greenfield• Rewrite components to adhere to best practices before migrating• Migrate data to new locations

• Brownfield• Migrate pieces that work in the target environment• Update architecture later• Ex: http://sharepoint2010.microsoft.com

• Migrate data as needed, or not at all• Gradual vs. Complete• Creating an SPO compatible on premise solution for later

migration.

Microsoft Confidential - NDA Only

Page 44: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Capabilities By Solution TypeScenario Sandbox Hybrid Full-TrustCreate a Web Part that aggregates data from multiple SharePoint lists within the same site collection. *

x x x

Create a Web Part that aggregates data from multiple SharePoint lists from different site collections within the same SharePoint farm.

x x

Create a Web Part that aggregates data from multiple SharePoint lists from different site collections from different SharePoint farms.

x x

Create a Web Part that displays data from an external list. x xCreate a Web Part that interacts with a Web service or a Windows Communication Foundation (WCF) service.

x x

Create a workflow in SharePoint designer. x x xCreate a sandbox workflow action (a method call). xCreate a full-trust workflow activity. x xCreate a workflow in SharePoint designer that uses a full-trust custom coded workflow activity.

x x

Create a fully coded workflow. x

Microsoft Confidential - NDA Only

Page 45: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Capabilities By Solution Type

Scenario Sandbox Hybrid Full-TrustDeploy a new list definition. x x xDeploy a new list definition with list item event receivers. x x xDeploy a list definition with list event receivers. x x xDeploy a site definition. x x xCreate a content type. x xCreate an external content type.** xCreate a new ribbon element. x x xCreate a new Site Actions menu item. x x xCreate an instance of a SharePoint list. x x xProgrammatically create a SharePoint subsite. x x xBind a content type to the home page of a SharePoint subsite. x xDeploy a new application page. xCreate a timer job. xCreate a service application. x

Microsoft Confidential - NDA Only

Page 46: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Mash Up Pattern

Microsoft Confidential - NDA Only

SharePoint Online

On Premises

User

Client Application

SharePoint 2010

SharePoint Online

Services

Client Data Model

Client Data Model

Page 47: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Web Application

Microsoft Confidential - NDA Only

SharePoint Online

On Premises

UserSharePoint 2010

SharePoint Online

Services

Server Application

Client Data Model

Client Data Model

Data

Page 48: Office 365 for Developers

Lync Online

Page 49: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Lync Online Features

• Presence, IM, audio, video, and screen sharing• Lync Web App for online presentations with external

contacts• Federation with customers and partners• Reply by IM from Outlook• IM with Windows Live contacts• Presence and click-to-communicate from Office and

SharePoint

Page 50: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Lync Controls

• “Drag and Drop” feature integration• Contact list, contact search• Presence, contact info,

custom contact list• IM and audio “Click-to-Call”• Supports contextual

conversations

Page 51: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Contextual Conversations

• Launch applications from the Lync conversation window

• Lync Extensibility Window Context• Host Silverlight

applications in the Lync conversation window extension

• Use separately or combine

Page 52: Office 365 for Developers

Exchange Online

Page 53: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Use Exchange Managed Web API

• Managed API for developing applications that use Exchange Web Services • Functional parity with EWS*• Easier than working with EWS proxy classes

• Makes EWS calls under the covers• No additional required server side components

• Backwards compatible• Request versioning

new ExchangeService(ExchangeVersion.Exchange2010_SP1);

• Cloud compatible out of the box

Page 54: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Development Scenarios

• I want Exchange data in my application• Create/Read/Update/Delete operations on mailbox items:

• Appointments• Attachments• Contacts• Emails• Tasks• Public Folders

• I want to leverage Exchange business logic• I want Outlook feature “X” in my application

• Free/Busy• Notifications• Data Sync

Page 55: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

About Exchange Online

• Exchange Web Services Managed API 1.1• Power of Exchange Web Services• Productivity of .NET• Interact with Exchange data from your

applications• Leverage Exchange business logic in your

applications

Page 56: Office 365 for Developers

Resources

Page 57: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Resources – Office 365 Overview

• Office 365• http://office365.microsoft.com

• Office 365 Developer Training Kit• http://msdn.microsoft.com/en-us/sharepoint/gg153540.aspx

• Microsoft Office 365 Fact Sheet• http://www.microsoft.com/presspass/presskits/office/docs/office365

FS.docx• Office 365 Beta Service Descriptions• http://www.microsoft.com/downloads/en/details.aspx?FamilyID=6c6

ecc6c-64f5-490a-bca3-8835c9a4a2ea• SharePoint Online Developer Resource Center • http://msdn.microsoft.com/sharepointonline

Page 58: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Resources - Developers• Developing, Deploying, and Monitoring Sandboxed Solutions in

SharePoint 2010• http://msdn.microsoft.com/en-us/magazine/ee335711.aspx

• SharePoint Online Standard Developer Guide• http://

www.microsoft.com/downloads/en/details.aspx?FamilyID=d007f35e-375c-4b11-bc40-bc9082bb224a&displaylang=en

• Microsoft Patterns & Practices – SharePoint 2010• http://msdn.microsoft.com/en-us/library/ff770300.aspx

• SharePoint 2010 Training Kit• http://channel9.msdn.com/learn/courses/SharePoint2010Developer/

• SharePoint 2010 Training Kit - Client Object Model• http://channel9.msdn.com/learn/courses/SharePoint2010Developer/

ClientObjectModel/

Page 59: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Resources - Developer

• Best Practices: Common Coding Issues When Using the SharePoint Object Modelhttp://msdn.microsoft.com/en-us/library/bb687949.aspx

Page 60: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

ISV Resources

• Join Metro Connect Office 365 and (SharePoint)Azure

http://connect.microsoft.com/metro Deep dives, software design reviews, porting events

• Office 365 Beta http://office365.microsoft.com/

• Microsoft Partner Network Online Services Sales Guideshttps://partner.microsoft.com/40053541

Page 61: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

Summary

• Functionality available in sandboxed solutions• Develop on-premise• Deploy to SPO• Debugging and troubleshooting

• Architect for the sandbox• Server code runs in sandbox• Silverlight

• Call external web services• Azure

• Call Azure-hosted WCF services from Silverlight web parts• Use the Azure AppFabric Service Bus to call on-premise WCF services• Use Azure Worker Roles to simulate long running services

• BCS coming soon after launch

Page 62: Office 365 for Developers

| Copyright© 2011 Microsoft Corporation

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