Страницы с тегами : Silverlight

Создание Silverlight приложений для SharePoint. Часть 2.

Полгода прошло с тех пор как я опубликовал первую часть статьи. Как раз полгода назад произошло смещение приоритетов веб-разработки Microsoft  в сторону HTML5, и злые языки начали пророчить скорую смерть Silverlight. Тем не менее вышла пятая версия SL и, скорее всего, будет еще и шестая. Тем не менее фокус больше смещается в сторону HTML\JS, и по слухам в следующей версии SharePoint будет гораздо больше javascript и гораздо меньше SL.

Поэтому данная статья будет больше обзорной.

Варианты развертывания Silverlight приложений

Как обычно их три:

  1. В sandbox решении в виртуальную файловую систему sharepoint.
  2. В fulltrust решении в физическую файловую систему.
  3. Приложение на внешнем сервере, с использованием fluid application model.
Размещение Silverlight на портале.

Самый часто используемый способ – веб-часть silverlight. Её можно найти в категории Media. Также возможно создание своих веб-частей, которые отображают silverlight приложение, чтобы передать дополнительные параметры и\или сделать fallback. Но лучше такие веб-части не создавать, а воспользоваться расширением для visual studio. А в следующей версии visual studio такая веб-часть доступна “изкаропки”.

Еще один вариант – создание field control на silverlight. Пример можно посмотреть в статье на msdn.

Демо-приложение

Для демонстрации всех способов развертывания напишу простое приложение, при запуске оно будет выводить Title узла, на котором запущено приложение.

Сначала надо добавить в проект SL сборки Microsoft.SharePoint.Client.Silverlight  и Microsoft.SharePoint.Client.Silverlight.Runtime. Их можно найти в папке {SharePointRoot}\TEMPLATE\LAYOUTS\ClientBin.

Теперь можно написать немного кода:

var ctx = ClientContext.Current;
var web = ctx.Web;
ctx.Load(web, w => w.Title);


                
            


Создание Silverlight приложений для SharePoint. Часть 1.

Зачем?

Как ни странно, но этот вопрос обычно не задают. Многие хотят получить интерактивные интерфейсы SharePoint, но при этом не хотят изучать особенности объектной модели и пользоваться знакомыми инструментами.

Если все же подумать, то причины для создания Silverlight приложения могу быть следующие:

  1. Необходимость создания высокоинтерактивого интерфейса в SharePoint.
    Стандартный интерфейс sharepoint хоть построен с помощью ajax, но все же не является настолько отзывчивым, насколько этого хотят пользователи.
  2. Необходимость производить тяжелые расчеты в окружении с ограниченным доверием.
    Например при развертывании приложений в Office365 вы ограничены sandbox для серверной объектной модели. Ресурсы, потребленные серверным кодом, будут считаться и ваше решение может быть отключено. Кроме того существует тайм-аут в 30 секунда на выполнение кода в sandbox. Silverlight позволяет преодолеть эти ограничения, переложив вычисления на клиентский компьютер.
  3. Расширение возможностей пользовательского интерфейса SharePoint.
    Один из примеров таких расширений – возможность использовать drag-and-drop файлов с локального компьютера в библиотеку документов (ссылка на статью).
  4. Создание бизнес-приложения, которое в дальнейшем может быть установлено для автономной работы (out-of-browser).
  5. Hi-end media-сценарий. Без Silverlight пока что невозможен smooth streaming.

В указанных выше случаях Silverlight – практически единственная возможность решить задачу.
Кроме того Silverlight может использоваться для преодоления ограничений sandbox, связанных с вызовом внешних сервисов, для создания графических элементов управления, итд. Но все это с таким же успехом может быть реализовано с помощью HTML5\javascript.

Почему не стоит использовать Silverlight

Приложения на Silverlight имеют достаточно много ограничений чтобы задуматься об их использовании.

  1. Мобильные устройства. На мобильных устройствах Silverlight нет, если ваше приложение не предусматривает fallback к обычному html+js, то вы потеряете функционал на мобильных устройствах.
  2. Брендинг. Чтобы приложение Silvelight выглядело как остальной портал необходимо приложить довольно много усилий.
  3. UX. Несмотря на богатую графику, простая операция вроде “выделить кусок текста и скопировать” его в Silverlight доступна только в специальных контролах.
  4. Время загрузки. Silverlight приложения загружаются после отрисовки страницы, это всегда заметно глазом человека.

Если вы все таки собираетесь использовать Silverlight в SharePoint

Посмотрите как сам SharePoint использует Silverlight. Меню создания сайта\списка сделано на Silverlight, это скорее неудачное решение. Данное меню сильно таращит на русском языке. При возникновении ошибки в процессе создания элемента появляется popup с Corellation ID, но этот Corellation ID оттуда нельзя скопировать.
Другой, гораздо более удачный, пример – множественная загрузка файлов в библиотеку. Это почти незаметный компонент, который тем не менее может сильно упростить жизнь пользователям.
Еще один хороший пример использования Silverligth в SharePoint – инструмент, называемый decomposition tree, из Performane Point Services. С его помощью можно формировать декомпозицию мер по измерениями в кубе SSAS.

Посмотрите также проект SharePoint People Search Pivot Viewer WebPart. Очень показательно какие возможности имеет Silverlight для визуализации данных SharePoint.

Чтобы научиться создавать приложения на Silverlight для SharePoint можно пройти учебный курс.