(code name: Data Dude) Josh Robinson joshr@aculix .com
(code name: Data Dude)
Josh [email protected]
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
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)
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!
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
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
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
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
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
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
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
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
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
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