Upload
frieda
View
42
Download
0
Tags:
Embed Size (px)
DESCRIPTION
Making the SQL developer one of the family with Visual Studio Team System. Richard Fennell Engineering Director SQLBits IV 28 th March 2009. Agenda. Why do we need DB Pro.? What is Visual Studio Team System DB Pro. Features Project Life-cycle Testing Deployment Power Tools The Future. - PowerPoint PPT Presentation
Citation preview
blackmarble
the strategic IT asset for your organisation
MAKING THE SQL DEVELOPER ONE OF THE FAMILY WITH VISUAL STUDIO TEAM SYSTEM
Richard FennellEngineering Director
SQLBits IV 28th March 2009
blackmarble
Agenda
• Why do we need DB Pro.?• What is Visual Studio Team System• DB Pro. Features
– Project Life-cycle– Testing– Deployment– Power Tools
• The Future
blackmarble
Pain points in DB development
• What is the ‘correct DB schema’?• How do we version control it?• How do I know the impact of a change?• How do we publish a DB?• Where do we get test data from?• How do we test it anyway?
• There has been no ‘Microsoft standard’ way to manage the DB – until now
blackmarble
ExcelProject
Operations, QA and Help Desk Non-Microsoft
Developer
Team System Web Access
Visual Studio Team SystemApplication Life Cycle Management (ALM) Solution
blackmarble
Visual Studio for Database Professionals
• Incorporates the Database Professional into the software development lifecycle
• Provides a foundation for change management and process integration
• Exposes database schema as individual script files• Provides a set of essential tools
– Version Control via Visual Studio supported providers– Rename Refactoring– Schema Comparison Tools– Data Comparison Tools
blackmarble
Visual Studio for Database Professionals
• Was known as ‘DataDude’ in beta phase• Released in 2006• Release VS 2008 was really more of a
service pack than a major release.• VS 2008 GDR Released November 2008
blackmarble
Visual Studio Team System 2008Database Edition GDR
• Builds on top of Visual Studio 2008 SP1• Adds support for SQL Server 2008• Introduces a new product architecture
– Database Schema Provider model– Separation of Build & Deploy– Public Extensibility
• Incorporates functionality previouslyshipped in the Power Tools– T-SQL Static Code Analysis– Dependency Viewer
• Many product enhancements and improvements
blackmarble
Database Project Ecosystem
DatabaseRefactoring
DatabaseUnit Testing
Data Generation
T-SQL Static Code
Analysis
Schema Compare
DataCompare
3rd PartyDesigners
3rd PartyTools
SQL Server2008 DSP
ParserScriptDOMInterpreterReverse EngineerDeploy
SQL Server2005 DSP
ParserScriptDOMInterpreterReverse EngineerDeploy
SQL Server2000 DSP
ParserScriptDOMInterpreterReverse EngineerDeploy
3rd PartyDSP
ParserScriptDOMInterpreterReverse EngineerDeploy
DSPExtensions
DSPExtensions
DSPExtensions
DSPExtensions
DSPExtensions
DSP Extensions
DSPExtensions
Database Model API
Database Eco Project System
Solution ExplorerSchema ViewDependency
ViewerEditor
Project Features
blackmarble
Team Foundation Server Integration
• As a member of the Visual Studi o Team Sys tem fam il y, DBPro is integrated with all of the team features• TFS provi des
– Team project with prescript ive guidance– Version control management– Work I tem tracking– Team Build integrat ion
blackmarble
Database Edition Power Tools
• Power Tools 2008 added addit ional features that didn’t make the product release cycle– Dependency V iewer – New Refactori ngs– Data Generation Wizard– MSBuild Tasks – T-SQL S tati c Code Analysis – Schema Manager AP I
• At present no GDR Power tools released
blackmarble
Writes Tests Writes DB CodeRefactorsRuns TestsChecks InWorks with other developers to integrate
Reviews ChangesCompares Updates to ProductionBuilds Deploy PackageDeploys to Production
Creates New DB ProjectReverse Engineers DB to ProjectCreates Data Generation Plan
DB DeveloperDB Administrator
Manage Develop Deploy
Roles in a DB Project
DB Administrator
blackmarble
Creating the DB Project
DatabaseProject Import schema
Check in to
Source C
ontrolProductionDatabase
StagingDatabase
Create a Project
DBA
DBPro
TFSServer
blackmarble
DBPro
TFSServer
DBA
Isolated Iterative Development• Sync • Check-out• Edit/Refactor• Test• Check-in• Work is being driven
and tracked viawork items
• Other team members can pick up changes
TFS Shelving allows DBAto provide guidanceand evaluate work
ProductionDatabase
StagingDatabase
SandboxDatabase
SandboxDatabase
SandboxDatabase
blackmarble
DBPro
TFSServer
Automated Build & Testing
Build Server
Test
DBA
ProductionDatabase
StagingDatabase
Get Latest
TestEnvironment
Reports
blackmarble
Deploy the Project
DatabaseProject
Sync from
Label SQL
Deploy ScriptBuild
Deploy
Refine deploy script
Verify
DBPro
TFSServer
DBA
ProductionDatabase
StagingDatabase
Publish
blackmarble
Schema Model
Schema CompilationSource
Database
.dbschemafile
Project System
DDL Scripts(artifacts)
Reverse engineer schemainto DDL artifacts
Compose model representationfrom source code fragments
Build
Interpret,Analyze andValidate
Schema Model
blackmarble
Schema Deployment
Schema Model
TargetDatabase
Schema Model
.dbschemafile
Deployment Engine
Model Diff
Incremental Target UpdateAdditional schema artifacts
.SQL
…
Plan Executors
blackmarble
the strategic IT asset for your organisation
demo
DB Life Cycle
blackmarble
Data Generation
• Shipped with the product– Data-bound, Regular Expression, Random Number
• Available as a Power Tool– File-bound and a Wizard tools to ease the process
• Codeplex – DbProGenerators– Lorem Ipsum, sparse columns, XML bound, Word
bound and web search bound• Plus what you write yourself.....
blackmarble
the strategic IT asset for your organisation
demo
Data Generation
blackmarble
Testing in DB Pro• Firstly remember that can test any CLR code before loading it into SQL Server• DBPro adds database tests that can be used to test any stored procedure, function, trigger or DB object• A single test project can contain a variety of test types• Can be used to auto generate test stubs
blackmarble
the strategic IT asset for your organisation
demo
Automated Testing
blackmarble
Is DB Testing Valid?
• You have to ask how useful it is to test at the raw data layer?
• Usually more effective to test the DB via the data access layer or as part of integration testing
blackmarble
MSBuild• All the key DB tasks can be scripted• Database operations can become part of a scheduled build• However this can all get a bit complex and DBPro MSBuild tasks are a bit idiosyncratic.• Check the web for examples
blackmarble
The Future
• Developer & Database Team Editions merged
• Database Schema Providers– Publicly extensible in Visual Studio 2010– Quest Software announced that they will offer a
Database Schema Provider (DSP) for Oracle– Partnership with IBM provides DB2 support
• Contextual Project Feature Extensibility– Publicly extensible in Visual Studio 2010
blackmarble
Summary
• Visual Studio Team Edition for Database Professionals make SQL development part of the project mainstream.
• Team System coupled with integrated version control helps to mitigate risks associated with DB schema change
• Build integration provides for quality tracking and improvement
• Process reduces last minute problems and the need to rollback changes out of production
blackmarble
Good VSTS Blogs
• Gert Drapers (was Architect/Development Manager Visual Studio Team Edition for DB Professionals, but moved to new team Mar 09)– http://blogs.msdn.com/gertd
• VSTS DB Team Blog (replaces Gert’s blog)– http://blogs.msdn.com/vstsdb/
• Brian Harry (Product Unit Manager for Team Foundation Server)– http://blogs.msdn.com/bharry
blackmarble
For Further Information
• My random thoughts ‘But it works on my PC!’ http://blogs.blackmarble.co.uk/blogs/rfennell
• You can also get in touch via: Email – [email protected] WebSite – www.blackmarble.co.uk