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

Preview:

DESCRIPTION

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

Citation preview

msdevcon.ru #msdevcon

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

Ай-Теко

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

UMSOFT

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

2013

SharePoint hosted apps

Cloud-Hosted apps

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

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

2007: Feature framework & WSP

2010: Sandbox solutions & Client Side

2013: Apps

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

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

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

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

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

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

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

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

2013

SharePoint hosted apps

Cloud-Hosted apps

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

Почему SharePoint hosted apps

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

экземпляров

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

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

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

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

Изоляция 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/

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

Данные

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

• WebProxy• App scoped ECTs

Интерфейс

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

Логика

• JavaScript• Workflows• Custom Actions

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'

Как обратиться к 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());

DEMO

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

UMSOFT

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

2013

SharePoint hosted apps

Cloud-Hosted apps

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

SharePoint 2013 Remote API

JavaScript Library

Silverlight Library

.Net CLR Library

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

Client

Server

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

RESTODataJSON

CSOM

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

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

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

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);});

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

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

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

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

DEMO

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

UMSOFT

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

2013

SharePoint hosted apps

Cloud-Hosted apps

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

DEMO

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

UMSOFT

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

2013

SharePoint hosted apps

Cloud-Hosted apps

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

Q&A

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

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

@mbakirov

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

http://gandjustas.blogspot.ru

@gandjustas

Recommended