Most of us are familiar with at least one kind of software development. Nearly every program we interact with has an interface, a processing mechanism or two, and often, a back-end where persisted data is stored. We call these “applications”, because they are software “applied” to a function that has a specific goal in mind. The software that comes to mind here are things like Microsoft Word, Microsoft Outlook and so on.
But there is another type of software, and no doubt you’ve worked on this kind of development yourself. Some software is written with the express idea that there is no specific goal – the software enables the user to create something to reach goals the original developer never thought about. The software here includes things like C#, C++ and even SQL Server. This type of software is called a “platform”, since it merely enables the user to develop applications or solutions.
So now we come to SQL Server Management Studio. The name implies that it is an application – something that allows you to manage SQL Server – and so it does. We put as much thought as possible into its design , and we take your suggestions as to how the product should be managed. We’ve included object browsers, wizards, menus, reports and more into SSMS to help you manage and program your SQL Server instances and databases.
To be truly useful, we enable the management area as a platform as well as just providing applications. We’ve done that with the Server Management Objects (SMO) and the other “xMO’s” (AMO and so on) that you can send programmatic calls to for anything you want. You can use high-level languages, such as C# to write SMO objects, and you can also use PowerShell to instantiate an SMO object and work with it. From there you have access to all of the major objects (such as instances, databases and tables) and the properties you can see and set and the methods you can run on them. With that power, the management layer is totally open to you. Our team creates not only graphical tools but this layer as well.
We’ve also begun to add “platform” features into the graphical tools, such as SSMS. You can add and edit your own templates, and starting in SQL Server 2005 SP2, you’re able to make your own reports and use them in SSMS. Many people are using these features to make SSMS a platform for their DBA’s and developers.
Giving you this platform/application combination It isn’t easy – making something that is a great application which can also be “talked to” is no simple task. And making something a platform complicates support a great deal. It gives the user the ability to do great things – or get themselves in a lot of trouble! But it’s worth the effort, and in the coming releases of SQL Server, you’ll see this trend continue.