Development Life Cycle using Visual Studio Team Edition for DB Professionals Richard Fennell...
-
Upload
devin-roberts -
Category
Documents
-
view
217 -
download
1
Transcript of Development Life Cycle using Visual Studio Team Edition for DB Professionals Richard Fennell...
![Page 1: Development Life Cycle using Visual Studio Team Edition for DB Professionals Richard Fennell Engineering Director SQLBits II Birmingham 1 st March 2008.](https://reader036.fdocuments.us/reader036/viewer/2022062618/551423c3550346d8488b5941/html5/thumbnails/1.jpg)
Development Life Cycle using Visual Studio Team Edition for DB
Professionals
Richard FennellEngineering Director
SQLBits II Birmingham 1st March 2008
![Page 2: Development Life Cycle using Visual Studio Team Edition for DB Professionals Richard Fennell Engineering Director SQLBits II Birmingham 1 st March 2008.](https://reader036.fdocuments.us/reader036/viewer/2022062618/551423c3550346d8488b5941/html5/thumbnails/2.jpg)
Agenda
• Why do we need DB Pro.?• What is Visual Studio Team System• DB Pro. Features
– Project Life-cycle– Testing– Deployment– Power Tools
![Page 3: Development Life Cycle using Visual Studio Team Edition for DB Professionals Richard Fennell Engineering Director SQLBits II Birmingham 1 st March 2008.](https://reader036.fdocuments.us/reader036/viewer/2022062618/551423c3550346d8488b5941/html5/thumbnails/3.jpg)
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 standard way to manage the DB – until now
![Page 4: Development Life Cycle using Visual Studio Team Edition for DB Professionals Richard Fennell Engineering Director SQLBits II Birmingham 1 st March 2008.](https://reader036.fdocuments.us/reader036/viewer/2022062618/551423c3550346d8488b5941/html5/thumbnails/4.jpg)
ExcelExcelProjectProject
Operations, QA and Operations, QA and Help DeskHelp Desk Non-Microsoft Non-Microsoft
DeveloperDeveloper
Team System Team System Web AccessWeb Access
Visual Studio Team SystemApplication Life Cycle Management (ALM) Solution
![Page 5: Development Life Cycle using Visual Studio Team Edition for DB Professionals Richard Fennell Engineering Director SQLBits II Birmingham 1 st March 2008.](https://reader036.fdocuments.us/reader036/viewer/2022062618/551423c3550346d8488b5941/html5/thumbnails/5.jpg)
Visual Studio for Database Professionals
• Was known as ‘DataDude’ in beta phase• Came out in 2006, a year after the main VS
2005 release.• New release VS 2008 is really more of a
service pack than a major release.
![Page 6: Development Life Cycle using Visual Studio Team Edition for DB Professionals Richard Fennell Engineering Director SQLBits II Birmingham 1 st March 2008.](https://reader036.fdocuments.us/reader036/viewer/2022062618/551423c3550346d8488b5941/html5/thumbnails/6.jpg)
DB Pro provides support for the fulldatabase lifecycle
![Page 7: Development Life Cycle using Visual Studio Team Edition for DB Professionals Richard Fennell Engineering Director SQLBits II Birmingham 1 st March 2008.](https://reader036.fdocuments.us/reader036/viewer/2022062618/551423c3550346d8488b5941/html5/thumbnails/7.jpg)
DBPro Features• 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
![Page 8: Development Life Cycle using Visual Studio Team Edition for DB Professionals Richard Fennell Engineering Director SQLBits II Birmingham 1 st March 2008.](https://reader036.fdocuments.us/reader036/viewer/2022062618/551423c3550346d8488b5941/html5/thumbnails/8.jpg)
DBPro Features
• Database Unit Testing– Leverages the existing Test Project Infrastructure – Supports data generation
• Build and Deployment– MSBuild and Team Build integration
![Page 9: Development Life Cycle using Visual Studio Team Edition for DB Professionals Richard Fennell Engineering Director SQLBits II Birmingham 1 st March 2008.](https://reader036.fdocuments.us/reader036/viewer/2022062618/551423c3550346d8488b5941/html5/thumbnails/9.jpg)
Power Tools
• Power Tools add additional features that didn’t make the product release cycle– Dependency Viewer – New Refactorings– Data Generation Wizard– MSBuild Tasks – T-SQL Static Code Analysis – Schema Manager API
![Page 10: Development Life Cycle using Visual Studio Team Edition for DB Professionals Richard Fennell Engineering Director SQLBits II Birmingham 1 st March 2008.](https://reader036.fdocuments.us/reader036/viewer/2022062618/551423c3550346d8488b5941/html5/thumbnails/10.jpg)
Team Foundation Server Integration
• As a member of the Visual Studio Team System family, DBPro is integrated with all of the team features
• TFS provides– Team project with prescriptive guidance– Version control management– Work Item tracking– Team Build integration
![Page 11: Development Life Cycle using Visual Studio Team Edition for DB Professionals Richard Fennell Engineering Director SQLBits II Birmingham 1 st March 2008.](https://reader036.fdocuments.us/reader036/viewer/2022062618/551423c3550346d8488b5941/html5/thumbnails/11.jpg)
Writes Tests
Writes DB Code
Refactors
Runs Tests
Checks In
Works with other developers to integrate
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
DB DeveloperDB Administrator
Manage Develop Deploy
Roles in a DB Project
DB Administrator
![Page 12: Development Life Cycle using Visual Studio Team Edition for DB Professionals Richard Fennell Engineering Director SQLBits II Birmingham 1 st March 2008.](https://reader036.fdocuments.us/reader036/viewer/2022062618/551423c3550346d8488b5941/html5/thumbnails/12.jpg)
Creating the DB Project
DatabaseDatabaseProjectProject Import schemaImport schema
Check in to
Check in to
Source
Source
Control
Control
ProductionProductionDatabaseDatabase
StagingStagingDatabaseDatabase
Create a ProjectCreate a Project
DBADBA
DBProDBPro
TFSTFSServerServer
![Page 13: Development Life Cycle using Visual Studio Team Edition for DB Professionals Richard Fennell Engineering Director SQLBits II Birmingham 1 st March 2008.](https://reader036.fdocuments.us/reader036/viewer/2022062618/551423c3550346d8488b5941/html5/thumbnails/13.jpg)
DBProDBPro
TFSTFSServerServer
DBADBA
Isolated Iterative Development• Sync Sync • Check-outCheck-out• Edit/RefactorEdit/Refactor• TestTest• Check-inCheck-in• Work is being drivenWork is being driven
and tracked viaand tracked viawork itemswork items
• Other team members can Other team members can pick up changespick up changes
TFS Shelving TFS Shelving allows DBAallows DBAto provide guidanceto provide guidanceand evaluate workand evaluate work
ProductionDatabase
StagingDatabase
SandboxDatabase
SandboxDatabase
SandboxDatabase
![Page 14: Development Life Cycle using Visual Studio Team Edition for DB Professionals Richard Fennell Engineering Director SQLBits II Birmingham 1 st March 2008.](https://reader036.fdocuments.us/reader036/viewer/2022062618/551423c3550346d8488b5941/html5/thumbnails/14.jpg)
DBProDBPro
TFSTFSServerServer
Automated Build & Testing
Build ServerBuild Server
Test Test
DBADBA
ProductionDatabase
StagingDatabase
Get LatestGet Latest
TestTestEnvironmentEnvironment
Reports
![Page 15: Development Life Cycle using Visual Studio Team Edition for DB Professionals Richard Fennell Engineering Director SQLBits II Birmingham 1 st March 2008.](https://reader036.fdocuments.us/reader036/viewer/2022062618/551423c3550346d8488b5941/html5/thumbnails/15.jpg)
Deploy the Project
DatabaseDatabaseProjectProject
Sync from
Sync from
Label Label
SQLSQLDeploy Deploy ScriptScriptBuildBuild
DeployDeploy
Refine deploy Refine deploy scriptscript
VerifyVerify
DBProDBPro
TFSTFSServerServer
DBADBA
ProductionDatabase
StagingDatabase
PublishPublish
![Page 16: Development Life Cycle using Visual Studio Team Edition for DB Professionals Richard Fennell Engineering Director SQLBits II Birmingham 1 st March 2008.](https://reader036.fdocuments.us/reader036/viewer/2022062618/551423c3550346d8488b5941/html5/thumbnails/16.jpg)
demodemo
DB Life CycleDB Life Cycle
![Page 17: Development Life Cycle using Visual Studio Team Edition for DB Professionals Richard Fennell Engineering Director SQLBits II Birmingham 1 st March 2008.](https://reader036.fdocuments.us/reader036/viewer/2022062618/551423c3550346d8488b5941/html5/thumbnails/17.jpg)
So what DBs did I end up with?
Live DB VS Dev DB Local Test DB
Live production DB
You may also have atest or staging DB
DB Created by Visual Studio
Used by IDE for design time validation
Developers Test DB
Used for sandbox testing
(might be shared)
![Page 18: Development Life Cycle using Visual Studio Team Edition for DB Professionals Richard Fennell Engineering Director SQLBits II Birmingham 1 st March 2008.](https://reader036.fdocuments.us/reader036/viewer/2022062618/551423c3550346d8488b5941/html5/thumbnails/18.jpg)
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, soon XML bound, Word bound and
web search bound
• Plus what you write yourself.....
![Page 19: Development Life Cycle using Visual Studio Team Edition for DB Professionals Richard Fennell Engineering Director SQLBits II Birmingham 1 st March 2008.](https://reader036.fdocuments.us/reader036/viewer/2022062618/551423c3550346d8488b5941/html5/thumbnails/19.jpg)
demodemo
Data GenerationData Generation
![Page 20: Development Life Cycle using Visual Studio Team Edition for DB Professionals Richard Fennell Engineering Director SQLBits II Birmingham 1 st March 2008.](https://reader036.fdocuments.us/reader036/viewer/2022062618/551423c3550346d8488b5941/html5/thumbnails/20.jpg)
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
![Page 21: Development Life Cycle using Visual Studio Team Edition for DB Professionals Richard Fennell Engineering Director SQLBits II Birmingham 1 st March 2008.](https://reader036.fdocuments.us/reader036/viewer/2022062618/551423c3550346d8488b5941/html5/thumbnails/21.jpg)
Is DB Testing Valid?
• But 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
![Page 22: Development Life Cycle using Visual Studio Team Edition for DB Professionals Richard Fennell Engineering Director SQLBits II Birmingham 1 st March 2008.](https://reader036.fdocuments.us/reader036/viewer/2022062618/551423c3550346d8488b5941/html5/thumbnails/22.jpg)
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
![Page 23: Development Life Cycle using Visual Studio Team Edition for DB Professionals Richard Fennell Engineering Director SQLBits II Birmingham 1 st March 2008.](https://reader036.fdocuments.us/reader036/viewer/2022062618/551423c3550346d8488b5941/html5/thumbnails/23.jpg)
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
![Page 24: Development Life Cycle using Visual Studio Team Edition for DB Professionals Richard Fennell Engineering Director SQLBits II Birmingham 1 st March 2008.](https://reader036.fdocuments.us/reader036/viewer/2022062618/551423c3550346d8488b5941/html5/thumbnails/24.jpg)
Good VSTS Blogs
• Brian Harry (Product Unit Manager for Team Foundation Server )– http://blogs.msdn.com/bharry
• Rob Caron (Lead Product Manager for Developer Content Strategy at Microsoft)– http://blogs.msdn.com/robcaron
• Gert Drapers (Architect/Development Manager Visual Studio Team Edition for DB Professionals )– http://blogs.msdn.com/gertd
![Page 25: Development Life Cycle using Visual Studio Team Edition for DB Professionals Richard Fennell Engineering Director SQLBits II Birmingham 1 st March 2008.](https://reader036.fdocuments.us/reader036/viewer/2022062618/551423c3550346d8488b5941/html5/thumbnails/25.jpg)
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