Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software...

64
Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich GmbH. [email protected] http://blogs.msdn.com/mszCool

Transcript of Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software...

Page 1: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

Visual Studio Team Editionfor Database Professionals

Visual Studio Team Editionfor Database Professionals

Microsoft Confidential

Mario SzpusztaSoftware ArchitectDeveloper & Platform GroupMicrosoft Österreich GmbH.

[email protected]://blogs.msdn.com/mszCool

Page 2: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

MSDN Briefings – OrganisationMSDN Briefings – Organisation

Monthly technical briefingsCurrently released technologyYour current needs

Invitation / Registration / Feedbackhttp://blogs.msdn.com/msdnat http://blogs.msdn.com/talk

Well, what I am doing here?

Page 3: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

AgendaAgenda

Team System ReviewVSTS for Database Professionals

Project SystemChange ManagementDatabase Unit TestingDatabase Refactoring

Advanced Topics, ExtensibilitySummary

Page 4: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.
Page 5: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.
Page 6: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.
Page 7: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

Static Code AnalysisStatic Code AnalysisStatic Code AnalysisStatic Code Analysis

Page 8: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

Unit TestingUnit TestingUnit TestingUnit Testing

Page 9: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

Test Arch

PM

The Development Engine

IT Solution LifecycleIT Solution LifecycleIT Solution LifecycleIT Solution Lifecycle

Dev

ITGovernance

• Business process re-engineering• Demand generation• Business Value Capture• Outsourcing• Resource planning

OperationalExcellence

• Deployment• Impact analysis• Updates and Maintenance• App Health Monitoring• Security• Automated failover and recovery plans• Workflow customization

Value through “Better Together” integration across the Solution Lifecycle

Page 10: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

Visual Studio Team SystemVisual Studio Team SystemVisual Studio Team SystemVisual Studio Team System

Change Management

Work Item Tracking

Reporting

Project Site

Visual Studio

Team Foundation Integration Services

Project Management

Pro

cess

an

d A

rch

itect

ure

Pro

cess

an

d A

rch

itect

ure

G

uid

an

ceG

uid

an

ce

Dynamic Code Analyzer

Visual Studio

Team Architect

Static Code Analyzer

Code Profiler

Unit Testing

Code Coverage

Visio and UML Modeling

Team Foundation Client

VS Pro

Class Modeling

Load Testing

Manual Testing

Test Case Management

Application Modeling

Logical Infra. Modeling

Deployment Modeling

Visual Studio

Team DeveloperVisual Studio

Team Test

Vis

ual S

tud

io In

du

stry

V

isu

al S

tud

io In

du

stry

Part

ners

Part

ners

Build Server

Page 11: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.
Page 12: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

AgendaAgenda

Team System ReviewVSTS for Database Professionals

Project SystemChange ManagementDatabase Unit TestingDatabase Refactoring

Advanced Topics, ExtensibilitySummary

Page 13: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

Product Overview (1)Product Overview (1)Product Overview (1)Product Overview (1)

Database Project SystemDatabase Project SystemSchema and Script VersioningSchema and Script Versioning

SCC IntegrationSCC Integration

T-SQL Editor with Query ExecutionT-SQL Editor with Query Execution

Database Schema ManagementDatabase Schema ManagementBuild & DeployBuild & Deploy

Schema CompareSchema Compare

Data CompareData Compare

Page 14: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

Product Overview (2)Product Overview (2)Product Overview (2)Product Overview (2)

Database Unit TestingDatabase Unit Testing(Test) Data Generator(Test) Data Generator

Stored Procedure Unit TestingStored Procedure Unit Testing

Schema RefactoringSchema RefactoringVersion 1: Change names, onlyVersion 1: Change names, only

Future versions: indexes, constraints, relationsFuture versions: indexes, constraints, relations

Team Foundation Server IntegrationTeam Foundation Server IntegrationWork Item TrackingWork Item Tracking

Process IntegrationProcess Integration

Page 15: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

Database Development Life CycleDatabase Development Life CycleThe cycle of life for database developersThe cycle of life for database developersDatabase Development Life CycleDatabase Development Life CycleThe cycle of life for database developersThe cycle of life for database developers

CompareCompare

TestTest

Data Data GenerationGeneration

DeployDeploy

Page 16: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

Conceptual OverviewConceptual OverviewConceptual OverviewConceptual Overview

Difficult to Manage Difficult to Manage Change to the schemaChange to the schema

Production Database is Production Database is one version of the truth one version of the truth for Data and Schemafor Data and Schema

DBA doesn’t have DBA doesn’t have access to changes until access to changes until he/she has deploy or he/she has deploy or reject choicereject choice

Changes often made to Changes often made to production database production database and not rolled back into and not rolled back into testtest

Production DatabaseProduction Database

Management Studio

TuningMonitoring

“One Version of the Truth” for Data and Schema

SchemaSchemaSchema Changes

Page 17: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

Conceptual OverviewConceptual OverviewConceptual OverviewConceptual OverviewSchema Change now managed in Schema Change now managed in VSTS and TFSVSTS and TFS

Production Database is now “One Production Database is now “One version of the truth” only for Dataversion of the truth” only for Data

DBA doesn’t have access to DBA doesn’t have access to changes until he/she has deploy changes until he/she has deploy or reject choiceor reject choice

““One Version of the truth for One Version of the truth for Schema” is Under Source ControlSchema” is Under Source Control

Production Production DatabaseDatabaseProduction Production DatabaseDatabase

Management Management StudioStudio

TuningTuningMonitoringMonitoring

““One Version of the One Version of the Truth”Truth” for for DataData

““One Version of the Truth”One Version of the Truth” for for Schema Schema

• Offline Offline • Under Source ControlUnder Source Control

SchemaSchema

Schema ChangesSchema Changes

Changes can be rolled out in Changes can be rolled out in a scheduled, managed waya scheduled, managed way

Scripts allow administrators Scripts allow administrators to mange change updatesto mange change updates

Page 18: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

AgendaAgenda

Team System ReviewVSTS for Database Professionals

Project SystemChange ManagementDatabase Unit TestingDatabase Refactoring

Advanced Topics, ExtensibilitySummary

Page 19: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

Import database schemaImport database schema

Reverse engineer existing .SQL script files (*)Reverse engineer existing .SQL script files (*)

Create New ProjectCreate New Project

SQLSQLScriptScript

DatabaseDatabaseProjectProjectTemplateTemplate

SQLSQLServerServerDatabaseDatabase

Collection Collection of .SQL file of .SQL file containing T-containing T-SQL DDL SQL DDL fragmentsfragments

Project ModelProject ModelThe center of gravityThe center of gravityProject ModelProject ModelThe center of gravityThe center of gravity

Page 20: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

Offline ModelOffline ModelOffline ModelOffline Model

Project modelProject modelSchema Objects representationSchema Objects representation

Collection of T-SQL DDL fragmentsCollection of T-SQL DDL fragments

Objects are Parsed and Interpreted Objects are Parsed and Interpreted at:at:

Project Load TimeProject Load Time

Object Change (save)Object Change (save)

Source Control Sync (external change)Source Control Sync (external change)

Page 21: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

Test Test DatabaseDatabaseTest Test DatabaseDatabase

Production Production DatabaseDatabaseProduction Production DatabaseDatabase

Create table AUCTION( id int not null,title varchar(25) not null,startDate DateTime not null,length in not null)

Import database schema to Import database schema to populate project from existing populate project from existing databasedatabaseChanges to schema traditionally Changes to schema traditionally have immediate affecthave immediate affectWith off-line project nothing With off-line project nothing changes until you deploy the changes until you deploy the changechange

Offline ModelOffline ModelOffline ModelOffline Model

Page 22: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

Reverse Engineering a SchemaReverse Engineering a Schema

DEMO

Page 23: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

Loading, importing or reverse engineeringLoading, importing or reverse engineeringShreds the schema definition Shreds the schema definition Smallest possible DDL fragmentsSmallest possible DDL fragments

Example:Example:TableTable

CREATE TABLE [dbo].[Territories]CREATE TABLE [dbo].[Territories]((

[TerritoryID] [nvarchar] (20) NOT NULL,[TerritoryID] [nvarchar] (20) NOT NULL,[TerritoryDescription] [nchar] (50) NOT NULL,[TerritoryDescription] [nchar] (50) NOT NULL,[RegionID] [int] NOT NULL[RegionID] [int] NOT NULL

) ON [PRIMARY]) ON [PRIMARY]Primary KeyPrimary Key

ALTER TABLE [dbo].[Territories] ADD CONSTRAINT ALTER TABLE [dbo].[Territories] ADD CONSTRAINT [PK_Territories] PRIMARY KEY NONCLUSTERED ([TerritoryID]) [PK_Territories] PRIMARY KEY NONCLUSTERED ([TerritoryID]) ON [PRIMARY]ON [PRIMARY]

FKFKALTER TABLE [dbo].[Territories] ADDALTER TABLE [dbo].[Territories] ADDCONSTRAINT [FK_Territories_Region] FOREIGN KEY CONSTRAINT [FK_Territories_Region] FOREIGN KEY ([RegionID]) REFERENCES [dbo].[Region] ([RegionID])([RegionID]) REFERENCES [dbo].[Region] ([RegionID])

Shredding in to SQL FragmentsShredding in to SQL FragmentsShredding in to SQL FragmentsShredding in to SQL Fragments

Page 24: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

AgendaAgenda

Team System ReviewVSTS for Database Professionals

Project SystemChange ManagementDatabase Unit TestingDatabase Refactoring

Advanced Topics, ExtensibilitySummary

Page 25: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

Managed ChangeManaged ChangeManaged ChangeManaged Change

Changes are localChanges are local

Comparison between databasesComparison between databasesTest databaseTest database

Production databaseProduction database

Elements under source controlElements under source controlAny SCCI compliant version systemAny SCCI compliant version system

Template driven Template driven Version specific SQL 2000 or SQL 2005Version specific SQL 2000 or SQL 2005

Page 26: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

Working With the ProjectWorking With the ProjectWorking With the ProjectWorking With the Project

Make changesMake changesAdd new elements Add new elements

Modify existing elementsModify existing elements

Delete ItemsDelete Items

Compare databasesCompare databasesBuild update scriptBuild update script

Deploy new or incremental updateDeploy new or incremental updateVisual StudioVisual Studio

MSBuild actionMSBuild action

Page 27: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

Build/DeployBuild/DeployBuild/DeployBuild/Deploy

Standard VS build taskStandard VS build task

ConfigurationsConfigurationsNew vs. Update buildsNew vs. Update builds

Project properties for buildProject properties for build

Schema compare used for buildSchema compare used for build

Pre/Post Deployment scriptsPre/Post Deployment scripts

Build results in SQL script fileBuild results in SQL script file

Deploy Deploy Deploy via SQL query toolDeploy via SQL query tool

Deploy via MSBuild taskDeploy via MSBuild task

RTM: SQLCMD command supportRTM: SQLCMD command support

Page 28: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

Changing the databaseChanging the database

DEMO

Page 29: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

AgendaAgenda

Team System ReviewVSTS for Database Professionals

Project SystemChange ManagementDatabase Unit TestingDatabase Refactoring

Advanced Topics, ExtensibilitySummary

Page 30: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

What you need for Testing?What you need for Testing?

Updated schema

Test drivers (unit tests)

Tons of data (realistic)

Page 31: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

Data GenerationData GenerationDesign TimeDesign TimeData GenerationData GenerationDesign TimeDesign Time

Data generator componentData generator componentStrategy for generationStrategy for generation

Distribution for generatorDistribution for generatorRange of valuesRange of values

Relation between valuesRelation between values

Settings for generator & distributionSettings for generator & distributionNumber of rowsNumber of rows

Row-count ratios between tablesRow-count ratios between tables

Page 32: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

Data GenerationData GenerationDesign Time – Default BehaviorDesign Time – Default BehaviorData GenerationData GenerationDesign Time – Default BehaviorDesign Time – Default Behavior

Per column generatorPer column generatorMatching data typeMatching data type

Aware of CHECK constraintsAware of CHECK constraints

Special attributesSpecial attributesForeign Keys Foreign Keys Foreign Key generator Foreign Key generator

Uniqueness Uniqueness PK, UC, indexes PK, UC, indexes

Default distributionDefault distributionUniform distribution when not uniqueUniform distribution when not unique

Page 33: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

Data Generation – Value Data Generation – Value GeneratorsGeneratorsData Generation – Value Data Generation – Value GeneratorsGenerators

Simple generators for each data typeSimple generators for each data typeStrings (char, varchar, nvarchar…)Strings (char, varchar, nvarchar…)Numbers (smallint, int, bigint, float…)Numbers (smallint, int, bigint, float…)Binary (varbinary, image…)Binary (varbinary, image…)Date and TimeDate and TimeUUID and BitUUID and Bit

Complex generatorsComplex generatorsForeign KeyForeign KeyRegular ExpressionRegular ExpressionData BoundData Bound

Page 34: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

36

Data GenerationData GenerationDistributions @ WorkDistributions @ WorkData GenerationData GenerationDistributions @ WorkDistributions @ Work

Data Generation Distributions

0

2000

4000

6000

8000

10000

12000

1 501 1001 1501 2001 2501 3001 3501 4001 4501

# of Rows

Ge

ne

rate

Va

lue

(0

-10

00

0)

Uniform

Normal

InverseNormal

Exponential

InverseExponential

Page 35: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

37

Data GenerationData GenerationDesign TimeDesign TimeData GenerationData GenerationDesign TimeDesign Time

Understand domain constraintsUnderstand domain constraintsCheck constraints (min/max)Check constraints (min/max)

Table cardinalityTable cardinalityEnforce table ratiosEnforce table ratios

Column value distributionColumn value distribution

Page 36: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

Generate Test-DataGenerate Test-Data

DEMO

Page 37: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

39

Database Unit TestingDatabase Unit TestingDesign TimeDesign TimeDatabase Unit TestingDatabase Unit TestingDesign TimeDesign Time

Automatically generate unit tests:Automatically generate unit tests:Stored Procedures, Functions, TriggersStored Procedures, Functions, Triggers

Test Validation (assertions)Test Validation (assertions)T-SQL T-SQL RAISERROR RAISERROR

Client AssertionsClient Assertions

None Empty ResultSetNone Empty ResultSet

Row Count Row Count

Execution Time, …Execution Time, …

Pre & Post Test ScriptsPre & Post Test Scripts

Page 38: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

40

Database Unit Testing Database Unit Testing Test ExecutionTest ExecutionDatabase Unit Testing Database Unit Testing Test ExecutionTest Execution

Automatic Deployment IntegrationAutomatic Deployment IntegrationAutomatically deploy database project Automatically deploy database project prior to running testsprior to running tests

Data Generation IntegrationData Generation IntegrationAutomatically generate data based on Automatically generate data based on generation plan prior to running testsgeneration plan prior to running tests

Execution & Validation connectionsExecution & Validation connectionsValidation connection can be higher Validation connection can be higher privileged accountprivileged account

Page 39: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

Create a Unit TestCreate a Unit Test

DEMO

Page 40: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

AgendaAgenda

Team System ReviewVSTS for Database Professionals

Project SystemChange ManagementDatabase Unit TestingDatabase Refactoring

Advanced Topics, ExtensibilitySummary

Page 41: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

43

Database Schema RefactoringDatabase Schema RefactoringWhat is refactoring?What is refactoring?Database Schema RefactoringDatabase Schema RefactoringWhat is refactoring?What is refactoring?

““A database refactoring A database refactoring is a small change to is a small change to your database schema your database schema which improves its which improves its design without changing design without changing its semantics.”its semantics.”

Agile Database Agile Database Development, Scott Development, Scott AmblerAmbler

Page 42: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

44

Database Schema Refactoring Database Schema Refactoring Rename Refactoring…Rename Refactoring…Database Schema Refactoring Database Schema Refactoring Rename Refactoring…Rename Refactoring…

Rename any SQL 2000/2005 schema Rename any SQL 2000/2005 schema objectobject

Updates all references in…Updates all references in…Schema ObjectsSchema Objects

Data Generation Plans Data Generation Plans

ScriptsScripts

Database Unit TestsDatabase Unit Tests

Preview changes prior to commitPreview changes prior to commit

Global undo to reverse all changesGlobal undo to reverse all changes

Page 43: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

45

Database Schema Refactoring Database Schema Refactoring Refactoring Safety NetRefactoring Safety NetDatabase Schema Refactoring Database Schema Refactoring Refactoring Safety NetRefactoring Safety Net

Unit TestingUnit TestingGenerate tests after refactoringGenerate tests after refactoring

Version ControlVersion ControlStore all previous versions before Store all previous versions before refactoringrefactoring

Schema CompareSchema CompareAnalyze the exact differences between Analyze the exact differences between the project and live database to the project and live database to understand the impact of the updateunderstand the impact of the update

Page 44: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

Refactoring an ObjectRefactoring an Object

DEMO

Page 45: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

AgendaAgenda

Team System ReviewVSTS for Database Professionals

Project SystemChange ManagementDatabase Unit TestingDatabase Refactoring

Advanced Topics, ExtensibilitySummary

Page 46: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

Command Line BuildingCommand Line BuildingCommand Line BuildingCommand Line Building

Using devenv.exeUsing devenv.exeVisual Studio shell in command line Visual Studio shell in command line modemode

Using MSBuild.exeUsing MSBuild.exeImportant note:Important note:

In CTP3 the project needs to be In CTP3 the project needs to be opened inside Visual Studio!opened inside Visual Studio!

Page 47: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

Project PropertiesProject PropertiesProject PropertiesProject Properties

SET optionsSET optionsOnly override when differentOnly override when different

CollationsCollationsOnly override when differentOnly override when different

Difference between New and UpdateDifference between New and Update

Page 48: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

Build – New database scriptBuild – New database scriptmsbuild NorthwindOnline.dbproj /t:buildmsbuild NorthwindOnline.dbproj /t:build

msbuild NorthwindOnline.dbproj /t:build msbuild NorthwindOnline.dbproj /t:build /p:Configuration="New Deployment"/p:Configuration="New Deployment"

Build – Update for defined target serverBuild – Update for defined target servermsbuild NorthwindOnline.dbproj /t:build msbuild NorthwindOnline.dbproj /t:build /p:Configuration="Update Deployment" /p:Configuration="Update Deployment" /p:TargetConnectionString="Data Source=(local)\/p:TargetConnectionString="Data Source=(local)\sql80;Integrated Security=True;Pooling=False;" sql80;Integrated Security=True;Pooling=False;" /p:TargetDatabase="NorthwindOnlineTestRun"/p:TargetDatabase="NorthwindOnlineTestRun"

Building Using MSBuildBuilding Using MSBuildBuilding Using MSBuildBuilding Using MSBuild

Page 49: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

Deploying Using MSBuildDeploying Using MSBuildDeploying Using MSBuildDeploying Using MSBuild

Deploy – New databaseDeploy – New databasemsbuild NorthwindOnline.dbproj /t:deploy msbuild NorthwindOnline.dbproj /t:deploy /p:Configuration="New Deployment"/p:Configuration="New Deployment"

Deploy – Update DatabaseDeploy – Update Databasemsbuild NorthwindOnline.dbproj /t:deploy msbuild NorthwindOnline.dbproj /t:deploy /p:Configuration="Update Deployment" /p:Configuration="Update Deployment" /p:TargetConnectionString="Data Source=(local)\/p:TargetConnectionString="Data Source=(local)\sql80;Integrated Security=True;Pooling=False;"sql80;Integrated Security=True;Pooling=False;"

Page 50: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

Misc. Actions Using MSBuildMisc. Actions Using MSBuildMisc. Actions Using MSBuildMisc. Actions Using MSBuild

All (Build + Deploy)All (Build + Deploy)msbuild NorthwindOnline.dbproj /t:allmsbuild NorthwindOnline.dbproj /t:all

CleanCleanmsbuild NorthwindOnline.dbproj /t:cleanmsbuild NorthwindOnline.dbproj /t:clean

msbuild NorthwindOnline.dbproj /t:clean msbuild NorthwindOnline.dbproj /t:clean /p:Configuration="New Deployment"/p:Configuration="New Deployment"

msbuild NorthwindOnline.dbproj /t:clean msbuild NorthwindOnline.dbproj /t:clean /p:Configuration="Update Deployment"/p:Configuration="Update Deployment"

Page 51: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

MSBuild Task: SqlBuild/SqlDeployMSBuild Task: SqlBuild/SqlDeployMSBuild Task: SqlBuild/SqlDeployMSBuild Task: SqlBuild/SqlDeploy

BuildType { "New Deployment" | "Update Deployment“ }BuildType { "New Deployment" | "Update Deployment“ }TargetConnectionStringTargetConnectionStringTargetDatabaseTargetDatabaseBuild options:Build options:

DefaultCollation {"True" | "False“}DefaultCollation {"True" | "False“}EnableFullTextIndexing {"True" | "False“}EnableFullTextIndexing {"True" | "False“}ScriptCreateDBStatement {"True" | "False“}ScriptCreateDBStatement {"True" | "False“}GenerateDropsIfNotInProject {"True" | "False“}GenerateDropsIfNotInProject {"True" | "False“}SourceDatabase {"True" | "False“}SourceDatabase {"True" | "False“}

Set options:Set options:ARITHABORT {"True" | "False“}ARITHABORT {"True" | "False“}NUMERIC_ROUNDABORT {"True" | "False“}NUMERIC_ROUNDABORT {"True" | "False“}ANSI_NULLS {"True" | "False“}ANSI_NULLS {"True" | "False“}CONCAT_NULL_YIELDS_NULL {"True" | "False“}CONCAT_NULL_YIELDS_NULL {"True" | "False“}ANSI_PADDING {"True" | "False“}ANSI_PADDING {"True" | "False“}ANSI_WARNINGS {"True" | "False“}ANSI_WARNINGS {"True" | "False“}QUOTED_IDENTIFIER {"True" | "False“}QUOTED_IDENTIFIER {"True" | "False“}

Page 52: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

Building with MSBuildBuilding with MSBuild

DEMO

Page 53: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

Provisioning Multiple ServersProvisioning Multiple ServersProvisioning Multiple ServersProvisioning Multiple Servers

Deploy to multiple targets?Deploy to multiple targets?

Database ProjectDatabase ProjectSingle target server/database, onlySingle target server/database, only

Use MSBuild tasks to provisionUse MSBuild tasks to provisionCommand line or tool calling MSBuildCommand line or tool calling MSBuild

for each server+database combination in for each server+database combination in listlist{{

SqlBuildTask SqlBuildTask SqlDeployTask SqlDeployTask

}}

Page 54: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

56

Data GenerationData GenerationCustomization & Extensibility Customization & Extensibility Data GenerationData GenerationCustomization & Extensibility Customization & Extensibility

Customization of value generationCustomization of value generationRegEx GeneratorRegEx Generator

Data Bound GeneratorData Bound Generator

ExtensibilityExtensibilityCustom GeneratorCustom Generator

Custom DistributionCustom Distribution

Page 55: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

Data Generator ExtensibilityData Generator ExtensibilityData Generator ExtensibilityData Generator Extensibility

GeneratorsGeneratorsImplement:Implement:

IDesignerIDesigner

IGeneratorIGenerator

Base classBase classGeneratorGenerator

AttributesAttributesGeneratorAttributeGeneratorAttribute

GeneratorNameAttributeGeneratorNameAttribute

DistributionsDistributionsImplement:Implement:

IDistributionIDistribution

RegistrationRegistration

Page 56: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

Generators and Distributions have to:Generators and Distributions have to:%ProgramFiles%\Microsoft Visual Studio 8\DBPro\%ProgramFiles%\Microsoft Visual Studio 8\DBPro\ExtensionsExtensions

%ProgramFiles%\Microsoft Visual Studio 8\DBPro\%ProgramFiles%\Microsoft Visual Studio 8\DBPro\Microsoft.VisualStudio.TeamSystem.Data.Extensions.xmlMicrosoft.VisualStudio.TeamSystem.Data.Extensions.xml

Be strong key signedBe strong key signed<?xml version="1.0" encoding="us-ascii"?><?xml version="1.0" encoding="us-ascii"?><types version="1"><types version="1">

<type>Microsoft.VisualStudio.TeamSystem.Data.Generators.RegexString, <type>Microsoft.VisualStudio.TeamSystem.Data.Generators.RegexString, Microsoft.VisualStudio.TeamSystem.Data.Generators, Microsoft.VisualStudio.TeamSystem.Data.Generators,

Version=2.0.0.0, Version=2.0.0.0, Culture=neutral, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3aPublicKeyToken=b03f5f7f11d50a3a

</type></type><type>Microsoft.VisualStudio.TeamSystem.Data.Generators.Exponential,<type>Microsoft.VisualStudio.TeamSystem.Data.Generators.Exponential,

Microsoft.VisualStudio.TeamSystem.Data.Generators, Microsoft.VisualStudio.TeamSystem.Data.Generators, Version=2.0.0.0, Version=2.0.0.0, Culture=neutral, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3aPublicKeyToken=b03f5f7f11d50a3a

</type></type></types></types>

Data Generator – RegistrationData Generator – RegistrationData Generator – RegistrationData Generator – Registration

Page 57: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

Custom Data GeneratorCustom Data Generator

DEMO

Page 58: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

60

Database Unit TestingDatabase Unit TestingCustomization & ExtensibilityCustomization & ExtensibilityDatabase Unit TestingDatabase Unit TestingCustomization & ExtensibilityCustomization & Extensibility

Database Unit Test designerDatabase Unit Test designerGenerates C# or VB.NET codeGenerates C# or VB.NET code

Can customize generated code for:Can customize generated code for:Custom test validation logicCustom test validation logic

Parameterized test supportParameterized test support

Managing transactionsManaging transactions

Additional test setup and teardown of Additional test setup and teardown of teststests

Page 59: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

AgendaAgenda

Team System ReviewVSTS for Database Professionals

Project SystemChange ManagementDatabase Unit TestingDatabase Refactoring

Advanced Topics, ExtensibilitySummary

Page 60: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

SummarySummary

Team Edition for Database Professionals

Database development life-cycle

Basic functionalityReverse-Engineer database schemaSource Control for schemaRefactor database schemaGenerate test data, create unit testsCompare schemas

Extensible infrastructure

Page 61: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

Pricing, Licensing and AvailabilityPricing, Licensing and AvailabilityPricing, Licensing and AvailabilityPricing, Licensing and Availability

Included in Team Suite at No Extra CostIncluded in Team Suite at No Extra Cost

Purchase as an individual EditionPurchase as an individual EditionSame pricing as other Team System EditionsSame pricing as other Team System Editions

AvailabilityAvailabilityCTP 4 Available TodayCTP 4 Available Today

RTM By the end of 2006RTM By the end of 2006

Page 62: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

64

Resources…Resources…Resources…Resources…

CTP 5 Download SiteCTP 5 Download Sitehttp://www.microsoft.com/downloads/details.aspx?http://www.microsoft.com/downloads/details.aspx?FamilyID=4014554e-903a-4a62-b429-FamilyID=4014554e-903a-4a62-b429-2b027321c32d&DisplayLang=en 2b027321c32d&DisplayLang=en

Team WebsiteTeam Websitehttp://msdn.microsoft.com/vstudio/teamsystem/http://msdn.microsoft.com/vstudio/teamsystem/products/dbpro/default.aspx products/dbpro/default.aspx

Product ForumProduct Forumhttp://forums.microsoft.com/MSDN/ShowForum.aspx?http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=725&SiteID=1 ForumID=725&SiteID=1

PowerToys and SamplesPowerToys and Sampleshttp://gotdotnet.com/Workspaces/Workspace.aspx?http://gotdotnet.com/Workspaces/Workspace.aspx?id=378460fd-1254-427b-aa7d-e777a826a564 id=378460fd-1254-427b-aa7d-e777a826a564

Page 63: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.

AgendaAgenda

Team System ReviewVSTS for Database Professionals

Project SystemChange ManagementDatabase Unit TestingDatabase Refactoring

Advanced Topics, ExtensibilitySummary

Page 64: Visual Studio Team Edition for Database Professionals Microsoft Confidential Mario Szpuszta Software Architect Developer & Platform Group Microsoft Österreich.