Welcome to MSDN Blogs Sign in | Join | Help

Agile Database Development

Agile development at MSFT and tid bits about VSTE for DB Pros

Syndication

Tags

    No tags have been created or used yet.
Video streams of Team Data Walkthroughs Available
We have just posted two walkthrough videos of VSTE for DB Professionals to our teamsite.  These let you see how the product works for setting up a project and connecting to version control and creating unit tests.  If you haven't downloaded the CTP yet, this will give you a good view of what we are trying to achieve in an integrated database development life-cycle.

by thomas murphy | 0 Comments

Tech Ed Wrap

TechEd overall was been a great event and our team members have been energized by hearing that all our hard work has paid off in a product that is compelling and of value.  I want to thank everyone who stopped by the booth, came to our sessions, and interacted with us over this week.  We handed out thousands of CDs, are seeing a strong download flow and great input through the Forum.  Our Connect site is up now so that you can also enter bugs directly to our system.  We still have a lot to complete before we ship this product and we need your input and help shaking out any problems.  The flow of input on the product is motivating to the team.

 

Through the rest of the year as we finish V1 we will continue to seek out interaction and will be presenting in user groups, building lots of on-line content and interacting any way we can.  July 12th we will be presenting at the NW SQL user group meeting in Redmond.  If you are interested in presentations to your company or user group, let me know and I will take care of getting something setup.

 

It was a long week and we all have sore feet but we are ready to finish specing, coding, docing and testing and I thank you all.

by thomas murphy | 1 Comments

Team Data Covereage

TechEd brought lots of opportunites for coverage of the product.  Here are pointers to a few locations: For instanceStephen Wynkoop's overall assement of the show and a view of the tool:

There are huge other benefits to the software.  Schema comparisons and synchronizations, data compare and synchronization, TESTING (including creation of test data), rollback of changes and full integration with source control for schemas.  There is more on the collaboration front, on the utility front and other areas.  It's a great looking tool. 

Robert Jaques on vnunet.com carries the following quote from IDC:

"All too frequently, schisms exist between database teams and development staff, leading to ineffective collaboration, inadequate project and code management, poor quality, and cost increases," said Melinda Ballou, programme director atIDC's Application Life Cycle Management service.

"Avoidable problems occur due to these gaps in communication. Users on both sides need tools and processes to facilitate coordination and management across groups and skill sets, to increase efficiency and improve software quality earlier in the life cycle."

If you have somehow missed Gert Draper's podcast, it gives you great insight from the original data dude. 

The QA Team has also kicked off it's own blog.  We have also appeared in TechNet Radio in the coming weeks we will continue to enhance our website with additional example and learning material.

by thomas murphy | 1 Comments

Intellisense
We continue to hear this message and believe me, we want intellisense in the product.  There are 3rd parties that provide this type of functionality in VS today.  What I am more interested in is how you want intellisense to work.  If you are on a project with (lets keep this small and arbitrary) 100 views and 200 tables and you type select e. what do you want to see in the list?  And do you just want the columns, do you want the from Employees e inserted, how about filling in other parts of the query frame like where ... order by ... what about the use of Snippets like in C#/VB? 

by thomas murphy | 5 Comments

Agile Database Discussions
I blogged before about Scott Ambler's database refactoring book, Scott also run's an agile database forum over on Yahoo that you should check out if you are interested in the topic. 

by thomas murphy | 0 Comments

Get the CTP - Download Available -- TechEd Release

We have our CTP available now on MSDN and MSCOM.  This download is a CD image file.  You can either burn a CD and run it or you can use software to mount the image as a disc and run the setup.  Or, remember if you are at the show, come see us in the TLC.  We are one of the little kiosks on the aisle heading to the HOL area (grumbling a lot about location location location).  The key things we suggest. 

  1. Read the readme.  We have lots of known issues, you need to make sure you have the pre-reqs installed.  It you follow the instructions we will install and cleanly uninstall.  
  2. Have lots of fun!  The product is still changing a good bit but it is quite usable now 
  3. Expect change - This is a CTP, we will make changes don't expect to be able to "Go Live" yet
  4. Provide Feedback.  Use our forum

We will also start to evolve the content on our Team Center to add additional examples, walkthroughs etc.

by thomas murphy | 4 Comments

Testing the Edges

I am sitting in a session on WCF now but just have to keep blogging about this cool product we have.  In the last post I talked about using regular expressions and the value of "human readable" vs. schema correct tests.  Let me illustrate another way that data gen can help you root out edge cases in your database. 

By default we generate for the entire valid range of a type.  For instance in Northwind the Order Details table has a UnitPrice field that is money type and this can range between 0 and 922337203685477.5807 by default and a quantity which is a smallint that therefor can be between 1 and 32767.  That all seems cool, generate data that is legal in the legal range and everything should be cool.   But if you do this, you can quickly find problems with poorly written code (yes, northwind isn't perfect yet...we are working at it). 

Northwind has a view called Invoices that creates a computed field:

(CONVERT(money, ([Order Details].[UnitPrice] * [Order Details].[Quantity] * ( 1 - [Order Details].[Discount]) / 100)) * 100) AS [ExtendedPrice],

So, you run the data generation without changing any settings then do a quick

select * from Invoices

and you will get:

.Net SqlClient Data Provider: Msg 8115, Level 16, State 2, Line 1 Arithmetic overflow error converting expression to data type money.

Whoops, if I have a UnitPrice that is 1/2 the max for money and you buy 3 of them, you are Bill Gates afterall, you just blew the system.  That means a couple things, either the UI programmer has to write a bunch of code to catch and handle your mistake or you need to create constraints and rules in your data tier to make sure this doesn't happen.  The Data Generator will follow constraints.  If you only expect products to code between 1 and 1000 dollars and set that as a constraint in the DB we will set the generator constraints to match.  Of course I can make my datagen work fine, just enter manual constraints on the data I generate but is instructive to use the defaults and see if your database performs the way you think it does. 

 

by thomas murphy | 2 Comments

Fun with Regular Expressions
There is a lot of interest in the data generator here at the show and one of the cool generators that we provide is the Regular Expression driven generation.  This lets you utilize regular expressions as a fast way to create data that looks more realistic.  I find that this is useful for specific fields, mainly if I want to build single language oriented data.  For instance US zip codes is the expression [0-9]{5} | [0-9]{5}\-[0-4]{4} or US phone numbers is [1-9][0-9]{2}\-[1-9][0-9]{3}\-[0-9]{4}  or to do companies as [A-Z][a-z]{8}\, (Ltd|Corp|Mfg|Ag|) it is just a great way to customize your generated test data.  Then again, if your app takes nvarchars and you use the default generator we will produce data that you may not be able to read or isn't human useful but it works great for testing does your application behave like it should. 

by thomas murphy | 1 Comments

Download link

I am back stage at Steven "Guggs" Guggenheimer's app plat talk.  We have about a 7 minute demo going on, ie another fast pass through the product.  I need to go get in postion.

The download link should go live by tonight on MSDN.  Download should also be available from MSCOM.  I will post again once the page edit is complete for the MSDN download.  The download is an ISO CD image.  You have to have VS Pro or VS Team Dev/Test/Suite already installed and this can be one of the trial editions.  Make sure that you install SQL Express (done by default), MSXML (default), and VB and/or C#.  If you are at the show and haven't dropped by, we are going through CDs fast.

 

 

by thomas murphy | 1 Comments

TLC Center Opens - TechEd

At TechEd, the various booth/chalktalk/experts areas are all combined now to be the TLC area Technical Learning Center.  Here is our little booth with Robert and Jon, two excellent members of the QA team.

Notice the "DataDude" uniform.  If you see anyone at the show in these shirts, they are part of the team and we would love to hear from you.

by thomas murphy | 2 Comments

Keynote Down

Well for those not there, the keynote went really well.  Keith Smith did our demo tonight and he did outstanding and the software well, it just plain worked.  Here he is getting a feel for the stage and the nasty slap-back echo in the huge keynote room. 

 

Unfortunately the whole thing just had to be a very quick fly-by but tomorrow we will have a couple opportunities to show a much better look at the product with Cameron Skinner demoing in the Dave Campbell talk and Michael Leworthy doing the honors for us in Steve Guggenheimer's app plat talk. 

by thomas murphy | 0 Comments

How much does 4K CDs weigh?
The CTP discs arrived in Boston yesterday.  They weigh 207 lbs...about the same as myself.  But you can only take our CDs home with yourself.  I checked out the venue quickly tonight.  The Keynote hall is HUGE.  I am stoked for tomorrow night to get this party started!

by thomas murphy | 1 Comments

Unit Testing in Team Data

One of the coolest parts of Visual Studio Team Edition for Database Professionals is the whole system we have created for unit testing your database.  We can unit test any arbitrary SQL and we will automatically generate the test code for calling stored procedures.  But it isn't just that you have a Unit Test for databases, it is how it is integrated into the build system, the data generation system, and into the Team Test facilities. 

 

When you right click on a stored procedure, you can select the Create Unit Test... item to bring up the following dialog

This lets you create tests for one or more stored procedures in one fell swoop.  Then you utilize this dialog to setup the test behavior.

As you can see in this dialog you can choose to deploy the current project schema changes to your test system before a test is run and you can populate the database using a data generation plan.  The data generator creates random data for use in unit testing so that you don't have to expose financial or personally sensitive information.  It is seed driven so that the data generation is deterministic creating the same data each time you run the plan.  This way, your database always starts in the same state.

After you have this setup we drop you into the unit test designer.  Unit tests are created as part of either a VB or C# test project.  But we provide a designer on top so that you can write the actual test in TSQL.  If you know VB or C# you can drop to the code page and add additional code but working straight from TSQL provides a fast way to call and test code.  In the window you see that there is a Code pane on top where the SQL to be executed is.  We will automatically generate this code if you are creating the test from a stored procedure.  At the bottom of the window you see the test conditions.  These are the assertions that you want to make after the test runs.  We provide a fixed set of assertions.

Once you execute the tests you will then see results of pass/fail status with error messages when things fail. 

Because this is built on top of the standard Unit Test framework and project system you can use all the tools those features provide for you including having a test project the tests your middle-tier and database logic all in one.

by thomas murphy | 1 Comments

The SQL Editor

We have been working some improvements to the SQL editing experience in the Team Data product.  I know that this means the first question is "do we have Intellisense?"  high on our list too but I am sorry to report that won't be in V1.  But we have lots of good things some of which you can see here.

 

We now have support for results in grids.  We will have Show Plan implemented by V1.  And not seen but Query Analyzer fans, we support all your favorite key bindings.

by thomas murphy | 1 Comments


Attachment(s): http://blogs.msdn.com/controlpanel/photos/posteditor.aspx?sectionid=6604&PostID=624978

Virtual TechEd

http://www.microsoft.com/events/teched2006/virtualteched.mspx

This could be cool -- if you are not in Boston you can catch the keynote virtually.  We only have a 4 minute slot but I tell you what you see in that four minutes just might knock your socks off.

by thomas murphy | 1 Comments

© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement  
Page view tracker