The .NET Platform
Development Tools
COM & COM+
Data Access
Web Development
XML Technologies
Windows Servers
Wireless & Mobile
Security issues
Design & Process
Career Development
Analysis & Comment
Disposable Objects
You are not logged in: login here to access all areas.
Visual Studio 2005 Team Edition for Database Professionals brings the data dude into the fold. Mark Whitehorn investigates this latest addition to Microsoft's Visual Studio Team System.
Author: Mark Whitehorn
Last updated: Jun 2007
A great deal of time and money has been spent in recent years trying to make application development a more controlled process. The result is that all kinds of application lifecycle management applications have appeared, culminating for Microsoft developers in Visual Studio Team System.
Application developers can now check code out and back in, code catastrophes can be tracked to the specific developer (good or bad news, depending on your coding abilities) and much else. In the end, all of these tools do assist the development process because experience has shown that, unless it is highly controlled, the result is chaotic.
In the database development world, however, things are rather different. In some ways there is much more control, and it has been in place for a long while, but in other ways control is still sadly lacking.
So, what did we database guys do right? Well, very early on, we learned the hard way that getting the overall design of a database wrong is both very easy and very expensive. So back in 1975 the ANSI/SPARC (American National Standards Institute Systems Planning and Requirements Committee) looked at the problem. It suggested that the design process should focus on thinking in terms of user, logical and physical models.
This worked and in turn led to the development of entire job roles, such as the business analyst, and to entirely new ways of modelling business processes, such as Entity Relationship (ER) modelling. These techniques have stood us in good stead for 30 years and show no sign of falling from favour.
So we may have the database design process under control, but by the time we get to implementing the associated code, the situation is still a mess. We can easily have a dozen developers working on a single database with no source control system to manage the day-to-day development. As one writes a stored procedure against a table, another is changing the table structure or even the table name. This can lead to full-and-frank discussions, fist fights and other fracas.
There are, of course, tools out there that are designed to help. For example, Embarcadero has a fine range of products in DBArtisan, ER/Studio, Change Manager and so on. However they tend to address parts of the problem rather than the entire development lifecycle, which is where Microsoft's new product comes in.
Introducing Data Dude
Since I am paid by the word, I am delighted to introduce you to Visual Studio 2005 Team Edition for Database Professionals. An unwieldy name at the best of times, however its code name was 'Data Dude' so, for the sake of the magazine's finances, we'll shorten it to DD.

Working with stored procedures in Visual Studio 2005 Team Edition for Database Professionals.
Apart from the obvious characteristics, such as tracking which developer has broken which particular block of code, DD has some rather cool and unexpected features up its sleeves which are probably best described by walking you through how the product could be used in practice.
Imagine you have an existing database which you wish to bring under source code control. You open a project in Visual Studio, point DD at the database and simply import the schema (you can work with schemas from both SQL Server 2000 and 2005). The entire database schema is imported by reading the system tables and turning the meta data therein into a SQL script. This in turn is broken down into the smallest possible SQL components.
The net result is that your entire schema is rendered into fragments of SQL code that describe each table, stored procedure, index and so forth. The code is fragmented but all of the components are held perfectly in place by what is, essentially, an object model. This means that individual components or groups of components can be checked out by developers, edited and checked back in.
DD actually stores not only the code fragments but the entire development process of the database as a series of rows in a set of tables that it holds in another database. The unique identifier for each developer is stored along with the date, time and the actual changes made. The transactional nature of this database means that the entire development cycle can, if necessary, be rolled back to any point in time.
What I'm describing is standard practice for application development. The great news is that database development can now be tracked in the same way.
Click here for our Privacy Statement. Copyright © Matt Publishing. All rights reserved. No part of this site may be reproduced without the prior consent of the copyright holder.