Introduccion Desarrollo Office 365

64
Office 365 Development July 2014

description

Introduccion Desarrollo Office 365

Transcript of Introduccion Desarrollo Office 365

Office 365 DevelopmentJuly 2014

Meet Jeremy Thake | @jthake

• Jeremy recently joined Microsoft as Technical Product Manager for the Visual Studio Developer story for Office 365 development

• He has been heavily involved in the SharePoint community since 2006 – SharePoint MVP award 4 years in a row– Chief Architect shipping two Apps to the Office Store

Meet Scott Hillier | @ScotHillier

• Independent consultant and Microsoft SharePoint Most Valuable Professional (MVP)– http://www.shillier.com

• SharePoint Conference 2014– SPC230: Building Search Driven Applications with SharePoint 2013– SPC136: JavaScript Best Practices for Developing Apps– SPC005: A Primer in HTML5 and JavaScript

• Authored over 20 books– Professional SharePoint 2013 Development– Inside Microsoft SharePoint 2013

Jump Start Target Agenda

Office 365 Development

Module 1: Getting started with Apps for SharePoint and Apps for Office

Module 2: Intro to the Office 365 APIs

Module 3: Moving Full Trust Code to the Cloud Using Repeatable Patterns and Best Practices

Getting started with Apps for SharePoint and Apps for Office

Jeremy Thake Technical Product Manager, Microsoft

Scot HillierSharePoint MVP, Scot Hillier Technical Solutions, LLC

Agenda Intro to the app modelApps for SharePointApps for OfficeGetting started

Office 365 development platform Contextual apps Robust Office 365

APIs

Documents Search

Mail

Calendar

People

Social

Flexible tools

Intro to the app model

Contextual appsSurface your apps in the Office 365 platformIn context of your business users productivity activitiesIn Office Client, Office Online, and modern apps

Author
what is official name here for iOS and Android Apps

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

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

ADDING YOUR FIRST APPS

demo

Apps for SharePoint

SharePoint building blocksLists/librariesWeb partsSite columnsContent typesRemote event receiversWorkflows

Architecture of appsAzure

AphacheApp 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 2mySQL

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

ASP.NETpage

ASP.NETpage

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

ASP.NETweb service

ASP.NETweb 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

APIsClient-side APIsREST

CSOM (.NET, JavaScript, Silverlight)

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

(SharePoint-hosted tenant-scope apps not available)

App scoping

Apps in site collection hierarchy

https://intranet.contoso.com/sites/groupx

1

2 2

4

4

Root

Sub site AppWeb

3

Root

News Organization Teams Search AppWeb

https://intranet.contoso.com/sites/team

https://*.contosoapps.com

app

Centrally deployed app

1

Root

AppWeb AppWeb

2https://intranet.contoso.com/sites/

catalog

https://intranet.contoso.com/sites/orgZ 4Root

News Organization Teams Search AppWeb

Root

Sub site

https://intranet.contoso.com/sites/team 4

https://*.contosoapps.com

app3

Packaging and publishing appsPackaging apps.app file extension—a package typically includes the following files:

AppManifest.xml

AppIcon.png

Solution file

Data tier application package

Auto hosted apps

Publishing appsOffice Store

App catalogs

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

AuthenticationAzure

AphacheApp 3web

App 3mySQL

App 3worker

IIS web serverApp 4web

App 4SQL

App 4Windows service

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 2mySQL

App 2worker

VersioningAzure

AphacheApp 2WebV1.0.0.0

App 2SQLV1.0.0.0

IIS web serverApp 3WebV1.0.0.0

App 3SQLV1.0.0.0

App 3workerV1.0.0.0

SharePoint

Web application

Site collection

Root site

App 1V1.0.0.0

App 2V1.0.0.0

App 3 V1.0.0.0

Sub siteApp 2V1.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 2V2.0.0.0

App 2WebV2.0.0.0

App 2SQLV2.0.0.0

App 3WebV3.2.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 scopesSPSite—site collectionSPWeb—websiteSPList—listTenancy—the tenancy scope is at http://<sharepointserver>/<content>/<tenant>/performing search queries, accessing taxonomy data, user profiles, etc.

App rightsRightsRead-only

Write

Manage

Full control (not supported in Store)

Not customizable if an app is granted permission to a scopeThe permission applies to all children of the scope

Setting app rightsApp rights are set whenAn app is installed by an SPWeb administrator

An app is explicitly granted permission by a tenant administrator or SPWeb administrator

An end-user gives consent

An app is removed

Once provisioned, the rights for an app cannot change—they can only be revoked in wholeThis ensures the app will not have to account for missing rights, i.e., become broken after installation

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

APPS FOR SHAREPOINT SAMPLES

demo

Apps for Office

Office 2013 development scenariosWeb and cross-device readyIntegrate rich web content in Office contentInclude contextual content within apps for Office

Pre-Office 2013

Extending Office ribbon

COM add-in

Macro VSTO

Office 2013

Extending Office ribbon

COM add-in

Macro VSTO

App for Office

Document template

App for SharePoint

Office 2013 development optionsPre-Office 2013 developmentExtending Office ribbon

COM add-in

Macro

VSTO

Office 2013 web apps

Content app

Mail app

Office 2013 desktop apps

Task pane app

Content app

Mail app

Office 2013 development example scenarios

Business processes Sales and marketing, finance, and HR

Team collaboration Content and project management

Workflow Document approval and expenses

App for Sharepoint

Document template

App for Office

App for Office

App for Office

App for Office

Translation, definitions, dictionary, help, research

Business data lookup (CRM), contextual forms (surveys)

Rich web content YouTube video and photo gallery

Data visualization, analysis and

mashups

Maps, custom charts, and lookups

Reference tools

Content authoring and

publishingContextual

content and services

Workflow and collaboration

Doc builders and print services

Project tracking, coauthoring

App for Office

Content authoring

Resumes and contracts

Dashboards Data analysis and data mashups

Forms andreports

Legal forms and financial reports

Document template

App for Office

App for Office

App for Office

App for Office

APIsOffice.js

App shapes for Office

Task paneApp adjacent to the document

ContentApp in the body of the document

Mail Inline pane on an email or appointment item

App shapes for Office

Task paneApp adjacent to the document

ContentApp in the body of the document

Mail Inline pane on an email or appointment item

App shapes for Office

Task paneApp adjacent to the document

ContentApp in the body of the document

Mail Inline pane on an email or appointment item

Anatomy of an app for Office

Web server

Office Store or SharePoint app catalog

APPS FOR OFFICE SAMPLES

demo

Getting started

Visual Studio 2013

EnvironmentOffice 365 developer tenantOffice 365 individual developer site collectionOn-premises SharePoint server

BUILDING YOUR FIRST APP FOR OFFICE

demo

BUILDING YOUR FIRST APP FOR SHAREPOINT

demo

ConclusionSurface your business solutions in Office 365 user interfaceLeverage the building blocks of the platform

Dev. .comOffice

One stop shop for Office Developer Platform

Explore our MSDN libraryhttp://dev.office.com

Play with our code sampleshttp://aka.ms/OfficeDevSamples

Follow our patterns & practiceshttp://aka.ms/OfficeDevPnP

Get answershttp://aka.ms/AskSharePointhttp://aka.ms/AskOffice

Give feedback Drive our roadmap http://aka.ms/OfficeDevFeedback

Calls to action

Patterns and practicesProviding App Model Patterns for common Full Trust Code scenarios

30+ Visual Studio projectsCommon scenarios• Branding• Site provisioning• Remote event receivers • Large file support• Taxonomy driven navigation• And much more…

ContributeOpen source coming soon!

aka.ms/OfficeAMS

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