OK let’s do a simple review here. SQL Server 2005 was in development for what? Five years? Give or take a year. That is sixty months, or 1800+ days, however you want to look at it. A good portion of that time was waiting for .NET 2.0 to stabilize so that the CLR could be incorporated into SQL Server. The good news is that the SQL Server team did a great job of integrating managed code into the product. It’s in many places, CLR support, Visual Studio integration, .NET data type and so on.
I’ve used SQLDMO in a few products, including our DbValidator tool. So I was thrilled to see that DMO has been replaced with SQL Management Objects (SMO). SMO is a completely managed API granting you full programmatic control over the SQL Engine
This week I started working with SMO and I gotta tell you. The help bites!
NOT ONE SINGLE CODE SAMPLE
Let me say that again. “Not one single code sample“
Five years of work and Microsoft can’t give us examples for each object in the library? I spent the last hour looking through the SMO namespaces and comparing them against the SQLDMO version. Not one single topic had any code samples other the simple syntax declaration.
public bool Identity { get; set; } (C#)
Public Property Identity As Boolean (VB)
What is the documentation team thinking anyway?
SQL Server 2005 Team Documentation Meeting
PM “So remember our target audience for SMO is developers (echo of Steve Ballmer chanting (developers, developers, developers)). Oh and maybe a admin or two who wants to write some script automation”
Help Author “OK. So I’ll put some C# in the help. I can show how the method is declared.”
PM “Better write some VB.NET too or the VB team will be all over my back”
Help Author “What’s that? You mean VB Script?”
PM “No, I think it’s a little different”
Help Author “I don’t know VB. I’m a writer, not a programmer. But I can make C#, we have a tool that generates it for us.”
PM “Well, find a C#-VB.NET converter and run the C# stuff through it.“
[No developers in the meeting because they are too busy trying to integrate the latest CLR build into their code.]
Tester “I think we ought to include some code that shows how to use the…“
PM “Come on. This meeting is over. I’m already late for the 3:30 meeting with marketing.“
Help Author “Alright, we’re going. Sample code makes the help files too big anyway”
Help for Help
I cannot believe that a namespace full of SMO objects is completely lacking in any code examples on the individual classes, methods, event or properties. I did find a few scattered general examples (like how to open a connection) but it’s not what I expect to see in a professional help file.