SlideShare una empresa de Scribd logo
1 de 35
Разработка, тестирование и развертывание баз данных в VisualStudio Team System 2010 Дмитрий Андреев dmitryan@microsoft.com
Содержание Введение Проект БД и жизненный цикл БД Генерация тестовых данных Юнит-тестирование Управление изменениями Развертывание Заключение
Очень важные вопросы Где находится «истинная» схема? Эксплуатационная база? Что насчет исправлений? Что будем делать с следующей версией? Как вести версии базы данных? Что делать с тестовыми данными? Как проверить логику базы данных? Какие средства использовать для сравнения схем? Как развертывать БД и как делать апгрейд?
Visual Studio 2010 Проблема Где «истинная» схема? Как вести версии? Как проводить тестирование? Как управлять изменениями? Решение Где угодно.  Схема это исходный проект. Так же как и в привычных программных проектах. Генерация тестовых данных. Юнит тестирование баз данных. Рефакторинг, сравнение схем.
Правда о «истинной схеме» Эксплуатационная база – единственная верная схема соответствующая версии вашей эксплуатационной системы Возможны исправления для этой базы. Разработка будущей версии ведется безотносительно к эксплуатационной версии Патч для эксплуатационной версии это возникновение: Новой эксплуатационной версии базы Новой версии эксплуатационной системы Патч+«Старая версия БД»=релиз билд
Содержание Введение Проект БД и жизненный цикл БД Генерация тестовых данных Юнит-тестирование Управление изменениями Развертывание Заключение
Проектная модель Проект базы данных (Visual Studio Project) отражает эволюционирующую схему Проект содержит DDL скрипты  (*.SQL файлы) Контроль версий ведется на уровне исходных текстов этих скриптов Ключ к успеху: Автоматическая генерация тестовых данных Юнит тестирование
Жизненный цикл SQL Server Database Импорт схемы Database Project Database Project  Template Создание нового проекта Реверс существующего скрипта SQL Script
Жизненный цикл: классика ALM Edit Refactor Compare Deploy Build Database Project Data Gen Test Compare
Проблема с контролем версий Database class AuctionApplication (   int id;  void MethodA(); ) class AuctionApplication (   int id;  void MethodA(); void MethodB(); ) class AuctionApplication (   int    id; string cacheTitle;   void MethodA(); void MethodB(); ) V 2 V 3 Revision History V 1 CREATE TABLE dbo.Auction (   id    INT NOT NULL,  name  VARCHAR(25) NOT NULL,  start DATETIME NULL,  len   INT NULL ) ALTER TABLE dbo.Auction WITH CHECK ADD CONSTRAINT Au_PK PRIMARY KEY (id) ALTER TABLE dbo.Auction  WITH CHECK ADD CONSTRAINT Au_SK UNIQUE (name) App
Ручное ведение версий -- version 1 Add table dbo.Auction IF OBJECT_ID (N'dbo.Auction', N'U') IS NULL BEGIN CREATE TABLE dbo.Auction ( 	id    INT NOT NULL,  	name  VARCHAR(25) NOT NULL,  	start DATETIME NULL, len   INT NULL ) END -- version 2 Add PK Au_PK IF NOT EXISTS (SELECT * FROM sys.key_constraints WHERE name = 'Au_PK' AND type = 'PK') BEGIN 	ALTER TABLE Auction   	WITH CHECK ADD CONSTRAINT Au_PK PRIMARY KEY (id) END -- version 3 Add UC Au_SK IF NOT EXISTS (SELECT * FROM sys.key_constraints WHERE name = 'Au_SK' AND type = ‘UQ') BEGIN 	ALTER TABLE Auction   	WITH CHECK ADD CONSTRAINT Au_SK UNIQUE (name) END
Верный подход к ведению версий class AuctionApplication (   int id;  void MethodA(); ) class AuctionApplication (   int id;  void MethodA(); void MethodB(); ) class AuctionApplication (   int    id; string cacheTitle;  void MethodA(); void MethodB(); ) LogicalDatabase V 2 V 3 Revision History V 1 CREATE TABLE dbo.Auction (   id    INT NOT NULL,  name  VARCHAR(25) NOT NULL,  start DATETIME NULL,  len   INT NULL ) CREATE TABLE dbo.Auction (   id    INT NOT NULL PRIMARY KEY,  name  VARCHAR(25) NOT NULL,  start DATETIME NULL,  len   INT NULL ) CREATE TABLE dbo.Auction (   id    INT NOT NULL PRIMARY KEY,  name  VARCHAR(25) NOT NULL UNIQUE,  start DATETIME NULL,  len   INT NULL ) App
Инкрементальное Развертывание Эксплуатируемая система Новая система CREATE TABLE dbo.Auction (   id    INT NOT NULL,  name  VARCHAR(25) NOT NULL,  start DATETIME NULL,  len   INT NULL ) CREATE TABLE dbo.Auction (   id    INT NOT NULL PRIMARY KEY,  name  VARCHAR(25) NOT NULL,  start DATETIME NULL,  len   INT NULL ) CREATE TABLE dbo.Auction (   id    INT NOT NULL PRIMARY KEY,  name  VARCHAR(25) NOT NULL UNIQUE,  start DATETIME NULL,  len   INT NULL ) Логическая база V 2 V 3 Revision History V 1 CREATE TABLE dbo.Auction (   id    INT NOT NULL PRIMARY KEY,  name  VARCHAR(25) NOT NULL UNIQUE,  start DATETIME NULL,  len   INT NULL ) ALTER TABLE dbo.Auction  WITH CHECK ADD CONSTRAINT   Au_SK UNIQUE (name)
Содержание Введение Проект БД и жизненный цикл БД Генерация тестовых данных Юнит-тестирование Управление изменениями Развертывание Заключение
Тестовые данные и Q&A Почему бы не использовать эксплуатационные данные? Они  могут быть не верны! Не позволят протестировать «острые углы». Не позволят проверить изменения в схемах данных! Какие тестовые данные необходимы? Случайные! Детерминируемые. Распределенные соответствующим образом Количественно (сто первичных ключей -> десять тысяч дочерних записей) Качественно (длина строк, границы числовых значений и дат,…)
Тестовые данные и Q&A Какие отличия необходимы для тестовых данных Функциональные Нагрузочные Версионирование Необходимы разные тестовые данные и тесты для разных схем Необходимы даже разные тестовые планы для одной и той же схемы
Генерация тестовых данных Основные инструменты Генерация данных для таблиц Количество записей Генераторы для различных типов полей String, RegEx, data bound Можно написать свой собственный генератор Тонкие настройки генераторов
Содержание Введение Проект БД и жизненный цикл БД Генерация тестовых данных Юнит-тестирование Управление изменениями Развертывание Заключение
Юнит тестирование Автоматическая генерация юнит-тестов для  Хранимых процедур, Функций, Триггеров Валидация результатов тестов (asserts) T-SQL Server based RAISEERROR Ожидаемые значения  Не пустые результаты Количество записей Время выполнения Предварительные и пост скрипты
Юнит тестирование Автоматизированное развертывание Перед запуском тестов будет сформирована БД По соответствующему плану генерации тестовых данных будет создана основа для проверки
Содержание Введение Проект БД и жизненный цикл БД Генерация тестовых данных Юнит-тестирование Управление изменениями Развертывание Заключение
Управление изменениями Рефакторинг Сравнение схем Сравнение данных
Содержание Введение Проект БД и жизненный цикл БД Генерация тестовых данных Юнит-тестирование Управление изменениями Развертывание Заключение
Развертывание Стандартный подход Генерация скриптов изменений Через сравнение схемы Взаимодействие с администратором БД Новый подход Представляем: Data Tier Application Project System
Database Project vs. Data Tier Project Data-tier Application Project V1 Стандартный проект БД Visual Studio Visual Studio Build Build .sql Генерация скриптов .dacpac .dbschema SQL Server 2008 R2 SQL Server 2005, 2008, 2008 R2 Deploy Deploy
Database Project vs. Data Tier Project
Разработка Развертывание MANAGE SQL Server Management Studio FinApp Dev DB 1 Deploy / Upgrade DAC Reverse Engineer DAC 2 SQL Server Management Studio 9 4 8 Visual Studio 2010 Manage, Register, Uninstall, Extract, Upgrade DAC Control Point Create policies DBA DBA 7 3 Deploy / Upgrade DAC HR .dacpac Hand-off to DBA Compile + Build FinApp Prod  DB 6 Разработчик SALES 5 Managed Instances
Содержание Введение Проект БД и жизненный цикл БД Генерация тестовых данных Юнит-тестирование Управление изменениями Развертывание Заключение
Заключение Разработка БД может быть полностью интегрирована в стандартный процесс ALM Инструментальные средства позволяют легко создавать объекты БД благодаря IntelliSense, встроенному отладчику Гибкие варианты развертывания могут снизить затраты на управление эксплуатационными БД
Разработка, тестирование и развертывание баз данных в Visual Studio Team System 2010

Más contenido relacionado

Destacado (6)

Entity framework
Entity frameworkEntity framework
Entity framework
 
.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 a Разработка, тестирование и развертывание баз данных в Visual Studio Team System 2010

лабораторная работа 8
лабораторная работа 8лабораторная работа 8
лабораторная работа 8
student_kai
 
Опыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NET
Опыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NETОпыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NET
Опыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NET
GoSharp
 
паттерны проектирования источников данных
паттерны проектирования источников данныхпаттерны проектирования источников данных
паттерны проектирования источников данных
Vitaliy Trenkenshu
 
Performance Monitor для Microsoft SQL Server
Performance Monitor для Microsoft SQL ServerPerformance Monitor для Microsoft SQL Server
Performance Monitor для Microsoft SQL Server
DBPLUS
 
Разработка веб-сервисов осень 2013 лекция 9
Разработка веб-сервисов осень 2013 лекция 9Разработка веб-сервисов осень 2013 лекция 9
Разработка веб-сервисов осень 2013 лекция 9
Technopark
 
Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
 Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва... Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
Nikolay Samokhvalov
 

Similar a Разработка, тестирование и развертывание баз данных в Visual Studio Team System 2010 (20)

Test design print
Test design printTest design print
Test design print
 
лабораторная работа 8
лабораторная работа 8лабораторная работа 8
лабораторная работа 8
 
Оценка трудозатрат на тестирование в проектах сопровождения
Оценка трудозатрат на тестирование в проектах сопровожденияОценка трудозатрат на тестирование в проектах сопровождения
Оценка трудозатрат на тестирование в проектах сопровождения
 
20151112 Что нового в DB PowerStudio 2016
20151112 Что нового в DB PowerStudio 201620151112 Что нового в DB PowerStudio 2016
20151112 Что нового в DB PowerStudio 2016
 
средства оценки производительности
средства оценки производительностисредства оценки производительности
средства оценки производительности
 
Опыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NET
Опыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NETОпыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NET
Опыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NET
 
Паттерны проектирования источников данных
Паттерны проектирования источников данныхПаттерны проектирования источников данных
Паттерны проектирования источников данных
 
паттерны проектирования источников данных
паттерны проектирования источников данныхпаттерны проектирования источников данных
паттерны проектирования источников данных
 
Performance Monitor для Microsoft SQL Server
Performance Monitor для Microsoft SQL ServerPerformance Monitor для Microsoft SQL Server
Performance Monitor для Microsoft SQL Server
 
"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)
 
Описание и архитектура TFS 2008
Описание и архитектура TFS 2008Описание и архитектура TFS 2008
Описание и архитектура TFS 2008
 
Access 2000 1
Access 2000 1Access 2000 1
Access 2000 1
 
Разработка веб-сервисов осень 2013 лекция 9
Разработка веб-сервисов осень 2013 лекция 9Разработка веб-сервисов осень 2013 лекция 9
Разработка веб-сервисов осень 2013 лекция 9
 
Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
 Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва... Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
 
Microsoft Visual Studio 2010
Microsoft Visual Studio 2010Microsoft Visual Studio 2010
Microsoft Visual Studio 2010
 
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)
 
Python Meetup
Python Meetup Python Meetup
Python Meetup
 
Владимир Заец "GraphQL - новый взгляд на API."
Владимир Заец "GraphQL - новый взгляд на API."Владимир Заец "GraphQL - новый взгляд на API."
Владимир Заец "GraphQL - новый взгляд на API."
 
Mastering Declarative Database Schema - MageConf 2019
Mastering Declarative Database Schema - MageConf 2019Mastering Declarative Database Schema - MageConf 2019
Mastering Declarative Database Schema - MageConf 2019
 
Прототипирование с БЭМ — Антон Виноградов, Альфа-Лаб
Прототипирование с БЭМ — Антон Виноградов, Альфа-ЛабПрототипирование с БЭМ — Антон Виноградов, Альфа-Лаб
Прототипирование с БЭМ — Антон Виноградов, Альфа-Лаб
 

Más de Dmitry Andreev

Как оценивать состояние проекта по разработке с помощью формальных метрик и о...
Как оценивать состояние проекта по разработке с помощью формальных метрик и о...Как оценивать состояние проекта по разработке с помощью формальных метрик и о...
Как оценивать состояние проекта по разработке с помощью формальных метрик и о...
Dmitry Andreev
 
Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?
Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?
Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?
Dmitry Andreev
 
Оптимизация производительности и нагрузочное тестирование в среде Visual Stud...
Оптимизация производительности и нагрузочное тестирование в среде Visual Stud...Оптимизация производительности и нагрузочное тестирование в среде Visual Stud...
Оптимизация производительности и нагрузочное тестирование в среде Visual Stud...
Dmitry Andreev
 

Más de Dmitry Andreev (6)

directx
directxdirectx
directx
 
cv
cvcv
cv
 
Проактивное управление проектами в среде Microsoft Visual Studio 2010
Проактивное управление проектами в среде Microsoft Visual Studio 2010Проактивное управление проектами в среде Microsoft Visual Studio 2010
Проактивное управление проектами в среде Microsoft Visual Studio 2010
 
Как оценивать состояние проекта по разработке с помощью формальных метрик и о...
Как оценивать состояние проекта по разработке с помощью формальных метрик и о...Как оценивать состояние проекта по разработке с помощью формальных метрик и о...
Как оценивать состояние проекта по разработке с помощью формальных метрик и о...
 
Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?
Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?
Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?
 
Оптимизация производительности и нагрузочное тестирование в среде Visual Stud...
Оптимизация производительности и нагрузочное тестирование в среде Visual Stud...Оптимизация производительности и нагрузочное тестирование в среде Visual Stud...
Оптимизация производительности и нагрузочное тестирование в среде Visual Stud...
 

Разработка, тестирование и развертывание баз данных в Visual Studio Team System 2010

  • 1. Разработка, тестирование и развертывание баз данных в VisualStudio Team System 2010 Дмитрий Андреев dmitryan@microsoft.com
  • 2. Содержание Введение Проект БД и жизненный цикл БД Генерация тестовых данных Юнит-тестирование Управление изменениями Развертывание Заключение
  • 3. Очень важные вопросы Где находится «истинная» схема? Эксплуатационная база? Что насчет исправлений? Что будем делать с следующей версией? Как вести версии базы данных? Что делать с тестовыми данными? Как проверить логику базы данных? Какие средства использовать для сравнения схем? Как развертывать БД и как делать апгрейд?
  • 4. Visual Studio 2010 Проблема Где «истинная» схема? Как вести версии? Как проводить тестирование? Как управлять изменениями? Решение Где угодно. Схема это исходный проект. Так же как и в привычных программных проектах. Генерация тестовых данных. Юнит тестирование баз данных. Рефакторинг, сравнение схем.
  • 5. Правда о «истинной схеме» Эксплуатационная база – единственная верная схема соответствующая версии вашей эксплуатационной системы Возможны исправления для этой базы. Разработка будущей версии ведется безотносительно к эксплуатационной версии Патч для эксплуатационной версии это возникновение: Новой эксплуатационной версии базы Новой версии эксплуатационной системы Патч+«Старая версия БД»=релиз билд
  • 6. Содержание Введение Проект БД и жизненный цикл БД Генерация тестовых данных Юнит-тестирование Управление изменениями Развертывание Заключение
  • 7. Проектная модель Проект базы данных (Visual Studio Project) отражает эволюционирующую схему Проект содержит DDL скрипты (*.SQL файлы) Контроль версий ведется на уровне исходных текстов этих скриптов Ключ к успеху: Автоматическая генерация тестовых данных Юнит тестирование
  • 8. Жизненный цикл SQL Server Database Импорт схемы Database Project Database Project Template Создание нового проекта Реверс существующего скрипта SQL Script
  • 9. Жизненный цикл: классика ALM Edit Refactor Compare Deploy Build Database Project Data Gen Test Compare
  • 10. Проблема с контролем версий Database class AuctionApplication ( int id; void MethodA(); ) class AuctionApplication ( int id; void MethodA(); void MethodB(); ) class AuctionApplication ( int id; string cacheTitle; void MethodA(); void MethodB(); ) V 2 V 3 Revision History V 1 CREATE TABLE dbo.Auction ( id INT NOT NULL, name VARCHAR(25) NOT NULL, start DATETIME NULL, len INT NULL ) ALTER TABLE dbo.Auction WITH CHECK ADD CONSTRAINT Au_PK PRIMARY KEY (id) ALTER TABLE dbo.Auction WITH CHECK ADD CONSTRAINT Au_SK UNIQUE (name) App
  • 11. Ручное ведение версий -- version 1 Add table dbo.Auction IF OBJECT_ID (N'dbo.Auction', N'U') IS NULL BEGIN CREATE TABLE dbo.Auction ( id INT NOT NULL, name VARCHAR(25) NOT NULL, start DATETIME NULL, len INT NULL ) END -- version 2 Add PK Au_PK IF NOT EXISTS (SELECT * FROM sys.key_constraints WHERE name = 'Au_PK' AND type = 'PK') BEGIN ALTER TABLE Auction WITH CHECK ADD CONSTRAINT Au_PK PRIMARY KEY (id) END -- version 3 Add UC Au_SK IF NOT EXISTS (SELECT * FROM sys.key_constraints WHERE name = 'Au_SK' AND type = ‘UQ') BEGIN ALTER TABLE Auction WITH CHECK ADD CONSTRAINT Au_SK UNIQUE (name) END
  • 12. Верный подход к ведению версий class AuctionApplication ( int id; void MethodA(); ) class AuctionApplication ( int id; void MethodA(); void MethodB(); ) class AuctionApplication ( int id; string cacheTitle; void MethodA(); void MethodB(); ) LogicalDatabase V 2 V 3 Revision History V 1 CREATE TABLE dbo.Auction ( id INT NOT NULL, name VARCHAR(25) NOT NULL, start DATETIME NULL, len INT NULL ) CREATE TABLE dbo.Auction ( id INT NOT NULL PRIMARY KEY, name VARCHAR(25) NOT NULL, start DATETIME NULL, len INT NULL ) CREATE TABLE dbo.Auction ( id INT NOT NULL PRIMARY KEY, name VARCHAR(25) NOT NULL UNIQUE, start DATETIME NULL, len INT NULL ) App
  • 13. Инкрементальное Развертывание Эксплуатируемая система Новая система CREATE TABLE dbo.Auction ( id INT NOT NULL, name VARCHAR(25) NOT NULL, start DATETIME NULL, len INT NULL ) CREATE TABLE dbo.Auction ( id INT NOT NULL PRIMARY KEY, name VARCHAR(25) NOT NULL, start DATETIME NULL, len INT NULL ) CREATE TABLE dbo.Auction ( id INT NOT NULL PRIMARY KEY, name VARCHAR(25) NOT NULL UNIQUE, start DATETIME NULL, len INT NULL ) Логическая база V 2 V 3 Revision History V 1 CREATE TABLE dbo.Auction ( id INT NOT NULL PRIMARY KEY, name VARCHAR(25) NOT NULL UNIQUE, start DATETIME NULL, len INT NULL ) ALTER TABLE dbo.Auction WITH CHECK ADD CONSTRAINT Au_SK UNIQUE (name)
  • 14.
  • 15. Содержание Введение Проект БД и жизненный цикл БД Генерация тестовых данных Юнит-тестирование Управление изменениями Развертывание Заключение
  • 16. Тестовые данные и Q&A Почему бы не использовать эксплуатационные данные? Они могут быть не верны! Не позволят протестировать «острые углы». Не позволят проверить изменения в схемах данных! Какие тестовые данные необходимы? Случайные! Детерминируемые. Распределенные соответствующим образом Количественно (сто первичных ключей -> десять тысяч дочерних записей) Качественно (длина строк, границы числовых значений и дат,…)
  • 17. Тестовые данные и Q&A Какие отличия необходимы для тестовых данных Функциональные Нагрузочные Версионирование Необходимы разные тестовые данные и тесты для разных схем Необходимы даже разные тестовые планы для одной и той же схемы
  • 18. Генерация тестовых данных Основные инструменты Генерация данных для таблиц Количество записей Генераторы для различных типов полей String, RegEx, data bound Можно написать свой собственный генератор Тонкие настройки генераторов
  • 19.
  • 20. Содержание Введение Проект БД и жизненный цикл БД Генерация тестовых данных Юнит-тестирование Управление изменениями Развертывание Заключение
  • 21. Юнит тестирование Автоматическая генерация юнит-тестов для Хранимых процедур, Функций, Триггеров Валидация результатов тестов (asserts) T-SQL Server based RAISEERROR Ожидаемые значения Не пустые результаты Количество записей Время выполнения Предварительные и пост скрипты
  • 22. Юнит тестирование Автоматизированное развертывание Перед запуском тестов будет сформирована БД По соответствующему плану генерации тестовых данных будет создана основа для проверки
  • 23.
  • 24. Содержание Введение Проект БД и жизненный цикл БД Генерация тестовых данных Юнит-тестирование Управление изменениями Развертывание Заключение
  • 25. Управление изменениями Рефакторинг Сравнение схем Сравнение данных
  • 26.
  • 27. Содержание Введение Проект БД и жизненный цикл БД Генерация тестовых данных Юнит-тестирование Управление изменениями Развертывание Заключение
  • 28. Развертывание Стандартный подход Генерация скриптов изменений Через сравнение схемы Взаимодействие с администратором БД Новый подход Представляем: Data Tier Application Project System
  • 29. Database Project vs. Data Tier Project Data-tier Application Project V1 Стандартный проект БД Visual Studio Visual Studio Build Build .sql Генерация скриптов .dacpac .dbschema SQL Server 2008 R2 SQL Server 2005, 2008, 2008 R2 Deploy Deploy
  • 30. Database Project vs. Data Tier Project
  • 31. Разработка Развертывание MANAGE SQL Server Management Studio FinApp Dev DB 1 Deploy / Upgrade DAC Reverse Engineer DAC 2 SQL Server Management Studio 9 4 8 Visual Studio 2010 Manage, Register, Uninstall, Extract, Upgrade DAC Control Point Create policies DBA DBA 7 3 Deploy / Upgrade DAC HR .dacpac Hand-off to DBA Compile + Build FinApp Prod DB 6 Разработчик SALES 5 Managed Instances
  • 32.
  • 33. Содержание Введение Проект БД и жизненный цикл БД Генерация тестовых данных Юнит-тестирование Управление изменениями Развертывание Заключение
  • 34. Заключение Разработка БД может быть полностью интегрирована в стандартный процесс ALM Инструментальные средства позволяют легко создавать объекты БД благодаря IntelliSense, встроенному отладчику Гибкие варианты развертывания могут снизить затраты на управление эксплуатационными БД