Dec 17, 2008

DataDude 2008 Impressions

DataDude, or as it’s more formally known – Visual Studio Team System 2008 Database Edition GDR (*phew*) has been released for a few weeks now and I spent part of today showing a number of people how it all fits together.

By the way, if you already have the 2005 edition installed, go get this version right now.  The improvements it makes over the 2005 version are massive – this product is now a useable and worthwhile addition to your toolbox, plus it supports SQL2008 databases.

Projects

The project system is now quite different.  The biggest (and I think the most needed) change was the separation of the build process from the deployment process.  You can now build the project to make sure that your SQL is correct without creating a deployment script.  When you build you get a DBSCHEMA file with you database definition in it.  Deployment is also improved with the option to just create the deploy script to target a database or you can create the script and run it against your target database in one operation:

image

The project file itself is now structured in a simpler manner with specific configuration files for various aspects of the configuration and deployment:

image

Oh – I should also mention this one : no more design time database!  Yay!!  DataDude now uses the SqlServerCE data engine for checking syntax and no longer creates those temporary databases with the GUIDs in the name.  Of course it does mean you need SqlServerCe (3.5 SP1) installed otherwise you might run into errors opening database projects with “Could not load assembly…” errors.

Code Analysis

Another very cool addition to DataDude is the inclusion of FxCop style code analysis rules.  While you can’t ensure that your SQL code is brilliant, you can at least be sure it doesn’t completely suck and break common rules.  As you can see it includes checks for things like the use of @@IDENTITY and SELECT * … etc.

image

The Schema View window

One of the other painful things about the 2005 edition of data dude was the schema management.  With 2005 by far the easiest way to edit your schema was to make changes via management studio and then do a schema comparison to bring the changes you wanted into your project.  While you can still do this it’s now pretty easy to manage the schema inside visual studio since there is a Schema View window with all the various things you might expect.

image

You still edit the table definitions using SQL (no designers) but it’s pretty simple to manage this stuff now.

What’s also nice is the improved things you can do in the schema view window as seen here:

image

Apart from much improved database refactoring support, there is now also the ability to view the dependencies of an object – both the things depending on it, and the things it depends on.  This really helps in understanding what you’ll be breaking when you make those crazy schema changes your thinking of :-).

Unit Testing

Woo-hoo!! Unit testing for stored procedures is very, very nice now.  To get started with a unit test hit the Create Unit Tests… button

image

Run through the dialogs and you’ll end up with a generated test that looks something like this:

image

See all that SQL code calling the proc?  What’s it doing inside a *.cs file?  Well, DataDude has added a designer experience to the database unit tests.  You can now write some SQL and add your test conditions from a list.  Test conditions are adjusted through the properties pages for each condition.

image

You can also do pre & post test scripts as well which can be very handy.

image

Behind the scenes you have normal code so if you really wanted to you can always go and add further code to assert and test conditions to suit whatever the specific needs are that you have

 

There’s a whole slew of other changes in the new version of DataDude and all of them are valuable and probably deserver a blog post in their own right, but these three areas of improvement are to me the changes that make the most difference.  If you want to know what the other changes are, go and check Gert’s blog where he gives a run through of each of them or go and grab the documentation and have a read of it for yourself – even better, go download it and have a play with it yourself and discover the improvements.

Reactions to Oxite

So you might have heard that Oxite was released recently.  You know the one – it’s the all new, all shiny, singing and dancing blog engine that is meant to show off how great ASP.NET MVC apps should be built.  The system used to run the MIX web site.  Yeah, that’s the one.  And it’s meant to be a great example of good architecture, appropriate use of design patterns and clean code as well, isn’t it?

Hmmm.  It appears not.  Check out this review by Karl…

http://codebetter.com/blogs/karlseguin/archive/2008/12/15/oxite-oh-dear-lord-why.aspx

It’s quotes like this that worry me: “Actually, I seriously think I'm missing a project, because there's no way the team built all this functionality and only 51 tests - apologies if I'm missing a part of the project” or this comment from a review on the project’s Codeplex site - “You have three total test classes, and one test class that is 1400 lines long.”  Whoa!  Shouldn’t testing and quality be a prime concern of a well written project?  I would have thought so.

All I can say at the moment is “Ouch!”  Now in all fairness I haven’t seen the code myself yet so I’m going to download it and have a look at the code myself and make up my own mind.  You should too, and when you do see if you can spot why some people are ripping into it as (yet another) really bad Microsoft example of how to develop applications.

Dec 5, 2008

TFS Build Monitor v0.3

For those of you who are interested in having your very own continuous integration build light for TFS or want to be able to tweet build status information automatically, a new version of the TFS Build Monitor (formerly the Twitter Build Publisher) is now available from Codeplex at http://www.codeplex.com/BuildMonitor

The changes in v0.3 are that the application is now a WPF application instead of a console app and it can be minimized to the system tray, thus keeping it out of your way when you're doing real work.

There's also a few minor changes related to handling errors when the Delcom device isn't attached or when the TFS server can't be reached, etc.

If you've got any problems - submit an issue on the codeplex site.

Enjoy!

Dec 1, 2008

Using Gaming Tools for Improved Communications

I haven't tried this yet - I'm more curious than anything else as to your opinions.

I use Ventrilo (a VOIP utility) for gaming quite a bit and I never seem to get the voice glitches that Skype & Live Messenger seem to get. It's low on CPU (important when gaming) and high on sound quality – a pretty good mix in my book.

Since I regularly have up to 6 way conversations with it, I was then wondering how well it might work for remote software development teams. I can imagine an arrangement where everyone would run Ventrilo during the day and could chat with the rest of the team at any time they needed. They could also use the push-to-talk feature so that background noise wouldn’t be coming through all day long, and because it's so low on CPU usage it wouldn't affect the all important activity of software compilation :-)

So, do you think it would create a better sense of connectedness between team members? Do you already do something like this in your remote teams? Or am I just day dreaming here?

Opinions welcome.