Практика применения enterprise architect и t4-шаблонов для...

30
11 апреля 2015 года Практика применения Enterprise Architect и T4-шаблонов для разработки системы на Microsoft SQL Server Павел Музыка Технический лидер, группа компаний CUSTIS

Upload: gosharp

Post on 17-Jul-2015

102 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Практика применения Enterprise Architect и T4-шаблонов для разработки системы на Microsoft SQL Server

11 апреля 2015 года

Практика применения Enterprise Architect и T4-шаблонов для разработки системы на Microsoft SQL Server Павел Музыка Технический лидер, группа компаний CUSTIS

Page 2: Практика применения Enterprise Architect и T4-шаблонов для разработки системы на Microsoft SQL Server

О себе §  В промышленной разработке с 2005 года

§  В CUSTIS c февраля 2012 года

§  Специализируюсь на создании Desktop-приложений

§  Сертифицированный разработчик .NET, MS SQL, WinForms и WPF

2/30

Page 3: Практика применения Enterprise Architect и T4-шаблонов для разработки системы на Microsoft SQL Server

О компании

Проектирование и заказная разработка систем Enterprise-

масштаба

Для крупных банков, торговых сетей,

предприятий госсектора

Oracle + Java

Oracle + C#, Desktop-приложения на WinForms и WPF

3/30

Page 4: Практика применения Enterprise Architect и T4-шаблонов для разработки системы на Microsoft SQL Server

План §  Контекст реальной задачи

§  Слагаемые успеха

§  Enterprise Architect

§  Шаблоны T4

§  Автотесты

§  Continuous Integration + Delivery

4/30

Page 5: Практика применения Enterprise Architect и T4-шаблонов для разработки системы на Microsoft SQL Server

Где я? §  Контекст реальной задачи §  Слагаемые успеха

§  Enterprise Architect

§  Шаблоны T4

§  Автотесты

§  Continuous Integration + Delivery

5/30

Page 6: Практика применения Enterprise Architect и T4-шаблонов для разработки системы на Microsoft SQL Server

Реальная задача §  Система в Microsoft SQL Server 2008 R2 §  …полностью

§  Три внешних источника данных §  …после полугода разработки появился четвертый

§  Математически сложные алгоритмы обработки данных внутри системы

§  Ежедневное формирование отчетов

§  Адаптация к существующей системе автоформ

6/30

Page 7: Практика применения Enterprise Architect и T4-шаблонов для разработки системы на Microsoft SQL Server

Где я? §  Контекст реальной задачи

§  Слагаемые успеха §  Enterprise Architect

§  Шаблоны T4

§  Автотесты

§  Continuous Integration + Delivery

7/30

Page 8: Практика применения Enterprise Architect и T4-шаблонов для разработки системы на Microsoft SQL Server

Слагаемые успеха. Процессы §  Model First + кодогенерация

§  Автотесты для базы данных

§  Доработки и исправления в стиле TDD

§  Continuous Integration + Delivery = выпуск версии занимает 10 минут

8/30

Page 9: Практика применения Enterprise Architect и T4-шаблонов для разработки системы на Microsoft SQL Server

Слагаемые успеха. Инструменты §  Enterprise Architect для Model First

§  Шаблоны T4: §  Отделение инфраструктуры от логики §  Дешевое внесение изменений в инфраструктуру

§  Удобная навигация по исходному коду

§  Excel для подготовки тестовых данных аналитиком

§  + =

9/30

Page 10: Практика применения Enterprise Architect и T4-шаблонов для разработки системы на Microsoft SQL Server

Где я? §  Контекст реальной задачи

§  Слагаемые успеха

§  Enterprise Architect §  Шаблоны T4

§  Автотесты

§  Continuous Integration + Delivery

10/30

Page 11: Практика применения Enterprise Architect и T4-шаблонов для разработки системы на Microsoft SQL Server

Model First

Трансформация

Физическая модель

Magic

Логическая модель

11/30

Page 12: Практика применения Enterprise Architect и T4-шаблонов для разработки системы на Microsoft SQL Server

§  Enterprise Architect как инструмент моделирования

§  Множество нотаций и представлений

§  Трансформация представлений

§  Генерация DDL-скриптов

§  Хранение моделей в системе контроля версий или в базе данных

§  Возможность писать плагины

12/30

Page 13: Практика применения Enterprise Architect и T4-шаблонов для разработки системы на Microsoft SQL Server

Тюнинг Enterprise Architect

Трансформация

Физическая модель

Magic

Логическая модель

13/30

Page 14: Практика применения Enterprise Architect и T4-шаблонов для разработки системы на Microsoft SQL Server

Доработка трансформации §  Создание колонок для первичного и внешнего ключей, констрейнтов

§  Создание фискальных и служебных колонок для всех таблиц

§  Трансформация перечислений как особый вид трансформации

14/30

Page 15: Практика применения Enterprise Architect и T4-шаблонов для разработки системы на Microsoft SQL Server

Magic

Magic

Тюнинг Enterprise Architect – 2 Физическая модель

15/30

Page 16: Практика применения Enterprise Architect и T4-шаблонов для разработки системы на Microsoft SQL Server

Плагин для Enterprise Architect §  Генерация вспомогательных классов для поддержки IntelliSense в T4-шаблонах

§  Генерация перечислений для перечислений

16/30

Page 17: Практика применения Enterprise Architect и T4-шаблонов для разработки системы на Microsoft SQL Server

Где я? §  Контекст реальной задачи

§  Слагаемые успеха

§  Enterprise Architect

§  Шаблоны T4 §  Автотесты

§  Continuous Integration + Delivery

17/30

Page 18: Практика применения Enterprise Architect и T4-шаблонов для разработки системы на Microsoft SQL Server

Шаблоны T4 §  T4 = Text Template Transformation Toolkit

§  Файл с расширением *.tt или *.ttinclude

§  Встроенный в Visual Studio (начиная с 2008) движок кодогенерации

§  Позволяет писать логику шаблона на C# или VB.NET

§  Позволяет генерировать любой код

§  Шаблоны могут быть переиспользуемыми (наследование, включение)

18/30

Page 19: Практика применения Enterprise Architect и T4-шаблонов для разработки системы на Microsoft SQL Server

Простейший шаблон T4

Шаблон T4

Результат

19/30

Page 20: Практика применения Enterprise Architect и T4-шаблонов для разработки системы на Microsoft SQL Server

Пример с бизнес-правилами

§  Выглядит как C#...

§  …это и есть C#

§  Отсутствуют инфраструктурные подробности

§  Результат – сгенерированный фрагмент хранимой процедуры

20/30

Page 21: Практика применения Enterprise Architect и T4-шаблонов для разработки системы на Microsoft SQL Server

21/30

Page 22: Практика применения Enterprise Architect и T4-шаблонов для разработки системы на Microsoft SQL Server

Перекладывание данных

§  Полуавтоматический маппинг колонок

§  Опять нет инфраструктурного кода

§  Фокусировка только на бизнес-логике

§  Результат – опять простыня SQL-кода

22/30

Page 23: Практика применения Enterprise Architect и T4-шаблонов для разработки системы на Microsoft SQL Server

23/30

Page 24: Практика применения Enterprise Architect и T4-шаблонов для разработки системы на Microsoft SQL Server

Использование констант

24/30

Page 25: Практика применения Enterprise Architect и T4-шаблонов для разработки системы на Microsoft SQL Server

Где я? §  Контекст реальной задачи

§  Слагаемые успеха

§  Enterprise Architect

§  Шаблоны T4

§  Автотесты §  Continuous Integration + Delivery

25/30

Page 26: Практика применения Enterprise Architect и T4-шаблонов для разработки системы на Microsoft SQL Server

Автотесты §  Автотесты на C#

§  Excel как источник эталонных данных

§  Данные готовит аналитик

§  Выполняются на сервере CI на каждый коммит

§  Smoke-тесты для публичного интерфейса

26/30

Page 27: Практика применения Enterprise Architect и T4-шаблонов для разработки системы на Microsoft SQL Server

Где я? §  Контекст реальной задачи

§  Слагаемые успеха

§  Enterprise Architect

§  Шаблоны T4

§  Автотесты

§  Continuous Integration + Delivery

27/30

Page 28: Практика применения Enterprise Architect и T4-шаблонов для разработки системы на Microsoft SQL Server

Continuous Integration + Delivery §  TeamCity – сервер для процессов CI и CD

§  Крупные коммиты (законченные блоки функционала)

§  На каждый коммит прогоняется пакет автотестов

§  После каждого удачного коммита система готова к выпуску очередной версии

§  PowerShell-скрипты для развертывания версии

28/30

Page 29: Практика применения Enterprise Architect и T4-шаблонов для разработки системы на Microsoft SQL Server

Основные ресурсы §  Enterprise Architect: §  Описание на официальном сайте

§  Шаблоны T4: §  Architecture of Text Templates §  Oleg Sych Blog §  Q&A at stackoverflow.com §  Google Search

§  Семинар про T4 (Реальная кодогенерация): §  Видео на vimeo §  Исходники на github

29/30

Page 30: Практика применения Enterprise Architect и T4-шаблонов для разработки системы на Microsoft SQL Server

Спасибо за внимание!

Павел Музыка [email protected]

30/30