Upload
yvonne-quinn
View
76
Download
0
Embed Size (px)
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