Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
11 апреля 2015 года
Практика применения
Enterprise Architect и T4-шаблонов
для разработки системы
на Microsoft SQL Server
...
О себе
 В промышленной разработке
с 2005 года
 В CUSTIS c февраля 2012 года
 Специализируюсь на создании
Desktop-прилож...
О компании
Проектирование
и заказная разработка
систем Enterprise-
масштаба
Для крупных банков,
торговых сетей,
предприяти...
План
 Контекст реальной задачи
 Слагаемые успеха
 Enterprise Architect
 Шаблоны T4
 Автотесты
 Continuous Integratio...
Где я?
 Контекст реальной задачи
 Слагаемые успеха
 Enterprise Architect
 Шаблоны T4
 Автотесты
 Continuous Integrat...
Реальная задача
 Система в Microsoft SQL Server 2008 R2
 …полностью
 Три внешних источника данных
 …после полугода раз...
Где я?
 Контекст реальной задачи
 Слагаемые успеха
 Enterprise Architect
 Шаблоны T4
 Автотесты
 Continuous Integrat...
Слагаемые успеха. Процессы
 Model First + кодогенерация
 Автотесты для базы данных
 Доработки и исправления
в стиле TDD...
Слагаемые успеха. Инструменты
 Enterprise Architect для Model First
 Шаблоны T4:
 Отделение инфраструктуры от логики
 ...
Где я?
 Контекст реальной задачи
 Слагаемые успеха
 Enterprise Architect
 Шаблоны T4
 Автотесты
 Continuous Integrat...
Model First
Трансформация
Физическая модельЛогическая модель
11/30
Model First
Трансформация
Физическая модель
Magic
Логическая модель
11/30
 Enterprise Architect как инструмент
моделирования
 Множество нотаций и представлений
 Трансформация представлений
 Ге...
Тюнинг Enterprise Architect
Трансформация
Физическая модель
Magic
Логическая модель
13/30
Доработка трансформации
 Создание колонок для первичного
и внешнего ключей, констрейнтов
 Создание фискальных и служебны...
Magic
Magic
Тюнинг Enterprise Architect – 2
Физическая модель
15/30
Плагин для Enterprise Architect
 Генерация вспомогательных классов
для поддержки IntelliSense в T4-шаблонах
 Генерация п...
Где я?
 Контекст реальной задачи
 Слагаемые успеха
 Enterprise Architect
 Шаблоны T4
 Автотесты
 Continuous Integrat...
Шаблоны T4
 T4 = Text Template Transformation Toolkit
 Файл с расширением *.tt или *.ttinclude
 Встроенный в Visual Stu...
Простейший шаблон T4
Шаблон T4
Результат
19/30
Пример с бизнес-правилами
 Выглядит как C#...
 …это и есть C#
 Отсутствуют инфраструктурные подробности
 Результат – с...
21/30
21/30
21/30
Перекладывание данных
 Полуавтоматический маппинг колонок
 Опять нет инфраструктурного кода
 Фокусировка только на бизн...
23/30
23/30
Использование констант
24/30
Использование констант
24/30
Где я?
 Контекст реальной задачи
 Слагаемые успеха
 Enterprise Architect
 Шаблоны T4
 Автотесты
 Continuous Integrat...
Автотесты
 Автотесты на C#
 Excel как источник эталонных данных
 Данные готовит аналитик
 Выполняются на сервере CI на...
Где я?
 Контекст реальной задачи
 Слагаемые успеха
 Enterprise Architect
 Шаблоны T4
 Автотесты
 Continuous Integrat...
Continuous Integration + Delivery
 Крупные коммиты (законченные блоки
функционала)
 TeamCity – сервер для процессов CI и...
Основные ресурсы
 Enterprise Architect:
 Описание на официальном сайте
 Шаблоны T4:
 Architecture of Text Templates
 ...
Спасибо за внимание!
Павел Музыка
pmuzyka@custis.ru
30/30
Upcoming SlideShare
Loading in …5
×

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

1,024 views

Published on

Выступление Павла Музыки, нашего технического лидера, на конференции Desktop UI & Business Applications (11 апреля 2015 года, Москва).

Published in: Software
  • Be the first to comment

  • Be the first to like this

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

  1. 1. 11 апреля 2015 года Практика применения Enterprise Architect и T4-шаблонов для разработки системы на Microsoft SQL Server Павел Музыка Технический лидер, группа компаний CUSTIS
  2. 2. О себе  В промышленной разработке с 2005 года  В CUSTIS c февраля 2012 года  Специализируюсь на создании Desktop-приложений  Сертифицированный разработчик .NET, MS SQL, WinForms и WPF 2/30
  3. 3. О компании Проектирование и заказная разработка систем Enterprise- масштаба Для крупных банков, торговых сетей, предприятий госсектора Oracle + Java Oracle + C#, Desktop-приложения на WinForms и WPF 3/30
  4. 4. План  Контекст реальной задачи  Слагаемые успеха  Enterprise Architect  Шаблоны T4  Автотесты  Continuous Integration + Delivery 4/30
  5. 5. Где я?  Контекст реальной задачи  Слагаемые успеха  Enterprise Architect  Шаблоны T4  Автотесты  Continuous Integration + Delivery 5/30
  6. 6. Реальная задача  Система в Microsoft SQL Server 2008 R2  …полностью  Три внешних источника данных  …после полугода разработки появился четвертый  Математически сложные алгоритмы обработки данных внутри системы  Ежедневное формирование отчетов  Адаптация к существующей системе автоформ 6/30
  7. 7. Где я?  Контекст реальной задачи  Слагаемые успеха  Enterprise Architect  Шаблоны T4  Автотесты  Continuous Integration + Delivery 7/30
  8. 8. Слагаемые успеха. Процессы  Model First + кодогенерация  Автотесты для базы данных  Доработки и исправления в стиле TDD  Continuous Integration + Delivery = выпуск версии занимает 10 минут 8/30
  9. 9. Слагаемые успеха. Инструменты  Enterprise Architect для Model First  Шаблоны T4:  Отделение инфраструктуры от логики  Дешевое внесение изменений в инфраструктуру  Удобная навигация по исходному коду  Excel для подготовки тестовых данных аналитиком  + = 9/30
  10. 10. Где я?  Контекст реальной задачи  Слагаемые успеха  Enterprise Architect  Шаблоны T4  Автотесты  Continuous Integration + Delivery 10/30
  11. 11. Model First Трансформация Физическая модельЛогическая модель 11/30
  12. 12. Model First Трансформация Физическая модель Magic Логическая модель 11/30
  13. 13.  Enterprise Architect как инструмент моделирования  Множество нотаций и представлений  Трансформация представлений  Генерация DDL-скриптов  Хранение моделей в Subversion или в базе данных + версионирование  Возможность писать плагины 12/30
  14. 14. Тюнинг Enterprise Architect Трансформация Физическая модель Magic Логическая модель 13/30
  15. 15. Доработка трансформации  Создание колонок для первичного и внешнего ключей, констрейнтов  Создание фискальных и служебных колонок для всех таблиц  Трансформация перечислений как особый вид трансформации 14/30
  16. 16. Magic Magic Тюнинг Enterprise Architect – 2 Физическая модель 15/30
  17. 17. Плагин для Enterprise Architect  Генерация вспомогательных классов для поддержки IntelliSense в T4-шаблонах  Генерация перечислений для перечислений 16/30
  18. 18. Где я?  Контекст реальной задачи  Слагаемые успеха  Enterprise Architect  Шаблоны T4  Автотесты  Continuous Integration + Delivery 17/30
  19. 19. Шаблоны T4  T4 = Text Template Transformation Toolkit  Файл с расширением *.tt или *.ttinclude  Встроенный в Visual Studio (начиная с 2008) движок кодогенерации  Позволяет писать логику шаблона на C# или VB.NET  Позволяет генерировать любой код  Шаблоны могут быть переиспользуемыми (наследование, включение) 18/30
  20. 20. Простейший шаблон T4 Шаблон T4 Результат 19/30
  21. 21. Пример с бизнес-правилами  Выглядит как C#...  …это и есть C#  Отсутствуют инфраструктурные подробности  Результат – сгенерированный фрагмент хранимой процедуры 20/30
  22. 22. 21/30
  23. 23. 21/30
  24. 24. 21/30
  25. 25. Перекладывание данных  Полуавтоматический маппинг колонок  Опять нет инфраструктурного кода  Фокусировка только на бизнес-логике  Результат – опять простыня SQL-кода 22/30
  26. 26. 23/30
  27. 27. 23/30
  28. 28. Использование констант 24/30
  29. 29. Использование констант 24/30
  30. 30. Где я?  Контекст реальной задачи  Слагаемые успеха  Enterprise Architect  Шаблоны T4  Автотесты  Continuous Integration + Delivery 25/30
  31. 31. Автотесты  Автотесты на C#  Excel как источник эталонных данных  Данные готовит аналитик  Выполняются на сервере CI на каждый коммит  Smoke-тесты для публичного интерфейса 26/30
  32. 32. Где я?  Контекст реальной задачи  Слагаемые успеха  Enterprise Architect  Шаблоны T4  Автотесты  Continuous Integration + Delivery 27/30
  33. 33. Continuous Integration + Delivery  Крупные коммиты (законченные блоки функционала)  TeamCity – сервер для процессов CI и CD  На каждый коммит прогоняется пакет автотестов  После каждого удачного коммита система готова к выпуску очередной версии  PowerShell-скрипты для развертывания версии 28/30
  34. 34. Основные ресурсы  Enterprise Architect:  Описание на официальном сайте  Шаблоны T4:  Architecture of Text Templates  Oleg Sych Blog  Q&A at stackoverflow.com  Google Search  Семинар про T4 (Реальная кодогенерация):  Видео на vimeo  Исходники на github 29/30
  35. 35. Спасибо за внимание! Павел Музыка pmuzyka@custis.ru 30/30

×