Продолжается подписка на наши издания! Вы не забыли подписаться?

Microsoft Domain-Specific Language (DSL) Tools

Опубликовано: 26.02.2006

Введение

Microsoft Tools for Domain-Specific Languages – это набор средств для создания, редактирования и использования DSL в автоматизации разработки корпоративного ПО. Эти новые средства являются частью нашего взгляда реализации "фабрик ПО" (software factories). Подробнее об этом можно прочитать в Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools (http://msdn.microsoft.com/library/en-us/dnbda/html/softfact3.asp).

Эти средства поддерживаются фреймворком, упрощающим определение модели предметной области и создание пользовательских графических дизайнеров, интегрируемых в Visual Studio. Набор состоит из:

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

Процесс

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

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


Рисунок 1.

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

  1. Определение модели предметной области.
  2. Создание определения дизайнера.
  3. Обновление ресурсов.

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

Весь процесс создания модели предметной области и дизайнера описывается следующими шагами:

  1. Прогоните визард, используя шаблон минимального языка.
  2. Проведите сборку и запустите отладочное Решение.
  3. Обновите модель предметной области, сгенерируйте код и заново соберите Решение.
  4. Обновите определение дизайнера, сгенерируйте код, соберите Решение и отладьте его.
  5. Обновите шаблон текста в отладочном Решении и запустите генератор.
  6. Измените вид графического представления, заново сгенерируйте код и пересоберите Решение.
  7. Обновите ресурсы и .resx-файлы, заново соберите и отладьте Решение.
  8. Расширьте модель предметной области, заново сгенерируйте код, пересоберите и отладьте Решение.
  9. Доработайте графическое представление, заново сгенерируйте код, пересоберите Решение.
  10. Доработайте ресурсы, пересоберите и отладьте Решение.
  11. Редактируйте с помощью окон Explorer и Properties.


Рисунок 2. Дизайнер UIP-диаграмм.

Пример предметной области и дизайнера

В следующем разделе мы создадим модель предметной области и дизайнер. На рисунке 2 показан скриншот дизайнера диаграмм процесса взаимодействия с пользователем (user interaction process, UIP), с диаграммой UIP для воображаемого торгового Web-сайта...

........................
"С полным содержанием данной статьи можно ознакомиться в печатной версии журнала"

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

Copyright © 1994-2016 ООО "К-Пресс"