Successfully reported this slideshow.
Your SlideShare is downloading. ×

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

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 35 Ad

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

Download to read offline

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

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

Advertisement
Advertisement

More Related Content

Slideshows for you (20)

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

Advertisement

More from CUSTIS (20)

Advertisement

Практика применения 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

×