Интеграция, расширяемость и возможность настройки – важные аспекты коммерческих программных продуктов. Вследствие этого стало обычной практикой, что коммерческие компоненты (COTS) предоставляют интерфейсы прикладного программирования (API) как часть решения. Консультанты, партнеры и продвинутые пользователи могут использовать данный API для автоматизации выполнения задач, интеграции продукта с другими приложениями, для создания специальных расширений или просто настройки продукта под конкретные нужды.
Проблема с интерфейсами прикладного программирования состоит в том, что тот, кто их использует, должен обладать серьезными навыками программирования. Добавление определенной функции на основе API обычно означает создание проекта в такой среде разработке, как Microsoft Visual Studio или Eclipse, написание кода на таком языке программирования, как C# или Java, компиляции и сборке итогового проекта и, в конечном итоге, установке. В результате многие пользователи, которые хотели бы расширить систему, не могут этого сделать, а сами расширения дороги и трудоемки вследствие необходимости специальных знаний.
Предметно-ориентированные языки (DSL) могут помочь решить данную проблему. В идеале, они предоставляют продвинутым пользователям возможность выразить их стремления более естественным для них образом, чем языки программирования общего назначения. В ходе изложения, докладчик начнет с краткого введения в текстовые и графические предметно-ориентированные языки. Он продемонстрирует практический пример DSL, который он разработал и реализовал вместе с его командой. Язык использовался для расширения и настройки облачной ERP системы.
Несмотря на преимущества DSL, многие небольшие и средние поставщики ПО (ISV) не спешат их проектировать и реализовывать. Они понимают, что реализация DSL означает работы над созданием компилятора и потому данная тема представляется им немного экзотичной. Однако сегодня существуют инструменты, делающие реализацию DSL в коммерческих программных продуктах обоснованной даже для небольших и средних компаний. Во второй части докладчик продемонстрирует работу с такого рода инструментами для реализации текстовых и графических DSL. Докладчик покажет пример компилятора-компиляторов (ANTLR, http://www.antlr.org), а также пример графического DSL с сохранением в XML. На основе этого, докладчик расскажет об архитектуре примера, представленного в первой части презентации. В том числе, каким образом DSL преобразуется в другие форматы и языки для выполнения внутри UI, уровня бизнес логики и базы данных.
В последней части, докладчик расскажет об уроках, извлеченных из представленного проекта. Речь пойдет о препятствиях, которые он и его команда должны были преодолеть, чтобы выпустить первый релиз DSL. Слушатели познакомятся с усилиями, которые должны были быть вложены в компонент и пользой, которую DSL принес продукту.
Райнер Стропек
CEO и со-основатель, Software Architects
Райнер Стропек – со-основатель и CEO компании Software Architects с 2008 года. В Software Architects Райнер и его команда разрабатывают отмеченную наградами SaaS-систему учета рабочего времени «time cockpit» (http://www.timecockpit.com). Ранее Райнер основал и руководил двумя консалтинговыми ИТ-компаниями, которые работали в области разработки программных решений на основе технологий Microsoft. Райнер является признанным экспертом в области разработки на .NET, программной архитектуры и управления базами данных. Он написал множество книг и статей по C#, разработке баз данных, Windows Azure, WPF и Silverlight. Он регулярно выступает на конференциях, семинарах и тренингах в Европе и США. Райнер имеет степень магистра в области информационных систем, полученную в Высшей Технической Школе Лёндинга (Австрия) и степень бакалавра в области компьютерных наук (Университет Дерби, Великобритания). Вы можете узнать больше о Райнере через Twitter (@rstropek), Facebook (http://www.facebook.com/profile.php?id=1671935584) и блого http://www.timecockpit.com/en/blogs.