1 / 36

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

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

danika
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Создание приложений (Apps) для SharePoint 2013 в Облаке Марат Бакиров UMSOFT Станислав Выщепан Ай-Теко

  2. Обзор • Что такое приложения (apps) для SharePoint 2013 • SharePoint hosted apps • Cloud-Hosted apps • Возможности приложений

  3. Историяразработки для SharePoint • 2003: XML • 2007: Feature framework & WSP • 2010: Sandbox solutions & Client Side • 2013: Apps

  4. Хостинг приложений SharePoint Web Your Hosted Site Provider-hosted App “Построй свою инфраструктуру” Cloud-hosted apps Обработчики событийCSOM/REST + OAuth Autohosted App Windows Azure + SQL Azure автоматически создается при установке app SharePoint Web Azure Host web • SharePoint-Hosted App • Используем артефакты SharePoint (списки, страницы) • Клиентские технологии и workflow App Web (from WSP)

  5. Формы приложений Полная страница Отдельная страница приложения со своей навигацией • App Parts • Аналог веб-части для размещения на страницах сайтов SharePoint • Пункт меню • Команда в Ribbon или Меню

  6. Обзор • Что такое приложения (apps) для SharePoint 2013 • SharePoint hosted apps • Cloud-Hosted apps • Возможности приложений

  7. Почему SharePoint hosted apps Без дополнительнойинфраструктуры Одинаково работает в Office365 и on-prem Встроеннаяизоляцияэкземпляров Без лишнихзатрат Автоматическаяаутентификация

  8. Изоляция SharePoint-hosted приложений • 1 экземпляр приложения= 1 “app web” • Каждый App webs имеет свой домен: • Использует same-origin policy в браузере для изоляции JavaScript Host web https://contoso.sharepoint.com/site/ App web https://contoso-appUID.sharepoint.com/site/app/

  9. Доступные компоненты • Данные • Списки • Библиотеки • WebProxy • App scoped ECTs • Интерфейс • Страницы (только разметка) • CSS файлы • Custom Actions • Встроенные Веб-части • Логика • JavaScript • Workflows • Custom Actions

  10. JSOM & REST • JavaScript object model varctx = new SP.ClientContext("http://contoso-appUID.spo.com/site/app");ctx.load(ctx.get_web());ctx.executeQueryAsync(); • REST/OData http://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'

  11. Как обратиться к Host Web • Чтобы обратиться к артефактам за пределами appweb: • Запросить разрешения • Сделать CSOM вызов, используя правильный контекст • varctx = new SP.ClientContext(appWebUrl); • varappContextSite = new SP.AppContextSite(ctx, targetUrl); • ctx.Load(appContextSite.get_web());

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

  13. Обзор • Что такое приложения (apps) для SharePoint 2013 • SharePoint hosted apps • Cloud-Hosted apps • Возможности приложений

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

  15. Недостатки Cloud hosted app • Необходимо самостоятельно хоститьapp • Azure или другие провайдеры • Ваша собственная инфраструктура • Необходимо использовать OAuth или S2S • Управлять токенамиOAuth • Настраивать «доверие» S2S в on-prem • Необходимо поддерживать консистентный внешний вид • Стили и chromeкак в SharePoint

  16. OAuth • Защищенное взаимодействие с SharePoint • App и SharePoint доверяют третьей стороне (ACS) • Доверие создается используя ClientIdи ClientSecret • SharePoint и ACS знают ClientId • App и ACS знают ClientSecret • OAuth Token Flow • SharePoint получает Context Token от ACS и передает приложению • App проверяет Context Tokenи получает Access Token от ACS • Access Token используется App для доступа к SharePoint

  17. High-Trust apps • OAuth не работает в On-prem • Можно подключить, но требует Office365 Tenant • S2S Trust позволяет app обращаться напрямую • Доверие устанавливается с помощью сертификатов • App имеет приватный ключ, которым подписывает запросы • Недостатки • Требуется настройка фермы • Работает только в on-prem

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

  19. Какое API использовать • Вapps доступны только CSOM\REST API • Только они поддерживают OAuth\S2S • Веб-сервисыне доступны • Требуют аутентификацию пользователя • Серверная объектная модель не доступна • Требует запуска на ферме

  20. SharePoint 2013 Remote API _apiэто алиас для _vti_bin/client.svc Server Client CSOM REST OData JSON JavaScript Library Silverlight Library .Net CLR Library Произвольный код

  21. Chrome control • Консистентный внешний вид app • Подтягивает темы с host web • Включает ссылку на host web • Обязательное требование Microsoft • Настраиваемое меню команд • Можно добавлять ссылки на любые страницы

  22. Chrome control $(function () { var options = { appIconUrl: "siteicon.png", appTitle: "Chrome control app" } varnav = new SP.UI.Controls.Navigation( "chrome_ctrl_placeholder", options ); nav.setVisible(true); });

  23. Remote Event Receivers • Аналог серверных ресиверов • Синхронные и асинхронные события • События элементов, списков, сайтов, безопасности и приложений • Не гарантируется доставка событий • В случае недоступности сервера ресиверы игнорируются • Для отладки необходимо использовать Azure Service Bus

  24. Autohosted app Марат Бакиров UMSOFT

  25. Обзор • Что такое приложения (apps) для SharePoint 2013 • SharePoint hosted apps • Cloud-Hosted apps • Возможности приложений

  26. Разрешения приложений Сильно отличаются от разрешений для пользователей • Даются по принципу «все или ничего» Не учитывают иерархию объектов • Разрешения можно получить только на весь сайт\коллекцию целиком • Разрешения могут быть выданы на разные области • Список, сайт, коллекция сайтов или тенант • Поиск,BCS, таксономия, профили пользователей • Отдельные возможности Project Server

  27. Политики разрешений • App + User policy • Пользователь И приложение должны иметь доступ к ресурсу (пересечение) • Если не хватает разрешений, то «нет доступа» или «элемент не найден» • App-only policy • Только приложение должно иметь доступ к ресурсу • Приложение может обращаться к SharePoint без контекста пользователя • Только в серверном коде • User Policy • Не используется в приложениях

  28. App-only Policy • Два основных сценария: • Выполнение действий с разрешениями выше, чем у текущего пользователя (повышение привилегий) • Обращение к SharePoint без контекста пользователя • Как это сделать • ДобавитьAllowAppOnlyPolicyв AppManifest.xml • Написать код для получения app only access token

  29. Workflow • Используется движок WF4 • Поддерживаются циклы и переходы к предыдущим состояниям • Автоматически привязываются к спискам на app web • Можно привязать к host web с помощью кода

  30. App-scoped ECT • Можно создавать внешние типы контента в app • Раньше только на уровне всей фермы • Работает с OData источниками данных • Удобный дизайнер в студии

  31. App parts • Тоже самое что Web Part с iframe • Внутри отображается обычная страница из app • Можно задавать настраиваемые свойства • Доступные типы свойств: string, enum, int, bool • Не поддерживают connections • И вообще и никак не получить данные из родительской страницы 

  32. Custom Actions • Можно добавлять команды на host web • Единственный способ передать данные из host web в app • В любые меню и ribbon • Только ссылку, javascript:кодне работает • Команды могут отображать страницу в диалоге • Достаточно добавить HostWebDialog="true"в XML

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

  34. Заключение • Что такое приложения (apps) для SharePoint 2013 • SharePoint hosted apps • Cloud-Hosted apps • Возможности приложений

  35. Q&A Марат Бакиров UMSOFT http://www.gotdotnet.ru/blogs/mbakirov @mbakirov Станислав Выщепан Ай-Теко http://gandjustas.blogspot.ru @gandjustas

More Related