Month: February 2008

Software Development Lifecycle in a Box

A new website from Microsoft presents some guidance around an example project lifecycle.

It is interesting because it is not so much about Visual Studio and Team Foundation training. It tries to demonstrate the entire software lifecycle, and mixes Microsoft and third party tools as a method to achieve this.

Quite often on software projects, the process is in fact just the tools and nothing else. It is good to see Microsoft pushing the bigger picture here.

Heroes Happen

I’m currently in Sydney, Australia for some SQL Server work, and I received an invite for the ‘Heroes Happen’ event next week.


I don’t go to a great deal of these but it just seems like good timing 🙂

They have a few tracks, and predominately I will be going to the SQL Server 2008 one. My second choice would be virtualization in Windows Server 2008 but only so many hours in a day right?

Windows Install Experience

I love Windows Live Writer, but I really feel for the experience Rory Blyth has been having getting it installed.

After a long absence from the Apple world I got a MacBook and started to play with it. I was amazed at how in OS X you can still just download a utility and run it! No offers to install a stupid search tool bar or to register and receive ‘exciting new personalised content’. Just run and enjoy.

If you didn’t like the utility you just delete it. It doesn’t embed itself throughout your system and then fail to uninstall because you are running a different version of Windows than it was expecting. Just drag it to the wastebasket and forget about it.

Things can be this simple in the Windows world.. uTorrent is (by its very nature) an application that uses the network a lot. You download and ‘double click’. It runs. It checks online for an update, but doesn’t get in your way. You can just use it.

As a developer I’d like to ask why Microsoft Word can not be this simple? Why do I have to wait half an hour on a very powerful machine when it should be as simple as copying the run-time files over from the CD-ROM?

I appreciate the future is online, but can I just download an application and run it? I really do not need an interactive online experience to do this.

Reverse Engineering a SQL Server 2005 Database

For small databases, I was quite liking Visual Studio for Database Professionals. It is easy to use and fantastic for managing your schema as source.

However it seems to be balking at reverse generating a giant database with 2000+ stored procedures. (It is also generally very slow, demanding validation of every little change to your schema against a running SQL Server instance)

If you reach the limitations of a tool, what are the alternatives? I wanted to keep with Microsoft for licencing issues. (The code produced is used in an enterprise environment)

TableDiff comes free with SQL Server 2005. However it does everything table by table.

This blog showshow to use the ‘Generate Scripts…’ command to produce the SQL source of all the objects. (Even as a single file) It even lets me script all of the object of a certain type (for example, all the views) but doesn’t seem to put the objects back in the right order. Also, sometimes it runs very fast (a few seconds) and other time extremely slow (a few hours).

The conclusion? Visual Studio is still the best way to manage your schema. Just be aware that there are limits to what you can throw at it 🙂

Versioning your database project

If a software project uses SQL Server in some capacity, you are going to have some developers who write very good C# code who at the same time are literally butchering the database component.

 “Source control the database? How can that possibly work?”

“This is madness! Madness I tell you!”

 “I’ve been in the software business for almost 2 weeks now, and I can tell you that it is a waste of time versioning your database”

 (But you shouldn’t just version databases… you should version everything in your project. Even the bitmaps and icons. Third party assemblies you might get away with, but your life will be easier if you add those to your system source control and label them with a release as well)

Microsoft has made life easier with the good ‘Visual Studio Team System 2008 Database Edition’ proving that you ‘can’ actually have project structure and SQL… but to me it suggests that you need such a tool to get this job done when in fact you do not. You only need a healthy strategy

Jeff Atwood has two good blog entries on this subject:

 Is Your Database Under Version Control?

Get Your Database Under Version Control

It doesn’t require you to buy some magic tools.. all you need is SQL Server and Source Safe (Or you favorite source control system).

Once you get your team kicking and screaming to database source control (expect a quantity of blood) then you can REALLY make a difference to project quality by implementing Database Unit Tests!