So this week I attended a preview for Visual Studio 2010. In addition to database development, I do ASP.NET development and use Visual Studio 2008 for that. So that's why I was curious about the new Visual Studio 2010 rollout.
Up to this point, I haven't done database development in Visual Studio. I have not worked in the Team Foundation Server Edition. Like a lot of shops out there that are just SQL Server shops - or are just small and don't want to deal with TFS, I do database development in SSMS and if it's for SQL Server 2000, then I use Enterprise Manager and Query Analyzer. I augment these tools (albeit with some pain) with 3rd party tools like TSQL Unit for unit tests, Redgate Data Generator to generate test data, Redgate SQL Compare to create change scripts and schema scripts for source control, Redgate SQL Doc to generate documentation, and so forth. An announcement was made that will likely change all that.
The presenter announced that many of the database developer tools that have only been available in TFS Database Deloper edition are being added to the VS Premium license - and that for VS 2010 rollout, everyone gets an upgrade. So those with a VS Pro license and MSDN Premium will upgrade to the new VS 2010 Primium with MSDN Premium and will have the database developer tools. Finally these tools (which really in my opinion Microsoft should have made widely available to everyone doing SQL Server programmability tasks from the get-go) - finally they will be freed from TFS and will be made available to a much wider audience in the community - including myself. That's good for the community. But it could be better. The tools could be added to SSMS and the reach in the community would be even wider.
So coming up, I'll be presumably doing my database development there in VS 2010 Premium with the extra tools. To be honest, I'd rather have these tools available in SSMS. Wouldn't you?
Stepping back I think it's uncomfortable that development is shifting out of SSMS and into Visual Studio per Microsoft. I understand it intellectualy. I understand the economics. Microsoft has to be paid somehow to develop the tools and afford the development teams. But the "cultural shift" if you will feels odd.
Sure you can still do your development in SSMS. But nobody will respect you for it. That's where you go if you don't plan to do things right. You get what I mean, hopefully. If I'm right, most of us have been doing development in SSMS. Now Microsoft knocks on the door and says "Well it's called 'Management Studio' because it's mainly for management - not programmability. You do your development in VS." Oh. silly me. Silly us majority of the SQL Server community for doing our development in SSMS. That was silly. We should have been doing it in VS TFS Developer Edition all along.
But not many of us have done that. So to help us make the cultural shift, Microsoft is giving everyone an upgrade - and is giving a big chunk of the community the extra tools. Those who are on VS 2008 Pro with MSDN Premium get an upgrade to VS 2010 premium with the database developer tools included- so we'll get with the program. That's an up-front cost savings. Neat. But let's not forget that there's a likely cost hit when the license renewal swings around.
In my ideal world - the same world where my beverage is stirred by unicorns before being served to me - and where waterfalls are made of grape Fanta - those extra tools would go into SSMS.
I can't help but voice the following opinion. I think a lot of best practices for database development have been slow to adoption in part because the Microsoft tools have been locked in TFS.
Looking at the SQL Server community as a whole, from a thousand-mile view, I see that there's been a big struggle to do programmability development in the safety zone - adopting test-driven development practices, agile practices and so forth. That stuff has gone by the wayside. Sure there's a minority that have been doing this stuff. But there have been two choices. One, you augment your toolset with 3rd party tools and open-source tools patch things together and do it on your own, or two, you have the TFS Developer Edition and you use those tools - which I doubt accounts for much of the community market share. Both have significant barriers to entry in cost and time. So on the ground in the real world, these practices have been neglected and not picked up by each new wave of community members. In my opinion, some of the blame has got to be laid on the fact that the tools have been locked up there in TFS.
In community sites and forums like SSC, we've been talking about how to do TDD and Agile in database development outside of TFS. I've seen articles on organizing your project in SSMS, or using third-party TDD tools like TSQL Unit. That leads me to believe that a majority of the community aren't in TFS. So now starting with VS 2010, we won't have to be in TFS, but we will have to be in VS Premium and we'll get the tools that we really should have available to us to do things and do it right - and those of us who are used to using 3rd party tools to augment our toolbox will have an extra choice. But I'd rather these tools be in SSMS.
One last oddity to note. So we get the picture from Microsoft. You SQL Server Database Developers should do your database development in VS - you say. However, just recently Microsoft has branched out the SQL Server 2008 certifications into two certs. There's a separate certification for Database Developer and a test 70-433 for Microsoft SQL Server 2008 Database Development. However, you go through the certification and note that there is NOTHING that I'm aware of that relates to using these developer tools that have been locked in TFS. Nothing. Isn't that odd? We'll have these certified database developers who may have never so much as touched the Microsoft database developer tools in question! Interesting and odd.
The 70-433 material is all related to doing development in SSMS. Maybe I'm not so crazy after all for being culturally tied to SSMS for my development. I mean - the Microsoft certification team isn't pushing me out of there. Just put the tools in there - please. That will make it even more available to the community than putting it in non-TFS VS licenses.