Top Banner
(code name: Data Dude) Josh Robinson joshr@aculix .com
21

(code name: Data Dude) Josh Robinson [email protected] Aculix.

Dec 23, 2015

Download

Documents

Randolph Holmes
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: (code name: Data Dude) Josh Robinson joshr@aculix.com Aculix.

(code name: Data Dude)

Josh [email protected]

Page 2: (code name: Data Dude) Josh Robinson joshr@aculix.com Aculix.

Need was identified to find missing member of Visual Studio family

Eric Rudder decided missing persona should be called “Data Dude”

Project focus: Replace“PROD” database with system to hold “one version of the truth”

Development began Sept 1, 2005 4 Developers at start

Page 3: (code name: Data Dude) Josh Robinson joshr@aculix.com Aculix.

Manage DB change through schema management “One version of the truth” Offline sandbox for multiple developers

Source control for DBs Ability to store different versions as changesets

Schema and data compare Generate scripts/apply updates

Data generation Generate meaningful test data automatically

DB Unit tests Same test infrastructure as rest of Team System (uses

SQL)

Page 4: (code name: Data Dude) Josh Robinson joshr@aculix.com Aculix.

Visual Studio Team SuiteVisual Studio Team Suite

MS

F P

rocess a

nd

Gu

idan

ce

MS

F P

rocess a

nd

Gu

idan

ce

Visual Studio Team Foundation ServerVisual Studio Team Foundation Server

VisualVisualStudioStudioIndustryIndustryPartnersPartners

SoftwareSoftwareArchitectsArchitects

SoftwareSoftwareDevelopersDevelopers

SoftwareSoftwareTestersTesters

DatabaseDatabaseProfessionalsProfessionalsVisualVisual

StudioStudioTeamTeamExplorerExplorer

Application Application ModelingModeling

Infrastructure Infrastructure and Deployment and Deployment ModelingModeling

Code AnalysisCode Analysis

Performance Performance TuningTuning

Security AnalysisSecurity AnalysisDatabase Database Build &Build & Deployment Deployment

Database Database Change Change ManagementManagement

Database Database TestingTesting

Performance Performance TestingTesting

Manual TestingManual Testing

Test Case Test Case ManagementManagement

Visual Studio Professional Visual Studio Professional EditionEdition

Change ManagementChange Management

Work Item TrackingWork Item Tracking

ReportingReporting

Project SiteProject Site

Integration ServicesIntegration Services

Project ManagementProject Management

Load Test AgentLoad Test Agent

Visio and UML Visio and UML ModelingModeling

Class Class ModelingModeling

Unit TestingUnit Testing

Code Code CoverageCoverage

New!New!

Page 5: (code name: Data Dude) Josh Robinson joshr@aculix.com Aculix.

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 databasedatabase

Changes to schema traditionally Changes to schema traditionally have immediate affecthave immediate affect

With off-line project nothing With off-line project nothing changes until you deploy the changes until you deploy the changechange

Page 6: (code name: Data Dude) Josh Robinson joshr@aculix.com Aculix.

Writes Tests

Writes DB Code

Refactors

Runs Tests

Checks In

Reviews Changes

Compares Updates to Production

Builds Deploy Package

Deploys to Production

Creates New DB Project

Reverse Engineers DB to Project

Creates Data Generation Plan

DBA DB DEVELOPER DBA

ManageManage DevelopDevelop DeployDeploy

Page 7: (code name: Data Dude) Josh Robinson joshr@aculix.com Aculix.

Core concept: off-line database Core concept: off-line database developmentdevelopment““Schema” projectsSchema” projects

Microsoft SQL Server 2000Microsoft SQL Server 2000Microsoft SQL Server 2005Microsoft SQL Server 2005

Simply a series of files collected together Simply a series of files collected together into a single logical collectioninto a single logical collection

Objects are stored as .SQL files at the most Objects are stored as .SQL files at the most atomic levelatomic level

Schema view versus file viewSchema view versus file view

Page 8: (code name: Data Dude) Josh Robinson joshr@aculix.com Aculix.

Included All SQL Server objects within a user database

Must be user-created objects Schema folders reflect the SQL version

i.e. “Service Broker” objects only appear in SQL 2005 projects

Not Included System objects like logins, custom error

messages Team DB “knows” about them, included in scripts

Page 9: (code name: Data Dude) Josh Robinson joshr@aculix.com Aculix.
Page 10: (code name: Data Dude) Josh Robinson joshr@aculix.com Aculix.

Standard MSBuild taskStandard MSBuild taskConfigurationsConfigurations

New versus existing buildsNew versus existing buildsProject properties for buildProject properties for buildSchema compare used for buildSchema compare used for build

Pre/Post Deployment scriptsPre/Post Deployment scriptsBuild results in SQL script fileBuild results in SQL script fileDeploy Deploy

SQL query tool; Deploy via MSBuild taskSQL query tool; Deploy via MSBuild taskSQLCMD command supportSQLCMD command support

Page 11: (code name: Data Dude) Josh Robinson joshr@aculix.com Aculix.
Page 12: (code name: Data Dude) Josh Robinson joshr@aculix.com Aculix.

Data generation is used to create a solid Data generation is used to create a solid foundation for testingfoundation for testingDeterministic – always generate the Deterministic – always generate the same layoutsame layoutMatched to your schema and very Matched to your schema and very customizablecustomizableExtensible mechanism, build your own Extensible mechanism, build your own data generatorsdata generatorsWill support histograms and distributions Will support histograms and distributions in final releasein final release

Page 13: (code name: Data Dude) Josh Robinson joshr@aculix.com Aculix.
Page 14: (code name: Data Dude) Josh Robinson joshr@aculix.com Aculix.

Stored ProceduresStored Procedures FunctionsFunctions TriggersTriggers Arbitrary SQLArbitrary SQL Support at RTM to automatically deploy Support at RTM to automatically deploy

changes to test system and generate datachanges to test system and generate data Deterministic data generation ensures Deterministic data generation ensures

stable test statestable test state Can test with your application tier Can test with your application tier

because of common frameworkbecause of common framework

Page 15: (code name: Data Dude) Josh Robinson joshr@aculix.com Aculix.
Page 16: (code name: Data Dude) Josh Robinson joshr@aculix.com Aculix.

Bring power of refactoring to SQLBring power of refactoring to SQL Cascading ChangeCascading Change

Update all dependent objects in database Update all dependent objects in database project project Schema objects, Data generation, Unit Tests, SQL Schema objects, Data generation, Unit Tests, SQL

ScriptsScripts Make an atomic change, see preview Make an atomic change, see preview RenameRename

Meet corporate standardsMeet corporate standards Better express semantic intent – clarityBetter express semantic intent – clarity

Supports global undo to back out any changeSupports global undo to back out any change

Page 17: (code name: Data Dude) Josh Robinson joshr@aculix.com Aculix.
Page 18: (code name: Data Dude) Josh Robinson joshr@aculix.com Aculix.

Allows comparisons of: Project -> database; database -> database

Full SQL Server 2000 and 2005 support Object level script difference between DBs Notifies when data loss may occur Generate script or apply changes directly It’s smart!

understands constraints, creates temp tables to hold data, more

Compare security settings Users, roles and permissions

Page 19: (code name: Data Dude) Josh Robinson joshr@aculix.com Aculix.
Page 20: (code name: Data Dude) Josh Robinson joshr@aculix.com Aculix.

Included in Team Suite at No Extra CostIncluded in Team Suite at No Extra Cost Purchase as an individual EditionPurchase as an individual Edition

Same pricing as other Team System EditionsSame pricing as other Team System Editions Retail Price - $5469Retail Price - $5469 Many Discounts available Many Discounts available http://msdn.microsoft.com/vstudio/howtobuy/default

.aspx AvailabilityAvailability

CTP 5 Available Today (CTP 6 out soon)CTP 5 Available Today (CTP 6 out soon) http://msdn.microsoft.com/vstudio/teamsystem/pro

ducts/dbpro/ RTM By the end of 2006RTM By the end of 2006

Page 21: (code name: Data Dude) Josh Robinson joshr@aculix.com Aculix.