Спонсор: Microsoft
Опубликован: 27.12.2011 | Доступ: свободный | Студентов: 1293 / 32 | Оценка: 4.44 / 4.44 | Длительность: 12:31:00
Лекция 8:

Использование расширений для создания дополнительного функционала в приложениях

Пакет предоставляется бесплатно и может быть загружен по адресу http://visualstudiogallery.msdn.microsoft.com/35c4cf2a-5148-4716-afcf-0ccf8899cabf

Одной из востребованных функций в бизнес–приложениях является анализ данных, в том числе и аналитическая обработка в реальном времени online analytical processing (OLAP). Компания ComponentOne выпустила расширение OLAP for LightSwitch. С его использованием можно реализовать в LightSwitch функции аналогичные сводным таблицам и сводным диаграммам из Microsoft Excel. Используя в качестве источника данных одну из сущностей или запрос LightSwitch ComponentOne OLAP представляет удобный интерфейс для формирования необходимого представления информации. Также в состав этого компонента входит специальный шаблон экрана, на основе которого можно выполнять OLAP-анализ.

Ряд компаний предлагают достаточно интересные расширения на бесплатной основе. Так, Spursoft Solutions разработало продукт LightSwitch Extensions. Эти расширения включают оболочку, основанную на навигации посредством меню, ряд тем элементов управления. Навигационное меню занимает мало места на экране и может быть прикреплено к любой из его сторон, причем настройка может быть выполнена на работающем приложении. Предлагаемые темы включают Office 2010 Black и тему из Silverlight набора. В качестве пользовательских элементов предлагается горизонтальный и вертикальный разделители, просмотрщик для отчетов SQL Server Reporting Services, просмотрщик для PDF документов и выпадающий список, упрощающий навигацию по элементам списка.

Компания DevExpress предлагает разработку DXEditors for LightSwitch, она предоставляется бесплатно для сообщества разработчиков LightSwitch. Данное расширение предназначено для использования в приложениях, отображающих графическую информацию из баз данных. DXEditors упрощает способы работы с информацией для конечных пользователей. Включает в себя:

  • Masked Text Edit - поле ввода по маске для внесения и редактирования данных, имеющих регулярную структуру, например, телефонного номера.
  • Accounting and Percentage Editor - упрощает ввод и редактирование данных в денежном и процентном форматах.
  • Web Image и Web Link Edit – отображает рисунок из поля базы данных или из заданного URL. Редактор Web Link отображает URL и передает его в браузер для просмотра.

Все указанные редакторы могут использоваться в таблице данных.

Разработчики из компании Microsoft, в том числе, из команды LightSwitch Team также предлагают бесплатные компоненты. В частности, компонент Metro Theme Extension , который реализует интерфейс Metro, предлагаемый Microsoft для сенсорных устройств. С помощью этой темы можно в любое приложение LightSwitch добавить поддержку таких устройств.

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

В этот набор входят:

  • Customer Service – приложение для поддержки взаимодействия покупателей и продавцов. Покупатели имеют возможность совершать покупки и оплачивать счета, при необходимости функционал приложения может быть расширен.
  • Issue Tracker - позволяет создавать и управлять процессом издания какого- либо продукта и связанными с этим работами. Издания организованы в соответствии с определенной иерархией, менеджер может назначать исполнителей для работ. Доступны простые механизмы управления, позволяющие упорядочивать и сортировать издания.
  • Time Tracker – приложение помогает создавать расписание и отслеживать его выполнение. Поддерживает хранение сотрудников, расписаний проектов и задач. Приложение может быть расширено под потребности конкретной компании.

Команда разработчиков LightSwitch предлагает бесплатные расширения, реализующие достаточно интересные функции и полезные для критических целей. Расширение Excel Importer добавляет функцию импорта данных из файлов формата Microsoft Excel или CSU в приложении LightSwitch. При этом в ходе импорта обеспечивается контроль правильности данных, а также возможен импорт с учетом отношений между сущностями. Напомним, что возможность экспорта в файл Excel является встроенной в базовый LightSwitch.

Для выполнения импорта необходимо установить соответствующее расширение, затем на любом экране, содержащем редактируемую таблицу добавить кнопку и в обработчик нажатия кнопки добавить код вызова LightSwitch Utilites.Client.Import Excel в качестве параметра которой передать коллекцию, в которую необходимо импортировать данные. В работающем приложении при нажатии кнопки импорта запустится окно выбора файла, после выбора файла возникнет окно сопоставления. В нем необходимо правильно сопоставить названия столбцов в файле Excel и в таблице, для которой выполняется импорт. После нажатия кнопки ОК произойдет импорт.

Другое интересное расширение Filter Control, как видно из названия оно позволяет пользователям создавать собственные фильтры для данных, отображаемых на экране. Напомним, что простой механизм фильтрации по одному значению интегрирован в базовый LightSwitch. Filter Control представляет возможность создавать сложные условия фильтрации, объединяя несколько условий с условием операторов "И" "ИЛИ". Созданный фильтр может быть сохранен и затем повторно использован для данного экрана.

Для использования фильтра необходимо к сущности, для которой требуется сложная фильтрация добавить запрос уровня сущности и в него добавить строковый параметр с именем Filter Term. Затем нажать кнопку Записать код для этого запроса и в событие Preprocess Query ввести код:

Query = LightSwitch Filter.Server.Filter Extensions.Fiter (query, FilterTerm, this.Application).

Затем в приложение можно добавить экран на основе данного запроса и изменить тип для Customer FilterTerm на Advanced Filter Builder. Запустите приложение , интерфейс фильтра будет отображаться над таблицей. Заполните требуемые поля условиями и кнопкой GO выполните фильтрацию.

Помимо механизмов создания и использования расширений разработчики позаботились об удобстве распространения созданных расширений и удобстве их поиска. Большая часть коммерческих расширений и расширений, созданных сообществом, может быть получено через Visual Studio Gallery. Это место является электронной торговой площадкой для различных надстроек и расширений для Visual Studio, в том числе и для LightSwitch.

Существует два основных способа работы с Visual Studio Gallery:

  • в интернет-браузере указать ссылку ( http://visualstudiogallery.msdn.microsoft.com/) и на открывшемся интернет-сайте найти необходимое расширение, получить о нем информацию, купить или просто загрузить его, если оно бесплатное ( рис. 15.5).
    Сайт Visual Studio Gallery

    увеличить изображение
    Рис. 15.5. Сайт Visual Studio Gallery
  • другой способ доступен из Visual Studio, С помощью элемента Свойства в инспекторе проекта откройте настройки текущего проекта. Перейдите на вкладку Расширения и выберите команду Просмотреть расширения онлайн, что запустит просмотр Visual Studio Gallery из проекта. Откроется менеджер расширения, выберите в нем Онлайн-галерея ( рис. 15.6).
    Добавление нового расширения LightSwitch

    увеличить изображение
    Рис. 15.6. Добавление нового расширения LightSwitch

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

После установки расширения необходимо перезапустить Visual Studio 2010 и в окне менеджера расширения Свойства – Расширения для их подключения к текущему проекту установить флажок рядом с их названием. Для часто используемых расширений можно установить флажок Использовать в новых проектах, что обеспечит их автоматическое подключение при создании новых проектов.

Разработчики LightSwitch, понимая важность расширений во время всего цикла разработки уделяли им особое внимание. Одновременно с выходом LightSwitch Beta 2 был выпущен особый документ Extensions CookBook, в котором описывались типы и порядок создания основных видов расширений с использованием Visual Studio Professional 2010.

В настоящее время этот документ устарел, т.к. совместно с релизом первой версии LightSwitch 2011 был выпущен специальный набор инструментов для создания расширений Visual Studio LightSwitch 2011 Extensibility Toolkit. Этот набор инструментов содержат шаблоны проектов расширений для двух языков программирования (VB и C#). Его использование значительно упрощает создание расширений. В справочной библиотеке MSDN имеется подробная документация по данным инструментам.

Для создания расширений необходимо, чтобы на компьютере разработчика были установлены:

  1. Visual Studio2010 SPI (Professional, Premium или Ultimate редакций);
  2. Visual Studio2010 SPI SDK;
  3. Visual Studio LightSwitch 2011;
  4. Visual Studio LightSwitch 2011 Extensibility Toolkit.

Разработка выполняется на языках VB.Net или С# с использованием Windows Presentation Foundation (WPF) и Silverlight.

После установки Visual Studio LightSwitch 2011 Extensibility Tool Kit в Visual Studio появляется два новых типа проекта LightSwitch Extension Library (Visual Basic) и аналогичный проект для языка C#.

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

Таблица 15.1. Элементы решения для создания расширения LightSwitch
Название проекта Цель его создания Ссылки
Client Содержит классы, предназначенные для клиентской части LightSwitch приложения и не вошедшие в проект Common. Например, элементы управления, темы Подпроекты Client
Client Design Содержит классы, необходимые для поддержки, создания и отладки расширения. Например, пользовательский редактор свойств, дизайнер экрана и т.д. Подпроекты Client
Common Содержит классы, общие для клиентской и серверной сторон. Например, классы для контроля правильности вводимых значений.
Design Содержит классы, используемые для интеграции расширения в среду разработки Visual Studio. Например, шаблоны экрана. Visual Studio IDE
Server Содержит классы для серверной стороны приложения, которые развертываются в приложении LightSwitch, но не содержатся в проекте Common. Например, пользовательские источники данных. Подпроекты Server
Lsprg Проект, который LightSwitch может распаковать и ссылаться на него после установки. Нет
Vsix Контейнер, созданный для его использования совместно с Extension Manager. Создается на основе контейнера lsprg. Нет

Разработка расширений LightSwitch выполняется аналогично разработке других расширений с помощью Visual Studio SDK. Необходимо создать на основе шаблона, соответствующий проект, написать код расширения, выполнить его отладку, создать требуемый контейнер Vsix и осуществить его развертывание.

Краткие итоги

  • Разработчики LightSwitch обеспечили возможность добавления дополнительных функций посредством создания расширения.
  • Продажа расширения формирует определенный рынок инструментов, где как компании, так и отдельные разработчики имеют возможность заработать на продаже оригинальных и востребованных расширений.
  • Бизнес-тип – позволяет создать обертку над базовыми типами, обеспечивая дополнительный контроль данных и методы их отображения, а также механизм их сохранения с помощью допустимых в LightSwitch типов.
  • Пользовательский элемент управления – элемент управления Silverlight с дополнительными атрибутами, позволяющими его интегрировать и использовать в LightSwitch.
  • Источник данных – специальный адаптер, реализованный в виде класса и позволяющий работать с нестандартным источником данных.
  • Шаблон экрана – используется для создания экранов с раскладкой и связями, отличными от стандартных шаблонов.
  • Оболочка – реализует оболочку с отличающейся от стандартной раскладкой и возможностями, например, можно разработать оболочку, ориентированную на использование сенсорных экранов.
  • Большая часть коммерческих расширений и расширений, созданных сообществом, может быть получено через Visual Studio Gallery.
  • Вместе с выходом релизной версии LightSwitch были выпущены ряд расширений, составляющих так называемый StarterKit.
  • Совместно с релизом первой версии LightSwitch 2011 был выпущен специальный набор инструментов для создания расширений Visual Studio LightSwitch 2011 Extensibility Toolkit.
Дмитрий Захарцов
Дмитрий Захарцов
Россия
Александр Данилов
Александр Данилов
Россия