Создание приложений ( Apps ) для SharePoint 2013 в Облаке

36
msdevcon.ru #msdevcon

description

Создание приложений ( Apps ) для SharePoint 2013 в Облаке. Марат Бакиров UMSOFT. Станислав Выщепан Ай- Теко. Обзор. Что такое приложения (apps) для SharePoint 2013 SharePoint hosted apps Cloud-Hosted apps Возможности приложений. История разработки для SharePoint. 2003 : XML - PowerPoint PPT Presentation

Transcript of Создание приложений ( Apps ) для SharePoint 2013 в Облаке

Page 1: Создание приложений ( Apps ) для  SharePoint  2013 в Облаке

msdevcon.ru #msdevcon

Page 2: Создание приложений ( Apps ) для  SharePoint  2013 в Облаке

Создание приложений (Apps) для SharePoint 2013 в ОблакеСтанислав Выщепан

Ай-Теко

Марат Бакиров

UMSOFT

Page 3: Создание приложений ( Apps ) для  SharePoint  2013 в Облаке

Обзор Что такое приложения (apps) для SharePoint

2013

SharePoint hosted apps

Cloud-Hosted apps

Возможности приложений

Page 4: Создание приложений ( Apps ) для  SharePoint  2013 в Облаке

История разработки для SharePoint2003: XML

2007: Feature framework & WSP

2010: Sandbox solutions & Client Side

2013: Apps

Page 5: Создание приложений ( Apps ) для  SharePoint  2013 в Облаке

Хостинг приложений

App Web (from WSP)

HostwebSharePoint-Hosted

AppИспользуем артефакты

SharePoint (списки, страницы)

Клиентские технологии и workflow

Provider-hosted App

“Построй свою инфраструктуру”

SharePoint

Web

Обработчики событийCSOM/REST + OAuth

Cloud-hosted apps

Your Hosted

Site

Autohosted AppWindows Azure + SQL Azure автоматически

создается при установке app

Azure SharePoint Web

Page 6: Создание приложений ( Apps ) для  SharePoint  2013 в Облаке

Формы приложений

Полная страница

Отдельная страница приложения со своей навигацией

App PartsАналог веб-части для размещения на страницах сайтов SharePoint

Пункт менюКоманда в Ribbon или Меню

Page 7: Создание приложений ( Apps ) для  SharePoint  2013 в Облаке

Обзор Что такое приложения (apps) для SharePoint

2013

SharePoint hosted apps

Cloud-Hosted apps

Возможности приложений

Page 8: Создание приложений ( Apps ) для  SharePoint  2013 в Облаке

Почему SharePoint hosted apps

Встроеннаяизоляция

экземпляров

Без лишнихзатрат

Без дополнительнойинфраструктуры

Автоматическаяаутентификация

Одинаково работает в Office365и on-prem

Page 9: Создание приложений ( Apps ) для  SharePoint  2013 в Облаке

Изоляция SharePoint-hosted приложений1 экземпляр приложения = 1 “app web”

Каждый App webs имеет свой домен:

Использует same-origin policy в браузере для изоляции JavaScript

Host web

App web

https://contoso.sharepoint.com/site/

https://contoso-appUID.sharepoint.com/site/app/

Page 10: Создание приложений ( Apps ) для  SharePoint  2013 в Облаке

Доступные компоненты

Данные

• Списки• Библиотеки

• WebProxy• App scoped ECTs

Интерфейс

• Страницы (только разметка)• CSS файлы• Custom Actions• Встроенные Веб-части

Логика

• JavaScript• Workflows• Custom Actions

Page 11: Создание приложений ( Apps ) для  SharePoint  2013 в Облаке

JSOM & RESTJavaScript object modelvar ctx = new SP.ClientContext("http://contoso-appUID.spo.com/site/app");ctx.load(ctx.get_web());ctx.executeQueryAsync();

REST/ODatahttp://contoso-appUID.spo.com/site/app/_api/web/Title

_api/web/lists_api/web/lists/getByTitle('Documents')

_api/social.feed/my/news_api/SP.UserProfiles.PeopleManager/getMyProperties()_api/search/query?Querytext='Marketing'

Page 12: Создание приложений ( Apps ) для  SharePoint  2013 в Облаке

Как обратиться к Host WebЧтобы обратиться к артефактам за пределами app web:1. Запросить разрешения

2. Сделать CSOM вызов, используя правильный контекст

var ctx = new SP.ClientContext(appWebUrl);

var appContextSite = new SP.AppContextSite(ctx, targetUrl);

ctx.Load(appContextSite.get_web());

Page 13: Создание приложений ( Apps ) для  SharePoint  2013 в Облаке

DEMO

SharePoint hosted appМарат Бакиров

UMSOFT

Page 14: Создание приложений ( Apps ) для  SharePoint  2013 в Облаке

Обзор Что такое приложения (apps) для SharePoint

2013

SharePoint hosted apps

Cloud-Hosted apps

Возможности приложений

Page 15: Создание приложений ( Apps ) для  SharePoint  2013 в Облаке

Для чего использовать Cloud hosted appСерверный кодC#, PHP, Java, Ruby, ваш_любимый_язык

Повышение привилегийВыполнять код с разрешениями выше, чем у пользователя

Обработчики событийОбрабатывать события установки и удаления app

Обрабатывать события элементов, списков, сайтов, события безопасности

Page 16: Создание приложений ( Apps ) для  SharePoint  2013 в Облаке

Недостатки Cloud hosted appНеобходимо самостоятельно хостить appAzure или другие провайдеры

Ваша собственная инфраструктура

Необходимо использовать OAuth или S2SУправлять токенами OAuth

Настраивать «доверие» S2S в on-prem

Необходимо поддерживать консистентный внешний видСтили и chrome как в SharePoint

Page 17: Создание приложений ( Apps ) для  SharePoint  2013 в Облаке

OAuthЗащищенное взаимодействие с SharePointApp и SharePoint доверяют третьей стороне (ACS)

Доверие создается используя ClientId и ClientSecretSharePoint и ACS знают ClientId

App и ACS знают ClientSecret

OAuth Token Flow1. SharePoint получает Context Token от ACS

и передает приложению

2. App проверяет Context Token и получает Access Token от ACS

3. Access Token используется App для доступа к SharePoint

Page 18: Создание приложений ( Apps ) для  SharePoint  2013 в Облаке

High-Trust appsOAuth не работает в On-premМожно подключить, но требует Office365 Tenant

S2S Trust позволяет app обращаться напрямуюДоверие устанавливается с помощью сертификатов

App имеет приватный ключ, которым подписывает запросы

НедостаткиТребуется настройка фермы

Работает только в on-prem

Page 19: Создание приложений ( Apps ) для  SharePoint  2013 в Облаке

Управление токенами OAuthВаше приложение должно запрашивать токеныVisual Studio генерирует класс TokenHelper для этих целей

Page 20: Создание приложений ( Apps ) для  SharePoint  2013 в Облаке

Какое API использоватьВ apps доступны только CSOM\REST APIТолько они поддерживают OAuth\S2S

Веб-сервисы не доступныТребуют аутентификацию пользователя

Серверная объектная модель не доступнаТребует запуска на ферме

Page 21: Создание приложений ( Apps ) для  SharePoint  2013 в Облаке

SharePoint 2013 Remote API

JavaScript Library

Silverlight Library

.Net CLR Library

Произвольный код

Client

Server

_api это алиас для _vti_bin/client.svc

RESTODataJSON

CSOM

Page 22: Создание приложений ( Apps ) для  SharePoint  2013 в Облаке

Chrome controlКонсистентный внешний вид appПодтягивает темы с host web

Включает ссылку на host webОбязательное требование Microsoft

Настраиваемое меню командМожно добавлять ссылки на любые страницы

Page 23: Создание приложений ( Apps ) для  SharePoint  2013 в Облаке

Chrome control$(function () { var options = { appIconUrl: "siteicon.png", appTitle: "Chrome control app" }

var nav = new SP.UI.Controls.Navigation( "chrome_ctrl_placeholder", options ); nav.setVisible(true);});

Page 24: Создание приложений ( Apps ) для  SharePoint  2013 в Облаке

Remote Event ReceiversАналог серверных ресиверовСинхронные и асинхронные события

События элементов, списков, сайтов, безопасности и приложений

Не гарантируется доставка событийВ случае недоступности сервера ресиверы игнорируются

Для отладки необходимо использовать Azure Service Bus

Page 25: Создание приложений ( Apps ) для  SharePoint  2013 в Облаке

DEMO

Autohosted appМарат Бакиров

UMSOFT

Page 26: Создание приложений ( Apps ) для  SharePoint  2013 в Облаке

Обзор Что такое приложения (apps) для SharePoint

2013

SharePoint hosted apps

Cloud-Hosted apps

Возможности приложений

Page 27: Создание приложений ( Apps ) для  SharePoint  2013 в Облаке

Разрешения приложенийСильно отличаются от разрешений для пользователейДаются по принципу «все или ничего»

Не учитывают иерархию объектовРазрешения можно получить только на весь сайт\коллекцию целиком

Разрешения могут быть выданы на разные области Список, сайт, коллекция сайтов или тенант

Поиск, BCS, таксономия, профили пользователей

Отдельные возможности Project Server

Page 28: Создание приложений ( Apps ) для  SharePoint  2013 в Облаке

Политики разрешенийApp + User policyПользователь И приложение должны иметь доступ к ресурсу (пересечение)

Если не хватает разрешений, то «нет доступа» или «элемент не найден»

App-only policyТолько приложение должно иметь доступ к ресурсу

Приложение может обращаться к SharePoint без контекста пользователя

Только в серверном коде

User PolicyНе используется в приложениях

Page 29: Создание приложений ( Apps ) для  SharePoint  2013 в Облаке

App-only PolicyДва основных сценария:1. Выполнение действий с разрешениями выше, чем у текущего пользователя

(повышение привилегий)

2. Обращение к SharePoint без контекста пользователя

Как это сделать3. Добавить AllowAppOnlyPolicy в AppManifest.xml

4. Написать код для получения app only access token

Page 30: Создание приложений ( Apps ) для  SharePoint  2013 в Облаке

WorkflowИспользуется движок WF4Поддерживаются циклы и переходы к предыдущим состояниям

Автоматически привязываются к спискам на app webМожно привязать к host web с помощью кода

Page 31: Создание приложений ( Apps ) для  SharePoint  2013 в Облаке

App-scoped ECTМожно создавать внешние типы контента в appРаньше только на уровне всей фермы

Работает с OData источниками данных

Удобный дизайнер в студии

Page 32: Создание приложений ( Apps ) для  SharePoint  2013 в Облаке

App partsТоже самое что Web Part с iframeВнутри отображается обычная страница из app

Можно задавать настраиваемые свойстваДоступные типы свойств: string, enum, int, bool

Не поддерживают connectionsИ вообще и никак не получить данные из родительской страницы

Page 33: Создание приложений ( Apps ) для  SharePoint  2013 в Облаке

Custom ActionsМожно добавлять команды на host webЕдинственный способ передать данные из host web в app

В любые меню и ribbonТолько ссылку, javascript:код не работает

Команды могут отображать страницу в диалогеДостаточно добавить HostWebDialog="true" в XML

Page 34: Создание приложений ( Apps ) для  SharePoint  2013 в Облаке

DEMO

Provider hosted appМарат Бакиров

UMSOFT

Page 35: Создание приложений ( Apps ) для  SharePoint  2013 в Облаке

Заключение Что такое приложения (apps) для SharePoint

2013

SharePoint hosted apps

Cloud-Hosted apps

Возможности приложений

Page 36: Создание приложений ( Apps ) для  SharePoint  2013 в Облаке

Q&A

Марат БакировUMSOFT

http://www.gotdotnet.ru/blogs/mbakirov

@mbakirov

Станислав ВыщепанАй-Теко

http://gandjustas.blogspot.ru

@gandjustas