SlideShare a Scribd company logo
Разработка и
развертывание БД


Шамрай Александр
a.shamray@cmcons.com
Возможности для разработки БД

MS VISUAL STUDIO 2010


                   www.cmcons.com
Общий сценарий разработки БД с
      инструментами VS




         www.cmcons.com
Общие возможности проектов VS


Управление изменениями БД
 •   Версионный контроль для схемы
 •   Инкрементальное развертывание
 •   Сравнение схем и данных
 •   Рефакторинг схем

Управление качеством БД
 • Проверка и визуализация зависимостей
 • Статический анализ
 • Модульное тестирование и Генерирование данных

Интеграция процесса разработки БД с общим процессом
разработки
 • Общая среда разработки
 • Интеграция сборки БД с MS Build и Team Build
 • Интеграция версионного контроля с TFS
                             www.cmcons.com
Доступность функций в различных
                     версиях VS


Visual Studio Database Project

Visual Studio Premium/Ultimate

  Сравнение схем
                    Visual Studio Professional
 Сравнение данных

                                                  Модульное                    Развертывание
                    Интеграция   Генерирование                  Статический
                                                 тестирование                   из командной
                    Team Build      данных*                     анализ кода*
                                                      БД*                           строки
   Рефакторинг




                            www.cmcons.com
Оффлайновая разработка БД




       www.cmcons.com
Обновление версий от N к N+1




Обновление от версии 1 к 2 и от 2 к 3
• ALTER TABLE dbo.Auction ADD description VARCHAR(25)
• ALTER TABLE dbo.Auction ALTER COLUMN description
  VARCHAR(100)
Обновление от версии 1 к 3
• ALTER TABLE dbo.Auction ADD description VARCHAR(100)
                    www.cmcons.com
Visual Studio для оффлайновой
                      разработки

• Проект базы данных (.dbproj), предназначенный для управления разработкой базы
  данных.

• Декларативная поддержка синтаксиса SQL, где схема определяется на языке базы
  данных.

• Представление модели схемы для схемы базы данных, когда исходный код может
  использоваться по кругу из источника модели и обратно.

• Модель схемы взаимодействует предоставления программную модели для
  инструментария и дизайнеров баз данных.

• Интерпретация и проверка синтаксиса и схемы зависимостей SQL обеспечивает
  целостность исходников без их выполнения в базе данных.

• Механизм сравнения схемы, который сравнивает проект с целевой базой данных для
  генерирования скрипта обновления.

• Скомпилированные версии схемы базы данных позволяют отложенное
  развертывание и создание скрипта (файл .dbschema).

• Файлы .DBSCHEMA могут быть развернуты в различных средах, содержащих
  различные конфигурации.

                          www.cmcons.com
Исходный код            Код для БД




               www.cmcons.com
Общий скрипт            Скрипт для пустой БД




               www.cmcons.com
Скрипт обновления
Скрипт создания БД            версии




                     www.cmcons.com
Процесс обновления версии




      www.cmcons.com
Общий код – сборка и зависимости


Публикация сборок для общих
компонент
• DBSCHEMA файлы для межпроектных сборок
• Части проектов для межпроектных сборок
• Составные проекты для команд по возможностям

Использование сборок для общих
компонент
• Интеграционные уровни
• Ответственность за качество опубликованных
  компонент
                 www.cmcons.com
Частичные проекты            Составные проекты




                    www.cmcons.com
Создание проектов баз данных
Методы публикации сборок

ДЕМОНСТРАЦИЯ


                    www.cmcons.com
Сборка и развертывание проекта

MS VISUAL STUDIO 2010


                    www.cmcons.com
Сборка проекта

   1) Проект базы данных загружается в память
   2) Собирается модель проекта базы данных
      a. Офлайновая модель схемы обновляется из кеша (если есть) или
        собирается из .sql файлов в проекте.
      b. Модель схемы и все зависимости проверяются.
   3) Собирается проект базы данных
      a. Офлайновая модель схемы проверяется.
      b. Проектные параметры настройки обрабатываются и копируются.
      c. Модели схем, на которые есть ссылки, копируются.
   4) Собирается .dbschema
      a. Модель схемы преобразовывается в последовательную форму и
        упаковывается в.dbschema файл.
      b. Создается манифест развертывания.
      c. Если есть статический анализ кода, то он выполняется.



                          www.cmcons.com
Результаты сборки


.dbschema
• Преобразованная в последовательную форму XML
  представление модели схемы. Представляет проект базы
  данных.
.deploymanifest
• Манифест, содержащий всю информацию о конфигурации на
  проектном уровне, которая позволяет развертывание без файла
  проекта базы данных (.dbproj). Манифест - файл XML со
  структурой, которая очень подобна файлу проекта MSBuild.
Pre and Post deployment scripts
• Эти отдельные файлы, которые будут запущены перед или
  после скриптов, которые создают или обновляют базу (скрипты
  развертывания). Может быть только по одноу скрипту, но можно
  включать другие скипты внутрь этих.
                      www.cmcons.com
Опции развертывания




    www.cmcons.com
Развертывание БД




  www.cmcons.com
Развертывание в различных средах




   Build verified                                        Build verified
   and promoted                                          and promoted
       to SIT                                               to Prod




                        SIT                    UAT
                      (System              (Acceptance
                    Integration)             Testing)




Development                                                   Production

                                   Build



                          www.cmcons.com
Database
  Project




               Build                Deploy
    Database
     Project




Database
 Project               Build/Drop
                                             Target Servers
                                             (Environment)


                  www.cmcons.com
Развертывание с VSDBCMD




Build
                         Script.PreDeployment




          Build/Drop     Script.PostDeployment




                          Database.dbschema



        www.cmcons.com
Конфигурирование развертывания


Database.sqlcmdvars

• Содержит наименования и значения для
  переменных SQLCMD, которые используются
  для развертывания проекта. Можно создавать
  фал sqlcmdvars для каждой конфигурации.

Database.sqldeployment

• Содержит специфические для развертывания
  настройки такие как имя базы данных и
  строка соединения. Можно создавать фал
  sqldeployment для каждой конфигурации.
               www.cmcons.com
Скрипты, выполняемые перед
развертыванием и после развертывания




            www.cmcons.com
Развертывание баз данных

ДЕМОНСТРАЦИЯ


                   www.cmcons.com
Тестирование с использованием модульных тестов

DATABASE UNIT TESTS


                   www.cmcons.com
Типы тестов


Тестирование возможностей
• Тестирование хранимых процедур, функций и
  триггеров
Тестирование схемы
• Проверка соответствия схемы БД

Тестирование безопасности
• Проверка правильного распределения доступа

Тестирование справочных данных
                www.cmcons.com
Возможности VS для модульного
               тестирования БД




Автоматическое      Использование
генерирование     предварительных и   Предопределенные
   скриптов          очищающих         тестовые условия
 тестирования          скриптов



                     Встраивание       Использование
 Генерирование
                   тестов в процесс   тестов в контроле
тестовых данных
                        сборки             версий




                  www.cmcons.com
Проверка теста



SQL Assertions
• Аналогом assert модульных тестов в модульных
  тестах БД используется команда RAISERROR
Тестовые условия
•   Количество строк
•   Скалярные значения
•   Пустой результат
•   Не пустой результат
•   Время исполнения
•   Незаконченный
                   www.cmcons.com
Использование модульных тестов

ДЕМОНСТРАЦИЯ


                   www.cmcons.com
Управление состоянием базы данных



Как я могу гарантировать что
данные в моей базе данных
именно те, которые я ожидаю при
выполнении тестирования?
• Необходимо убедиться, что база данных в
  необходимом состоянии перед
  выполнением тестов
• Необходимо убедиться, что база данных в
  необходимом состоянии между каждым
  тестовым запуском
               www.cmcons.com
Управление состоянием базы данных

• Использование инструментов генерирования данных для установки
  состояния БД перед запусков набора модульных тестов


• Восстановить БД из резервной копии или подключиться к
  существующей БД


• Разрабатывать тесты не требующих определенного состояния и
  устанавливать состояние с помощь предварительных условий


• Использовать транзакции



• Восстанавливать состояние после выполнения каждого теста


                   www.cmcons.com
Генерирование данных



            • Использование промышленных данных для
              тестирования
            • Создание тестовых данных с нуля
 Методы



            • Настраиваемые генераторы данных
            • Дополнительные генераторы
            • Интеллектуальные назначения генераторов по
              умолчанию
            • Учет ограничений базы данных
Генератор   • Расширяемость генератора и распределения
            • Сгенерированные данные повторяемые
            • Поддержка связей между таблицами

                      www.cmcons.com
Генерирование тестовых данных

ДЕМОНСТРАЦИЯ


                   www.cmcons.com
СТАТИЧЕСКИЙ АНАЛИЗ


        www.cmcons.com
Возможности




                                       Позволяет
 Отслеживает       Проверяет
                                     разрабатывать
потенциальные     соответствие
                                      собственные
    ошибки         стандартам
                                        правила

                            Интегрируется с
           Улучшает            контролем
        читаемость кода         версий и
                            сервером сборки



                 www.cmcons.com
Типы вредупреждений

Проблемы проектирования Transact-SQL
 • SR0001: не используйте запрос SELECT * в хранимых процедурах, представлениях и
   функциях с табличным значением
 • SR0008: рассмотрите возможность использования SCOPE_IDENTITY вместо @@IDENTITY
 • SR0009: избегайте использования типов переменной длины с размером 1 или 2
 • SR0010: не используйте устаревший синтаксис при объединении таблиц или представлений
 • SR0013: выходной параметр (parameter) не заполняется во всех путях кода
 • SR0014: потеря данных может произойти при приведении от {Тип1} к {Тип2}

Проблемы именования Transact-SQL
 • SR0011. Избегайте использования специальных знаков в именах объектов
 • SR0012. Избегайте использования зарезервированных слов в именах типов
 • SR0016: избегайте использования префикса sp_ для хранимых процедур
Проблемы производительности Transact-SQL
 • SR0004: не используйте столбцы без индексов в качестве тестовых выражений в предикатах
   IN
 • SR0005: не используйте шаблоны, которые начинаются с "%", в предикатах LIKE
 • SR0006: для использования индекса столбца переместите ссылку на столбец на одну сторону
   оператора сравнения
 • SR0007: используйте функцию ISNULL(столбец, значение_по_умолчанию) в выражениях для
   столбцов, допускающих значения NULL
 • SR0015: вызовы детерминированной функции следует извлекать из предикатов WHERE
                                 www.cmcons.com
Использование правил статического анализа

ДЕМОНСТРАЦИЯ


                    www.cmcons.com
www.cmcons.com

More Related Content

What's hot

Agile software configuration management
Agile software configuration managementAgile software configuration management
Agile software configuration managementSergii Shmarkatiuk
 
управление сборками и развертыванием веб приложений
управление сборками и развертыванием веб приложенийуправление сборками и развертыванием веб приложений
управление сборками и развертыванием веб приложений
Sergii Shmarkatiuk
 
Embarcadero All-Access
Embarcadero All-AccessEmbarcadero All-Access
Embarcadero All-AccessSerghei Urban
 
Фундамент для облака. Что нового в vSphere 5. (Часть 1)
Фундамент для облака. Что нового в vSphere 5. (Часть 1)Фундамент для облака. Что нового в vSphere 5. (Часть 1)
Фундамент для облака. Что нового в vSphere 5. (Часть 1)
areconster
 
Web deployment
Web deploymentWeb deployment
Web deployment
GetDev.NET
 
Конвейерное производство приложений
Конвейерное производство приложенийКонвейерное производство приложений
Конвейерное производство приложений
Rambler Android
 
Фреймворк автотестирования веб-сервисов своими силами
Фреймворк автотестирования веб-сервисов своими силамиФреймворк автотестирования веб-сервисов своими силами
Фреймворк автотестирования веб-сервисов своими силами
SQALab
 
Безопасное облако на основе vCloud 1.5 и vShield 5
Безопасное облако на основе vCloud 1.5 и vShield 5Безопасное облако на основе vCloud 1.5 и vShield 5
Безопасное облако на основе vCloud 1.5 и vShield 5
areconster
 
Особенности лицензирования облачных решений vCloud, vFabric, vShield
Особенности лицензирования облачных решений vCloud, vFabric, vShieldОсобенности лицензирования облачных решений vCloud, vFabric, vShield
Особенности лицензирования облачных решений vCloud, vFabric, vShield
areconster
 
Windows Server 2008 новинки
Windows Server 2008   новинкиWindows Server 2008   новинки
Windows Server 2008 новинкиAlexander Babich
 
"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)
SPB SQA Group
 

What's hot (12)

MS TFS 2010 - Обзор и архитектура
MS TFS 2010 - Обзор и архитектураMS TFS 2010 - Обзор и архитектура
MS TFS 2010 - Обзор и архитектура
 
Agile software configuration management
Agile software configuration managementAgile software configuration management
Agile software configuration management
 
управление сборками и развертыванием веб приложений
управление сборками и развертыванием веб приложенийуправление сборками и развертыванием веб приложений
управление сборками и развертыванием веб приложений
 
Embarcadero All-Access
Embarcadero All-AccessEmbarcadero All-Access
Embarcadero All-Access
 
Фундамент для облака. Что нового в vSphere 5. (Часть 1)
Фундамент для облака. Что нового в vSphere 5. (Часть 1)Фундамент для облака. Что нового в vSphere 5. (Часть 1)
Фундамент для облака. Что нового в vSphere 5. (Часть 1)
 
Web deployment
Web deploymentWeb deployment
Web deployment
 
Конвейерное производство приложений
Конвейерное производство приложенийКонвейерное производство приложений
Конвейерное производство приложений
 
Фреймворк автотестирования веб-сервисов своими силами
Фреймворк автотестирования веб-сервисов своими силамиФреймворк автотестирования веб-сервисов своими силами
Фреймворк автотестирования веб-сервисов своими силами
 
Безопасное облако на основе vCloud 1.5 и vShield 5
Безопасное облако на основе vCloud 1.5 и vShield 5Безопасное облако на основе vCloud 1.5 и vShield 5
Безопасное облако на основе vCloud 1.5 и vShield 5
 
Особенности лицензирования облачных решений vCloud, vFabric, vShield
Особенности лицензирования облачных решений vCloud, vFabric, vShieldОсобенности лицензирования облачных решений vCloud, vFabric, vShield
Особенности лицензирования облачных решений vCloud, vFabric, vShield
 
Windows Server 2008 новинки
Windows Server 2008   новинкиWindows Server 2008   новинки
Windows Server 2008 новинки
 
"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)
 

Viewers also liked

Entity framework
Entity frameworkEntity framework
Entity frameworkScaiper
 
Кириллин Иван (МойСклад): Секреты работы с клиентской базой
Кириллин Иван (МойСклад): Секреты работы с клиентской базойКириллин Иван (МойСклад): Секреты работы с клиентской базой
Кириллин Иван (МойСклад): Секреты работы с клиентской базой
MoySklad
 
datatable ,dataset,datagridview in C#
datatable ,dataset,datagridview in C#datatable ,dataset,datagridview in C#
datatable ,dataset,datagridview in C#
Д. Бүжинлхам
 
Lecture15
Lecture15Lecture15
Lecture15orgil
 
Разработка, тестирование и развертывание баз данных в Visual Studio Team Syst...
Разработка, тестирование и развертывание баз данных в Visual Studio Team Syst...Разработка, тестирование и развертывание баз данных в Visual Studio Team Syst...
Разработка, тестирование и развертывание баз данных в Visual Studio Team Syst...
Dmitry Andreev
 
Entity Framework Overview
Entity Framework OverviewEntity Framework Overview
Entity Framework Overview
Eric Nelson
 
Управление данными (распределенная обработка)
Управление данными (распределенная обработка)Управление данными (распределенная обработка)
Управление данными (распределенная обработка)
Ural Federal University named after First President of Russia B.N. Yeltsin
 
Управление данными. Основы проектирования БД
Управление данными. Основы проектирования БДУправление данными. Основы проектирования БД
Управление данными. Основы проектирования БД
Ural Federal University named after First President of Russia B.N. Yeltsin
 
Lecture vcp413
Lecture vcp413Lecture vcp413
Lecture vcp413orgil
 

Viewers also liked (10)

Entity framework
Entity frameworkEntity framework
Entity framework
 
Кириллин Иван (МойСклад): Секреты работы с клиентской базой
Кириллин Иван (МойСклад): Секреты работы с клиентской базойКириллин Иван (МойСклад): Секреты работы с клиентской базой
Кириллин Иван (МойСклад): Секреты работы с клиентской базой
 
datatable ,dataset,datagridview in C#
datatable ,dataset,datagridview in C#datatable ,dataset,datagridview in C#
datatable ,dataset,datagridview in C#
 
Lecture15
Lecture15Lecture15
Lecture15
 
Разработка, тестирование и развертывание баз данных в Visual Studio Team Syst...
Разработка, тестирование и развертывание баз данных в Visual Studio Team Syst...Разработка, тестирование и развертывание баз данных в Visual Studio Team Syst...
Разработка, тестирование и развертывание баз данных в Visual Studio Team Syst...
 
.NET Development
.NET Development.NET Development
.NET Development
 
Entity Framework Overview
Entity Framework OverviewEntity Framework Overview
Entity Framework Overview
 
Управление данными (распределенная обработка)
Управление данными (распределенная обработка)Управление данными (распределенная обработка)
Управление данными (распределенная обработка)
 
Управление данными. Основы проектирования БД
Управление данными. Основы проектирования БДУправление данными. Основы проектирования БД
Управление данными. Основы проектирования БД
 
Lecture vcp413
Lecture vcp413Lecture vcp413
Lecture vcp413
 

Similar to Разработка БД с использованием инструментов MS VS 2010

Описание и архитектура TFS 2008
Описание и архитектура TFS 2008Описание и архитектура TFS 2008
Описание и архитектура TFS 2008
Александр Шамрай
 
Типовая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesТиповая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive Technologies
Positive Hack Days
 
Миграция БД - практический_подход с инструментами Embarcadero
Миграция БД - практический_подход с инструментами EmbarcaderoМиграция БД - практический_подход с инструментами Embarcadero
Миграция БД - практический_подход с инструментами Embarcadero
Andrew Sovtsov
 
Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)
Vladimir Bakhov
 
Tfs Overview And Architecture (www.cmcons.com)
Tfs Overview And Architecture (www.cmcons.com)Tfs Overview And Architecture (www.cmcons.com)
Tfs Overview And Architecture (www.cmcons.com)
Alexander Novichkov
 
Полная автоматизация развертываний ПО: общие концепции, пример реализации, ср...
Полная автоматизация развертываний ПО: общие концепции, пример реализации, ср...Полная автоматизация развертываний ПО: общие концепции, пример реализации, ср...
Полная автоматизация развертываний ПО: общие концепции, пример реализации, ср...
SQALab
 
14-02-26 DBA 101_ как найти и устранить причины замедления работы БД
14-02-26 DBA 101_ как найти и устранить причины замедления работы БД14-02-26 DBA 101_ как найти и устранить причины замедления работы БД
14-02-26 DBA 101_ как найти и устранить причины замедления работы БД
Andrew Sovtsov
 
Simonova CSEDays
Simonova CSEDaysSimonova CSEDays
Simonova CSEDaysLiloSEA
 
Katerina Simonova CSEDays
Katerina Simonova CSEDaysKaterina Simonova CSEDays
Katerina Simonova CSEDaysLiloSEA
 
Основные аспекты управления веб-проектом в Microsoft Azure Websites
Основные аспекты управления веб-проектом в Microsoft Azure WebsitesОсновные аспекты управления веб-проектом в Microsoft Azure Websites
Основные аспекты управления веб-проектом в Microsoft Azure Websites
Artur Baranok
 
Разработка по с использованием Tfs 2012
Разработка по с использованием Tfs 2012Разработка по с использованием Tfs 2012
Разработка по с использованием Tfs 2012Александр Шамрай
 
Обзор и архитектура MS Visual Studio Team System 2008
Обзор и архитектура MS Visual Studio Team System 2008Обзор и архитектура MS Visual Studio Team System 2008
Обзор и архитектура MS Visual Studio Team System 2008
Александр Шамрай
 
Ядро автоматизации под микро-сервисную архитектуру
Ядро автоматизации под микро-сервисную архитектуруЯдро автоматизации под микро-сервисную архитектуру
Ядро автоматизации под микро-сервисную архитектуру
SQALab
 
Roman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows AzureRoman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows AzureAndrew Mayorov
 
1С-Битрикс - Производительность
1С-Битрикс - Производительность1С-Битрикс - Производительность
1С-Битрикс - Производительность
Alexander Demidov
 
Новые возможности развертывания и масштабирования open source приложений в Az...
Новые возможности развертывания и масштабирования open source приложений в Az...Новые возможности развертывания и масштабирования open source приложений в Az...
Новые возможности развертывания и масштабирования open source приложений в Az...
Artur Baranok
 
Промышленная разработка ПО. Лекция 2. Инструменты
Промышленная разработка ПО. Лекция 2. ИнструментыПромышленная разработка ПО. Лекция 2. Инструменты
Промышленная разработка ПО. Лекция 2. Инструменты
Mikhail Payson
 

Similar to Разработка БД с использованием инструментов MS VS 2010 (20)

Обзор и архитектура MS Team System
Обзор и архитектура MS Team SystemОбзор и архитектура MS Team System
Обзор и архитектура MS Team System
 
Описание и архитектура TFS 2008
Описание и архитектура TFS 2008Описание и архитектура TFS 2008
Описание и архитектура TFS 2008
 
Типовая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesТиповая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive Technologies
 
Миграция БД - практический_подход с инструментами Embarcadero
Миграция БД - практический_подход с инструментами EmbarcaderoМиграция БД - практический_подход с инструментами Embarcadero
Миграция БД - практический_подход с инструментами Embarcadero
 
Simonova sql server-enginetesting
Simonova sql server-enginetestingSimonova sql server-enginetesting
Simonova sql server-enginetesting
 
Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)
 
Разработка БД и TFS
Разработка БД и TFSРазработка БД и TFS
Разработка БД и TFS
 
Tfs Overview And Architecture (www.cmcons.com)
Tfs Overview And Architecture (www.cmcons.com)Tfs Overview And Architecture (www.cmcons.com)
Tfs Overview And Architecture (www.cmcons.com)
 
Полная автоматизация развертываний ПО: общие концепции, пример реализации, ср...
Полная автоматизация развертываний ПО: общие концепции, пример реализации, ср...Полная автоматизация развертываний ПО: общие концепции, пример реализации, ср...
Полная автоматизация развертываний ПО: общие концепции, пример реализации, ср...
 
14-02-26 DBA 101_ как найти и устранить причины замедления работы БД
14-02-26 DBA 101_ как найти и устранить причины замедления работы БД14-02-26 DBA 101_ как найти и устранить причины замедления работы БД
14-02-26 DBA 101_ как найти и устранить причины замедления работы БД
 
Simonova CSEDays
Simonova CSEDaysSimonova CSEDays
Simonova CSEDays
 
Katerina Simonova CSEDays
Katerina Simonova CSEDaysKaterina Simonova CSEDays
Katerina Simonova CSEDays
 
Основные аспекты управления веб-проектом в Microsoft Azure Websites
Основные аспекты управления веб-проектом в Microsoft Azure WebsitesОсновные аспекты управления веб-проектом в Microsoft Azure Websites
Основные аспекты управления веб-проектом в Microsoft Azure Websites
 
Разработка по с использованием Tfs 2012
Разработка по с использованием Tfs 2012Разработка по с использованием Tfs 2012
Разработка по с использованием Tfs 2012
 
Обзор и архитектура MS Visual Studio Team System 2008
Обзор и архитектура MS Visual Studio Team System 2008Обзор и архитектура MS Visual Studio Team System 2008
Обзор и архитектура MS Visual Studio Team System 2008
 
Ядро автоматизации под микро-сервисную архитектуру
Ядро автоматизации под микро-сервисную архитектуруЯдро автоматизации под микро-сервисную архитектуру
Ядро автоматизации под микро-сервисную архитектуру
 
Roman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows AzureRoman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows Azure
 
1С-Битрикс - Производительность
1С-Битрикс - Производительность1С-Битрикс - Производительность
1С-Битрикс - Производительность
 
Новые возможности развертывания и масштабирования open source приложений в Az...
Новые возможности развертывания и масштабирования open source приложений в Az...Новые возможности развертывания и масштабирования open source приложений в Az...
Новые возможности развертывания и масштабирования open source приложений в Az...
 
Промышленная разработка ПО. Лекция 2. Инструменты
Промышленная разработка ПО. Лекция 2. ИнструментыПромышленная разработка ПО. Лекция 2. Инструменты
Промышленная разработка ПО. Лекция 2. Инструменты
 

More from Александр Шамрай

Azure DevOps Адаптация под собственные потребности
Azure DevOps Адаптация под собственные потребностиAzure DevOps Адаптация под собственные потребности
Azure DevOps Адаптация под собственные потребности
Александр Шамрай
 
Azure DevOps сборка, развертывание и тестирование
Azure DevOps сборка, развертывание и тестированиеAzure DevOps сборка, развертывание и тестирование
Azure DevOps сборка, развертывание и тестирование
Александр Шамрай
 
Azure DevOps Управление проектом и версионный контроль
Azure DevOps Управление проектом и версионный контрольAzure DevOps Управление проектом и версионный контроль
Azure DevOps Управление проектом и версионный контроль
Александр Шамрай
 
Организация процессов разработки на основе VSTS и TFS
Организация процессов разработки на основе VSTS и TFSОрганизация процессов разработки на основе VSTS и TFS
Организация процессов разработки на основе VSTS и TFS
Александр Шамрай
 
Особенности и примеры использования Microsoft Project Server и Team Foundatio...
Особенности и примеры использования Microsoft Project Server и Team Foundatio...Особенности и примеры использования Microsoft Project Server и Team Foundatio...
Особенности и примеры использования Microsoft Project Server и Team Foundatio...
Александр Шамрай
 
Cовременные подходы организации процессов разработки
Cовременные подходы организации процессов разработкиCовременные подходы организации процессов разработки
Cовременные подходы организации процессов разработки
Александр Шамрай
 
Управление запросами к продукту на основе Team Foundation Server
Управление запросами к продукту на основе Team Foundation ServerУправление запросами к продукту на основе Team Foundation Server
Управление запросами к продукту на основе Team Foundation Server
Александр Шамрай
 
Практическое руководство IBM RTC 3 - Использование отчетности и виджетов
Практическое руководство IBM RTC 3 - Использование отчетности и виджетовПрактическое руководство IBM RTC 3 - Использование отчетности и виджетов
Практическое руководство IBM RTC 3 - Использование отчетности и виджетов
Александр Шамрай
 
Практическое руководство IBM RTC 3 - Конфигурирование шаблона процесса (управ...
Практическое руководство IBM RTC 3 - Конфигурирование шаблона процесса (управ...Практическое руководство IBM RTC 3 - Конфигурирование шаблона процесса (управ...
Практическое руководство IBM RTC 3 - Конфигурирование шаблона процесса (управ...
Александр Шамрай
 
Практическое руководство IBM RTC 3 - Управление проектами жизненного цикла
Практическое руководство IBM RTC 3 - Управление проектами жизненного циклаПрактическое руководство IBM RTC 3 - Управление проектами жизненного цикла
Практическое руководство IBM RTC 3 - Управление проектами жизненного цикла
Александр Шамрай
 
Практическое руководство IBM RTC 3 - Управление проектами на основе гибких по...
Практическое руководство IBM RTC 3 - Управление проектами на основе гибких по...Практическое руководство IBM RTC 3 - Управление проектами на основе гибких по...
Практическое руководство IBM RTC 3 - Управление проектами на основе гибких по...
Александр Шамрай
 
Практическое руководство IBM RTC 3 - Управление проектами на основе формальны...
Практическое руководство IBM RTC 3 - Управление проектами на основе формальны...Практическое руководство IBM RTC 3 - Управление проектами на основе формальны...
Практическое руководство IBM RTC 3 - Управление проектами на основе формальны...
Александр Шамрай
 
Практическое руководство IBM RTC 3 - Управление заданиями Web client
Практическое руководство IBM RTC 3  - Управление заданиями Web clientПрактическое руководство IBM RTC 3  - Управление заданиями Web client
Практическое руководство IBM RTC 3 - Управление заданиями Web client
Александр Шамрай
 
Практическое руководство IBM RTC 3 - Управление заданиями Eclipse client
Практическое руководство IBM RTC 3  - Управление заданиями Eclipse clientПрактическое руководство IBM RTC 3  - Управление заданиями Eclipse client
Практическое руководство IBM RTC 3 - Управление заданиями Eclipse client
Александр Шамрай
 
Практическое руководство IBM RTC 3 - Установка и поддержка
Практическое руководство IBM RTC 3  - Установка и поддержкаПрактическое руководство IBM RTC 3  - Установка и поддержка
Практическое руководство IBM RTC 3 - Установка и поддержка
Александр Шамрай
 
Сквозное обеспечение качества и расширяемость платформы TFS
Сквозное обеспечение качества и расширяемость платформы TFSСквозное обеспечение качества и расширяемость платформы TFS
Сквозное обеспечение качества и расширяемость платформы TFS
Александр Шамрай
 
Организация процессов разработки на основе TFS
Организация процессов разработки на основе TFSОрганизация процессов разработки на основе TFS
Организация процессов разработки на основе TFSАлександр Шамрай
 
Отчеты в TFS VSO  и практики аналитики
Отчеты в TFS VSO  и практики аналитикиОтчеты в TFS VSO  и практики аналитики
Отчеты в TFS VSO  и практики аналитики
Александр Шамрай
 
Организация работы с требованиями и документацией в TFS
Организация работы с требованиями и документацией в TFSОрганизация работы с требованиями и документацией в TFS
Организация работы с требованиями и документацией в TFS
Александр Шамрай
 
Сквозное обеспечение качества и расширяемость платформы на примере тестирован...
Сквозное обеспечение качества и расширяемость платформы на примере тестирован...Сквозное обеспечение качества и расширяемость платформы на примере тестирован...
Сквозное обеспечение качества и расширяемость платформы на примере тестирован...Александр Шамрай
 

More from Александр Шамрай (20)

Azure DevOps Адаптация под собственные потребности
Azure DevOps Адаптация под собственные потребностиAzure DevOps Адаптация под собственные потребности
Azure DevOps Адаптация под собственные потребности
 
Azure DevOps сборка, развертывание и тестирование
Azure DevOps сборка, развертывание и тестированиеAzure DevOps сборка, развертывание и тестирование
Azure DevOps сборка, развертывание и тестирование
 
Azure DevOps Управление проектом и версионный контроль
Azure DevOps Управление проектом и версионный контрольAzure DevOps Управление проектом и версионный контроль
Azure DevOps Управление проектом и версионный контроль
 
Организация процессов разработки на основе VSTS и TFS
Организация процессов разработки на основе VSTS и TFSОрганизация процессов разработки на основе VSTS и TFS
Организация процессов разработки на основе VSTS и TFS
 
Особенности и примеры использования Microsoft Project Server и Team Foundatio...
Особенности и примеры использования Microsoft Project Server и Team Foundatio...Особенности и примеры использования Microsoft Project Server и Team Foundatio...
Особенности и примеры использования Microsoft Project Server и Team Foundatio...
 
Cовременные подходы организации процессов разработки
Cовременные подходы организации процессов разработкиCовременные подходы организации процессов разработки
Cовременные подходы организации процессов разработки
 
Управление запросами к продукту на основе Team Foundation Server
Управление запросами к продукту на основе Team Foundation ServerУправление запросами к продукту на основе Team Foundation Server
Управление запросами к продукту на основе Team Foundation Server
 
Практическое руководство IBM RTC 3 - Использование отчетности и виджетов
Практическое руководство IBM RTC 3 - Использование отчетности и виджетовПрактическое руководство IBM RTC 3 - Использование отчетности и виджетов
Практическое руководство IBM RTC 3 - Использование отчетности и виджетов
 
Практическое руководство IBM RTC 3 - Конфигурирование шаблона процесса (управ...
Практическое руководство IBM RTC 3 - Конфигурирование шаблона процесса (управ...Практическое руководство IBM RTC 3 - Конфигурирование шаблона процесса (управ...
Практическое руководство IBM RTC 3 - Конфигурирование шаблона процесса (управ...
 
Практическое руководство IBM RTC 3 - Управление проектами жизненного цикла
Практическое руководство IBM RTC 3 - Управление проектами жизненного циклаПрактическое руководство IBM RTC 3 - Управление проектами жизненного цикла
Практическое руководство IBM RTC 3 - Управление проектами жизненного цикла
 
Практическое руководство IBM RTC 3 - Управление проектами на основе гибких по...
Практическое руководство IBM RTC 3 - Управление проектами на основе гибких по...Практическое руководство IBM RTC 3 - Управление проектами на основе гибких по...
Практическое руководство IBM RTC 3 - Управление проектами на основе гибких по...
 
Практическое руководство IBM RTC 3 - Управление проектами на основе формальны...
Практическое руководство IBM RTC 3 - Управление проектами на основе формальны...Практическое руководство IBM RTC 3 - Управление проектами на основе формальны...
Практическое руководство IBM RTC 3 - Управление проектами на основе формальны...
 
Практическое руководство IBM RTC 3 - Управление заданиями Web client
Практическое руководство IBM RTC 3  - Управление заданиями Web clientПрактическое руководство IBM RTC 3  - Управление заданиями Web client
Практическое руководство IBM RTC 3 - Управление заданиями Web client
 
Практическое руководство IBM RTC 3 - Управление заданиями Eclipse client
Практическое руководство IBM RTC 3  - Управление заданиями Eclipse clientПрактическое руководство IBM RTC 3  - Управление заданиями Eclipse client
Практическое руководство IBM RTC 3 - Управление заданиями Eclipse client
 
Практическое руководство IBM RTC 3 - Установка и поддержка
Практическое руководство IBM RTC 3  - Установка и поддержкаПрактическое руководство IBM RTC 3  - Установка и поддержка
Практическое руководство IBM RTC 3 - Установка и поддержка
 
Сквозное обеспечение качества и расширяемость платформы TFS
Сквозное обеспечение качества и расширяемость платформы TFSСквозное обеспечение качества и расширяемость платформы TFS
Сквозное обеспечение качества и расширяемость платформы TFS
 
Организация процессов разработки на основе TFS
Организация процессов разработки на основе TFSОрганизация процессов разработки на основе TFS
Организация процессов разработки на основе TFS
 
Отчеты в TFS VSO  и практики аналитики
Отчеты в TFS VSO  и практики аналитикиОтчеты в TFS VSO  и практики аналитики
Отчеты в TFS VSO  и практики аналитики
 
Организация работы с требованиями и документацией в TFS
Организация работы с требованиями и документацией в TFSОрганизация работы с требованиями и документацией в TFS
Организация работы с требованиями и документацией в TFS
 
Сквозное обеспечение качества и расширяемость платформы на примере тестирован...
Сквозное обеспечение качества и расширяемость платформы на примере тестирован...Сквозное обеспечение качества и расширяемость платформы на примере тестирован...
Сквозное обеспечение качества и расширяемость платформы на примере тестирован...
 

Разработка БД с использованием инструментов MS VS 2010

  • 2. Возможности для разработки БД MS VISUAL STUDIO 2010 www.cmcons.com
  • 3. Общий сценарий разработки БД с инструментами VS www.cmcons.com
  • 4. Общие возможности проектов VS Управление изменениями БД • Версионный контроль для схемы • Инкрементальное развертывание • Сравнение схем и данных • Рефакторинг схем Управление качеством БД • Проверка и визуализация зависимостей • Статический анализ • Модульное тестирование и Генерирование данных Интеграция процесса разработки БД с общим процессом разработки • Общая среда разработки • Интеграция сборки БД с MS Build и Team Build • Интеграция версионного контроля с TFS www.cmcons.com
  • 5. Доступность функций в различных версиях VS Visual Studio Database Project Visual Studio Premium/Ultimate Сравнение схем Visual Studio Professional Сравнение данных Модульное Развертывание Интеграция Генерирование Статический тестирование из командной Team Build данных* анализ кода* БД* строки Рефакторинг www.cmcons.com
  • 7. Обновление версий от N к N+1 Обновление от версии 1 к 2 и от 2 к 3 • ALTER TABLE dbo.Auction ADD description VARCHAR(25) • ALTER TABLE dbo.Auction ALTER COLUMN description VARCHAR(100) Обновление от версии 1 к 3 • ALTER TABLE dbo.Auction ADD description VARCHAR(100) www.cmcons.com
  • 8. Visual Studio для оффлайновой разработки • Проект базы данных (.dbproj), предназначенный для управления разработкой базы данных. • Декларативная поддержка синтаксиса SQL, где схема определяется на языке базы данных. • Представление модели схемы для схемы базы данных, когда исходный код может использоваться по кругу из источника модели и обратно. • Модель схемы взаимодействует предоставления программную модели для инструментария и дизайнеров баз данных. • Интерпретация и проверка синтаксиса и схемы зависимостей SQL обеспечивает целостность исходников без их выполнения в базе данных. • Механизм сравнения схемы, который сравнивает проект с целевой базой данных для генерирования скрипта обновления. • Скомпилированные версии схемы базы данных позволяют отложенное развертывание и создание скрипта (файл .dbschema). • Файлы .DBSCHEMA могут быть развернуты в различных средах, содержащих различные конфигурации. www.cmcons.com
  • 9. Исходный код Код для БД www.cmcons.com
  • 10. Общий скрипт Скрипт для пустой БД www.cmcons.com
  • 13. Общий код – сборка и зависимости Публикация сборок для общих компонент • DBSCHEMA файлы для межпроектных сборок • Части проектов для межпроектных сборок • Составные проекты для команд по возможностям Использование сборок для общих компонент • Интеграционные уровни • Ответственность за качество опубликованных компонент www.cmcons.com
  • 14. Частичные проекты Составные проекты www.cmcons.com
  • 15. Создание проектов баз данных Методы публикации сборок ДЕМОНСТРАЦИЯ www.cmcons.com
  • 16. Сборка и развертывание проекта MS VISUAL STUDIO 2010 www.cmcons.com
  • 17. Сборка проекта  1) Проект базы данных загружается в память  2) Собирается модель проекта базы данных  a. Офлайновая модель схемы обновляется из кеша (если есть) или собирается из .sql файлов в проекте.  b. Модель схемы и все зависимости проверяются.  3) Собирается проект базы данных  a. Офлайновая модель схемы проверяется.  b. Проектные параметры настройки обрабатываются и копируются.  c. Модели схем, на которые есть ссылки, копируются.  4) Собирается .dbschema  a. Модель схемы преобразовывается в последовательную форму и упаковывается в.dbschema файл.  b. Создается манифест развертывания.  c. Если есть статический анализ кода, то он выполняется. www.cmcons.com
  • 18. Результаты сборки .dbschema • Преобразованная в последовательную форму XML представление модели схемы. Представляет проект базы данных. .deploymanifest • Манифест, содержащий всю информацию о конфигурации на проектном уровне, которая позволяет развертывание без файла проекта базы данных (.dbproj). Манифест - файл XML со структурой, которая очень подобна файлу проекта MSBuild. Pre and Post deployment scripts • Эти отдельные файлы, которые будут запущены перед или после скриптов, которые создают или обновляют базу (скрипты развертывания). Может быть только по одноу скрипту, но можно включать другие скипты внутрь этих. www.cmcons.com
  • 21. Развертывание в различных средах Build verified Build verified and promoted and promoted to SIT to Prod SIT UAT (System (Acceptance Integration) Testing) Development Production Build www.cmcons.com
  • 22. Database Project Build Deploy Database Project Database Project Build/Drop Target Servers (Environment) www.cmcons.com
  • 23. Развертывание с VSDBCMD Build Script.PreDeployment Build/Drop Script.PostDeployment Database.dbschema www.cmcons.com
  • 24. Конфигурирование развертывания Database.sqlcmdvars • Содержит наименования и значения для переменных SQLCMD, которые используются для развертывания проекта. Можно создавать фал sqlcmdvars для каждой конфигурации. Database.sqldeployment • Содержит специфические для развертывания настройки такие как имя базы данных и строка соединения. Можно создавать фал sqldeployment для каждой конфигурации. www.cmcons.com
  • 25. Скрипты, выполняемые перед развертыванием и после развертывания www.cmcons.com
  • 27. Тестирование с использованием модульных тестов DATABASE UNIT TESTS www.cmcons.com
  • 28. Типы тестов Тестирование возможностей • Тестирование хранимых процедур, функций и триггеров Тестирование схемы • Проверка соответствия схемы БД Тестирование безопасности • Проверка правильного распределения доступа Тестирование справочных данных www.cmcons.com
  • 29. Возможности VS для модульного тестирования БД Автоматическое Использование генерирование предварительных и Предопределенные скриптов очищающих тестовые условия тестирования скриптов Встраивание Использование Генерирование тестов в процесс тестов в контроле тестовых данных сборки версий www.cmcons.com
  • 30. Проверка теста SQL Assertions • Аналогом assert модульных тестов в модульных тестах БД используется команда RAISERROR Тестовые условия • Количество строк • Скалярные значения • Пустой результат • Не пустой результат • Время исполнения • Незаконченный www.cmcons.com
  • 32. Управление состоянием базы данных Как я могу гарантировать что данные в моей базе данных именно те, которые я ожидаю при выполнении тестирования? • Необходимо убедиться, что база данных в необходимом состоянии перед выполнением тестов • Необходимо убедиться, что база данных в необходимом состоянии между каждым тестовым запуском www.cmcons.com
  • 33. Управление состоянием базы данных • Использование инструментов генерирования данных для установки состояния БД перед запусков набора модульных тестов • Восстановить БД из резервной копии или подключиться к существующей БД • Разрабатывать тесты не требующих определенного состояния и устанавливать состояние с помощь предварительных условий • Использовать транзакции • Восстанавливать состояние после выполнения каждого теста www.cmcons.com
  • 34. Генерирование данных • Использование промышленных данных для тестирования • Создание тестовых данных с нуля Методы • Настраиваемые генераторы данных • Дополнительные генераторы • Интеллектуальные назначения генераторов по умолчанию • Учет ограничений базы данных Генератор • Расширяемость генератора и распределения • Сгенерированные данные повторяемые • Поддержка связей между таблицами www.cmcons.com
  • 37. Возможности Позволяет Отслеживает Проверяет разрабатывать потенциальные соответствие собственные ошибки стандартам правила Интегрируется с Улучшает контролем читаемость кода версий и сервером сборки www.cmcons.com
  • 38. Типы вредупреждений Проблемы проектирования Transact-SQL • SR0001: не используйте запрос SELECT * в хранимых процедурах, представлениях и функциях с табличным значением • SR0008: рассмотрите возможность использования SCOPE_IDENTITY вместо @@IDENTITY • SR0009: избегайте использования типов переменной длины с размером 1 или 2 • SR0010: не используйте устаревший синтаксис при объединении таблиц или представлений • SR0013: выходной параметр (parameter) не заполняется во всех путях кода • SR0014: потеря данных может произойти при приведении от {Тип1} к {Тип2} Проблемы именования Transact-SQL • SR0011. Избегайте использования специальных знаков в именах объектов • SR0012. Избегайте использования зарезервированных слов в именах типов • SR0016: избегайте использования префикса sp_ для хранимых процедур Проблемы производительности Transact-SQL • SR0004: не используйте столбцы без индексов в качестве тестовых выражений в предикатах IN • SR0005: не используйте шаблоны, которые начинаются с "%", в предикатах LIKE • SR0006: для использования индекса столбца переместите ссылку на столбец на одну сторону оператора сравнения • SR0007: используйте функцию ISNULL(столбец, значение_по_умолчанию) в выражениях для столбцов, допускающих значения NULL • SR0015: вызовы детерминированной функции следует извлекать из предикатов WHERE www.cmcons.com
  • 39. Использование правил статического анализа ДЕМОНСТРАЦИЯ www.cmcons.com