среда, 25 июля 2012 г.

Apps в SharePoint 2013

Apps – это, наверное, наиболее революционное изменение в SharePoint 2013 по сравнению с 2010й версией. В этой статье мне хочется рассказать, почему про Apps нужно узнать уже сейчас, ну и, конечно, что это вообще такое.

Что такое Apps в SharePoint 2013?

Как нетрудно догадаться, название Apps пришло в SharePoint с мобильных платформ. Собственно, идея совершенно та же самая: есть MarketPlace (SharePoint Store), там лежат приложения (Apps), они бывают платные и бесплатные, их можно установить (или купить и установить), ну и дальше можем запускать и пользоваться этим приложением. Просто и удобно. Практически всё то же самое можно сказать, например, про любое Android-приложение…

Кстати, я даже не удивлюсь, если некоторые Android-приложения, сделанные на платформе PhoneGap, можно будет без особых изменений преобразовывать в SharePoint Apps :) А что, html и javascript же!

Про MarketPlace

Напомню, первый шаг в направлении MarketPlace был сделан еще в SharePoint 2010, с введением Sandboxed Solutions. С выходом Office365, появился и первый глобальный MarketPlace. Видимо, опыт был денежныйудачный, и Microsoft решил развить идею :)

Кстати, любопытно, что на текущий момент все представленные в Office365 MarketPlace продукты можно технически очень четко разделить на три большие группы:

  1. Разные утилиты миграции (Windows-приложения, использующие Client Object Model);
  2. Sandboxed Solutions;
  3. Гибридные Sandbox-решения, которые чаще всего используют облачный хостинг для обхода ограничений Sandbox’а. Яркий пример –небезызвестный Nintex Live.

Новые SharePoint Apps прекрасно ориентированы на облако: есть даже т.н. autohosted SharePoint Apps, доступные правда только в Office 365, которые могут включать Windows Azure веб-приложение и соответствующий webdeploy-скрипт, и при установке вашего приложения будут автоматически развертываться на привязанный к Office365 Windows Azure аккаунт.

Конечно, внешнюю часть SharePoint App можно хостить и на сторонних облачных хостингах (и даже не облачных), но в этом случае автоматику придется самим настраивать :)

Так вот, SharePoint 2013 дает возможность привнести MarketPlace на ваш локальный портал. Почему это важно? А вы вспомните проблему установки SharePoint-решений. MarketPlace – это же ничто иное, как идеальный способ простой установки любого созданного для SharePoint решения вам на портал. Вместо ковыряния с PowerShell’ом, пользователь теперь может легко и просто сделать всё через GUI. Это на самом деле классно и мне кажется, такой подход может здорово удешевить внедрение созданных решений.

Помнится, для нашего коробочного продукта DeskWork, мы писали установщик очень долго, и сталкивались с кучей проблем. Сейчас всё работает очень приятно: Next-Next-Next… – вуаля, портал развернут. Согласитесь, для SharePoint-решения, состоящего из более чем сотни проектов, и включающего суммарно порядка 1 миллиона строк исходного кода, это довольно круто :) Но это нам обошлось очень дорого, и делалось очень долго. А MarketPlace уже предоставляет весь необходимый GUI, дружественный пользователю, да еще и лицензирование упрощает.

И тут, кстати, особенно интересен тот факт, что помимо глобального MarketPlace, вы можете настроить и локальный (т.н. App Catalog). Причем, можно настроить отдельный App Catalog на каждое веб-приложение. Т.е. администраторы веб-приложения могут определить, какие приложения доступны пользователям для установки, добавить в этот список собственные приложения (просто загрузить wsp в некую служебную библиотеку документов) и т.д. Как настраивать App Catalog – описано на Technet.

Почему про Apps важно узнать прямо сейчас?

Любой MarketPlace должен быть заполнен ДО выхода продукта. Начинать писать приложения можно и нужно прямо сейчас. Если вы пишете какие-то более-менее коробочные решения для SharePoint, не забудьте сообщить сей факт своему боссу, наверняка он еще не знает :)

Быть одним из первых приложений в MarketPlace (даже если одним из первых в русском сегменте) – это очень выгодно, поверьте. Сам Microsoft будет вас рекламировать. Например, на DevCon в этом году очень серьезно рекламировались российские приложения для Windows Phone, более-менее удачные из тех, которые есть в MarketPlace.

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

Технические детали

Описанное выше – это с точки зрения пользователя. С точки зрения разработчиков – Apps продолжили список альтернативных видов решений для SharePoint. В 2007й версии был только один вид решений для SharePoint – это то, что мы сейчас называем Farm Solutions. В 2010м SharePoint’е в этот список добавились Sandboxed Solutions, и вот 2013я версия привнесла еще один вариант – Apps.

По большому счету Apps – это еще более изолированная и безопасная для портала опция, чем даже Sandboxed Solutions. Если в Sandboxed Solutions у нас была возможность деплоить серверный код, пусть и сильно ограниченный и зарезанный квотами, то SharePoint Apps не могут использовать серверный код вообще.

Apps могут использовать следующее:

  1. SharePoint Client Object Model (JavaScript или Silverlight)
  2. REST-сервисы
  3. CAML-компоненты уровня Web: возможности (features), custom actions, списки и их определения, типы содержимого, поля, рабочие процессы, страницы, BCS-модели и т.д.

Кроме того, под каждый SharePoint App создается отдельный узел с уникальный поддоменом (т.н. App Web), что препятствует XSS-атакам основного портала (т.к. кросс-доменные запросы, как известно, надежно заблокированы в современных браузерах).

На MSDN есть очень хорошая статья о том, что можно, а что нельзя в Apps, и также некоторые подробности о App Web, Host Web и т.д. – советую почитать: Host webs, app webs, and SharePoint components in SharePoint 2013.

Резюмируя, Apps – это то, что я всегда называл “No-Code Sandboxed Solution”, т.е. Sandboxed Solutions с настройкой Include Assembly Into Package = false, но еще немного более изолированные, и также немного более усовершенствованные.

Что дальше?

Эта статья имеет целью вдохновить вас на дальнейшие исследования, на то чтобы вы всё-таки попробовали написать собственный SharePoint App. Технически, начать чрезвычайно просто: не нужно вообще ничего, даже студии, и весь процесс займет 15 минут. Всё что нужно – это взять триал Office 365 Preview, там установить Napa (вы еще не знаете что такое Napa? позор!), и вуаля, больше ничего и не требуется.

Но конечно, одной технической возможности недостаточно – нужны еще два важных компонента: идея и знания. Идея – это то, что вы хотели бы реализовать в виде SharePoint App. Знания – это спектр сведений, который потребуется при реализации желаемого функционала.

С идеей придется справляться самостоятельно, но вот знания получить проблемы никакой нет. На MSDN есть очень большой раздел, Build apps for SharePoint – с примерами и кучей всего. Так что, вдохновения вам и удачи, уважаемые читатели! Если что-нибудь напишите, не забывайте делиться успехами :)

1 комментарий:

  1. А что есть в SharePoint Apps для повторяющихся задач? на что заменить таймерджобы?

    и ещё вопрос: Если SharePoint Apps деплоит списки и контент тайпы, то они деплоятся в этот самый специальный веб? или в тот откуда я запускал установку?

    ОтветитьУдалить

Внимание! Реклама и прочий спам будут беспощадно удаляться.