Разработка облачных бизнес-приложений с использованием Visual Studio LightSwitch 2011

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

Разбить на страницы
Показывать лекцию целиком

Цель лекции: изучить понятие расширения и его роль в создании дополнительных функциональных возможностей приложения LightSwitch. Ознакомиться с наиболее интересными расширениями из галереи Visual Studio, относящихся к категории LightSwitch. Рассмотреть процесс создания расширений с использованием Visual Studio LightSwitch 2011 Extensibility Toolkit.

Компания Microsoft позиционирует LightSwitch 2011 как эффективный инструмент построения приложений на основе баз данных. Встроенная функциональность покрывает значительную часть потребностей таких приложений. Однако в ходе разработки возникают требования пользователей, которые не могут быть реализованы имеющимся функционалом и необходимо использовать как другие способы работы с данными, так и реализовывать дополнительные интерфейсные возможности.

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

Расширения не ограничиваются только специальными элементами управления. Как расширения распространяются бизнес-типы, провайдеры для источников данных, шаблоны экранов, темы и специальные оболочки. Это создает из LightSwitch мощный продукт без ограничений и когда требуется дополнительная функциональность достаточно либо скачать необходимое расширение из Visual Studio gallery, либо купить необходимое расширение и установить его на компьютер и сервер через Extensions Manager.

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

Имеются следующие основные типы расширений LightSwitch:

  • Бизнес-тип – позволяет создать обертку над базовыми типами, обеспечивая дополнительный контроль данных и методы их отображения, а также механизм их сохранения с помощью допустимых LightSwitch типов. Также с бизнес- типом может идти специальный элемент управления, обеспечивающий удобное его отображение.
  • Пользовательский элемент управления – элемент управления Silverlight с дополнительными атрибутами, позволяющими его интегрировать и использовать в LightSwitch.
  • Источник данных – специальный адаптер, реализованный в виде класса и позволяющий работать с нестандартным источником данных.
  • Шаблон экрана – используется для создания экранов с раскладкой и связями, отличными от стандартных шаблонов.
  • Оболочка – реализует оболочку с отличающейся от стандартной раскладкой и возможностями, например, можно разработать оболочку, ориентированную на использование сенсорных экранов.
  • Тема – реализует отличающиеся от стандартного цветовое и стилевое оформление приложения и используемых элементов управления.
  • Рассмотрим подробнее каждый из видов расширений с типовыми примерами их представления и использования.

    Темы и оболочки.

    Учитывая, что ключевая цель LightSwitch – реализовать удобный для пользователя интерфейс, темы и оболочки можно отнести к важной части оформления интерфейса. Каждая из этих типов расширения обеспечивает свои настройки для измененного пользовательского интерфейса. Рассмотрим особенности каждого из этих типов и опишем принципы совместного использования на конкретном примере.

    Тема представляет собой единый набор настроек для шрифтов и цветов элементов интерфейса с учетом их гармонической сочетаемости. Изменяя тему можно подобрать наиболее удобный для пользователя вид. Аналогом тем в веб-разработке являются каскадные таблицы стилей (CSS).

    Оболочка является аналогом обложек или скинов и определяет вид и расположение элементов, в частности, местоположение навигационных панелей, меню, панели главного меню, прорисовки элементов. Темы и оболочки можно значительно изменять внешний вид и способы взаимодействия с приложением, не создавая программный код и не внося изменения в приложения LightSwitch. Примером приложения с измененной темой и оболочкой приведены на рисунке 15.1 .

    (рис 15.1) Особая оболочка приложения LightSwitch

    Следует отметить следующие изменения в интерфейсе по сравнению с его стандартным видом:

  • Главное меню представлено в виде текста, также меню продублировано в нижней части в виде пиктограмм.
  • Группы и ссылки на окна расположены в нижней части экрана.
  • Меню экрана расположено в нижней части активного экрана
  • Таким образом, следует указать, что темы и оболочки находятся в рамках базовой идеи LightSwitch, когда основная функциональность заложена в базу, а дополнительные функции можно получить через расширения.

    Бизнес-типы.

    Бизнес-типы представляют собой комбинацию форматирования, способы проверки и другие дополнительные характеристики, что позволят удобно их использовать в рамках предметной области, для которой создается приложение. Разработчики могут создавать собственные бизнес-типы, что открывает широкое поле деятельности. В качестве бизнес-типов могут выступать определенные сущности, которые используются в различных местах и требуется обеспечить единообразие их использования. Такой подход позволяет выделить внутренние и публичные бизнес-типы. Внутренние типы используются в рамках корпорации для единообразного описания используемых кодов, объектов, элементов. Например, с его помощью можно описывать уникальные идентификаторы объектов на основе внутренних механизмов маркировки. Бизнес-тип позволит контролировать правильность вода значения идентификатора.

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

    Создание бизнес-типа для таких значений является одним из способов обеспечения их единообразного использования внутри организации.

    Расширение на базе источников данных является оболочкой над . Net WCFRIA службой. Оформление их в виде расширения упрощает механизм установки и развертывания. Создание такого расширения может быть полезным в случае, когда известна точная структура источника данных, а также для получения данных другими типами расширений.

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

    Например, поставщик данных Google от RSSBus дает разработчикам возможность легко подключать к популярным службам Google, включая Gmail, Google Docs, Календарь Google, Google Talk и др.

    Пользовательские элементы управления

    Пользовательские элементы управления следует по праву считать одним из наиболее важных типов расширений. Они реализуют не только дополнительные интерфейсные возможности, но и обеспечивают новые функции, классы и модули. Например, элементы для анализа данных не только отображают данные в виде перекрестных таблиц, но и включают в себя механизмы фильтрации, агрегирования, специальные классы для анализа и обработки данных.

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

    Крупные компании-разработчики создают собственные пользовательские элементы и их наборы, обычно расширяя уже имеющиеся собственные разработки для Silverlight. В качестве таких разработчиков можно выделить: Infragrastics, ComponentOne, DevExpress, First Floor Software.

    Стандартный LightSwitch не обладает элементами или механизмами для создания отчетов, разработчики обещают такой функционал только в следующих версиях. Можно также использовать ).

    (рис 15.2) Отчет с использованием XtraRepors

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

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

    (рис 15.3) Элементы управления от компании Infragrastics

    Набор компонентов платный, но имеется сокращенная бесплатная версия, которая включает две темы и элементы.

    Многие бизнес-приложения требуют функции по работе с документами. LightSwitch позволяет сохранять документы в базу данных, но для просмотра требуется специальная компонента. Например, можно использовать просмотрщик документов, предлагаемый First Floor Software. Он позволяет просматривать различные типы документов, в том числе PDF и DOC. При необходимости документ можно распечатать.

    В сентябре компанией Grid Logic был выпущен пакет Office Integration Pack, с помощью которого упрощается процесс взаимодействия приложений LightSwitch и продуктов из пакета Microsoft Office 2010. C его использованием можно создавать в приложении LightSwitch необходимые документы и файлы, а затем открывать их в офисных программах (рис 15.4).

    (рис 15.4) Элементы управления от компании Grid Logic

    Пакет предоставляется бесплатно и может быть загружен по адресу 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). (рис 15.5) Сайт Visual Studio Gallery
  • другой способ доступен из Visual Studio, С помощью элемента ). (рис 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 имеется подробная документация по данным инструментам.

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

  • Visual Studio2010 SPI (Professional, Premium или Ultimate редакций);
  • Visual Studio2010 SPI SDK;
  • Visual Studio LightSwitch 2011;
  • 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 систематизированы данные проекта и указаны цели их создания.

    Элементы решения для создания расширения LightSwitch
    Название проектаЦель его созданияСсылки
    ClientСодержит классы, предназначенные для клиентской части LightSwitch приложения и не вошедшие в проект Common. Например, элементы управления, темыПодпроекты Client
    Client DesignСодержит классы, необходимые для поддержки, создания и отладки расширения. Например, пользовательский редактор свойств, дизайнер экрана и т.д. Подпроекты Client
    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.
  • Страницы:

    Цель лекции: изучить понятие расширения и его роль в создании дополнительных функциональных возможностей приложения LightSwitch. Ознакомиться с наиболее интересными расширениями из галереи Visual Studio, относящихся к категории LightSwitch. Рассмотреть процесс создания расширений с использованием Visual Studio LightSwitch 2011 Extensibility Toolkit.

    Компания Microsoft позиционирует LightSwitch 2011 как эффективный инструмент построения приложений на основе баз данных. Встроенная функциональность покрывает значительную часть потребностей таких приложений. Однако в ходе разработки возникают требования пользователей, которые не могут быть реализованы имеющимся функционалом и необходимо использовать как другие способы работы с данными, так и реализовывать дополнительные интерфейсные возможности.

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

    Расширения не ограничиваются только специальными элементами управления. Как расширения распространяются бизнес-типы, провайдеры для источников данных, шаблоны экранов, темы и специальные оболочки. Это создает из LightSwitch мощный продукт без ограничений и когда требуется дополнительная функциональность достаточно либо скачать необходимое расширение из Visual Studio gallery, либо купить необходимое расширение и установить его на компьютер и сервер через Extensions Manager.

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

    Имеются следующие основные типы расширений LightSwitch:

  • Бизнес-тип – позволяет создать обертку над базовыми типами, обеспечивая дополнительный контроль данных и методы их отображения, а также механизм их сохранения с помощью допустимых LightSwitch типов. Также с бизнес- типом может идти специальный элемент управления, обеспечивающий удобное его отображение.
  • Пользовательский элемент управления – элемент управления Silverlight с дополнительными атрибутами, позволяющими его интегрировать и использовать в LightSwitch.
  • Источник данных – специальный адаптер, реализованный в виде класса и позволяющий работать с нестандартным источником данных.
  • Шаблон экрана – используется для создания экранов с раскладкой и связями, отличными от стандартных шаблонов.
  • Оболочка – реализует оболочку с отличающейся от стандартной раскладкой и возможностями, например, можно разработать оболочку, ориентированную на использование сенсорных экранов.
  • Тема – реализует отличающиеся от стандартного цветовое и стилевое оформление приложения и используемых элементов управления.
  • Рассмотрим подробнее каждый из видов расширений с типовыми примерами их представления и использования.

    Темы и оболочки.

    Учитывая, что ключевая цель LightSwitch – реализовать удобный для пользователя интерфейс, темы и оболочки можно отнести к важной части оформления интерфейса. Каждая из этих типов расширения обеспечивает свои настройки для измененного пользовательского интерфейса. Рассмотрим особенности каждого из этих типов и опишем принципы совместного использования на конкретном примере.

    Тема представляет собой единый набор настроек для шрифтов и цветов элементов интерфейса с учетом их гармонической сочетаемости. Изменяя тему можно подобрать наиболее удобный для пользователя вид. Аналогом тем в веб-разработке являются каскадные таблицы стилей (CSS).

    Оболочка является аналогом обложек или скинов и определяет вид и расположение элементов, в частности, местоположение навигационных панелей, меню, панели главного меню, прорисовки элементов. Темы и оболочки можно значительно изменять внешний вид и способы взаимодействия с приложением, не создавая программный код и не внося изменения в приложения LightSwitch. Примером приложения с измененной темой и оболочкой приведены на рисунке 15.1 .

    (рис 15.1) Особая оболочка приложения LightSwitch

    Следует отметить следующие изменения в интерфейсе по сравнению с его стандартным видом:

  • Главное меню представлено в виде текста, также меню продублировано в нижней части в виде пиктограмм.
  • Группы и ссылки на окна расположены в нижней части экрана.
  • Меню экрана расположено в нижней части активного экрана
  • Таким образом, следует указать, что темы и оболочки находятся в рамках базовой идеи LightSwitch, когда основная функциональность заложена в базу, а дополнительные функции можно получить через расширения.

    Бизнес-типы.

    Бизнес-типы представляют собой комбинацию форматирования, способы проверки и другие дополнительные характеристики, что позволят удобно их использовать в рамках предметной области, для которой создается приложение. Разработчики могут создавать собственные бизнес-типы, что открывает широкое поле деятельности. В качестве бизнес-типов могут выступать определенные сущности, которые используются в различных местах и требуется обеспечить единообразие их использования. Такой подход позволяет выделить внутренние и публичные бизнес-типы. Внутренние типы используются в рамках корпорации для единообразного описания используемых кодов, объектов, элементов. Например, с его помощью можно описывать уникальные идентификаторы объектов на основе внутренних механизмов маркировки. Бизнес-тип позволит контролировать правильность вода значения идентификатора.

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

    Создание бизнес-типа для таких значений является одним из способов обеспечения их единообразного использования внутри организации.

    Расширение на базе источников данных является оболочкой над . Net WCFRIA службой. Оформление их в виде расширения упрощает механизм установки и развертывания. Создание такого расширения может быть полезным в случае, когда известна точная структура источника данных, а также для получения данных другими типами расширений.

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

    Например, поставщик данных Google от RSSBus дает разработчикам возможность легко подключать к популярным службам Google, включая Gmail, Google Docs, Календарь Google, Google Talk и др.

    Пользовательские элементы управления

    Пользовательские элементы управления следует по праву считать одним из наиболее важных типов расширений. Они реализуют не только дополнительные интерфейсные возможности, но и обеспечивают новые функции, классы и модули. Например, элементы для анализа данных не только отображают данные в виде перекрестных таблиц, но и включают в себя механизмы фильтрации, агрегирования, специальные классы для анализа и обработки данных.

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

    Крупные компании-разработчики создают собственные пользовательские элементы и их наборы, обычно расширяя уже имеющиеся собственные разработки для Silverlight. В качестве таких разработчиков можно выделить: Infragrastics, ComponentOne, DevExpress, First Floor Software.

    Стандартный LightSwitch не обладает элементами или механизмами для создания отчетов, разработчики обещают такой функционал только в следующих версиях. Можно также использовать ).

    (рис 15.2) Отчет с использованием XtraRepors

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

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

    (рис 15.3) Элементы управления от компании Infragrastics

    Набор компонентов платный, но имеется сокращенная бесплатная версия, которая включает две темы и элементы.

    Многие бизнес-приложения требуют функции по работе с документами. LightSwitch позволяет сохранять документы в базу данных, но для просмотра требуется специальная компонента. Например, можно использовать просмотрщик документов, предлагаемый First Floor Software. Он позволяет просматривать различные типы документов, в том числе PDF и DOC. При необходимости документ можно распечатать.

    В сентябре компанией Grid Logic был выпущен пакет Office Integration Pack, с помощью которого упрощается процесс взаимодействия приложений LightSwitch и продуктов из пакета Microsoft Office 2010. C его использованием можно создавать в приложении LightSwitch необходимые документы и файлы, а затем открывать их в офисных программах (рис 15.4).

    (рис 15.4) Элементы управления от компании Grid Logic

    Пакет предоставляется бесплатно и может быть загружен по адресу 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). (рис 15.5) Сайт Visual Studio Gallery
  • другой способ доступен из Visual Studio, С помощью элемента ). (рис 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 имеется подробная документация по данным инструментам.

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

  • Visual Studio2010 SPI (Professional, Premium или Ultimate редакций);
  • Visual Studio2010 SPI SDK;
  • Visual Studio LightSwitch 2011;
  • 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 систематизированы данные проекта и указаны цели их создания.

    Элементы решения для создания расширения LightSwitch
    Название проектаЦель его созданияСсылки
    ClientСодержит классы, предназначенные для клиентской части LightSwitch приложения и не вошедшие в проект Common. Например, элементы управления, темыПодпроекты Client
    Client DesignСодержит классы, необходимые для поддержки, создания и отладки расширения. Например, пользовательский редактор свойств, дизайнер экрана и т.д. Подпроекты Client
    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.
  • Вернуться к учебному плану