25.1. The History of SQL Server Management Object Models
This is, to me — even as someone who genuinely loves the product — not an area where SQL Server shines. This is not to say that SMO is a bad thing but rather that it is a rather sordid history. The team has had a tough time picking a horse and sticking with it.
As I write this, I've been working with SQL Server for something over a decade. In that time, the methods of managing SQL Server have changed several different times. "A new release? A new management method!" could be the motto for SQL Server. In short, there are probably countries out there with shorter histories than SQL Server's management model efforts.
So, let's look at the highlights from the last couple of releases. These are some of the different models and technologies you may bump into as you work on legacy code out there.
25.1.1. SQL Distributed Management Objects
Distributed Management Objects, or DMO, is the relative "old dog" of the management models. When you think of the old Enterprise Manager from prior versions of SQL Server, most of its underlying functionality ended up in a DMO call. The DMO model supported COM, and could perform all the basic tasks you might want management-wise, such as:
Start a backup
Restore from backup
Create a database
Create jobs and other agent-related tasks
Reverse engineer tables into SQL code
The list goes on.
So, what went wrong with DMO? Well, the object model was often deemed "clunky" at best. Indeed, parts of DMO often ...