Should SSMS be built into Visual Studio?

SQLServerCentral sends out a daily email and today had an interesting offer to take a survey from redgate.  They were asking questions of Visual Studio developers that heavily use/interact with databases.

If you fit into this crowd help out by taking their survey here.

Initially I really distrust the idea of having SSMS like functionality within VS.  I know it is already there but I just have really avoided them, though I try to use them from time to time just to give them the benefit of the doubt.

For some reason Microsoft tends to like to dumb down anything in VS that’s not strictly developer oriented.  This is a huge separation from their current “give the power to the programmer” mentality when it comes to features like VS Add-Ins, NuGet, T4 templates, EF4 Code First, etc.  For some reason DBA tools have fallen into this “black magic, we’ll hide it for you” dark side of VS.  So, since VS 2003 and probably a little before, any database interaction was kept at a very high level.  You simply couldn’t dive right into necessary tools like T-SQL easily.

Consequently I’ve always developed with VS and SSMS side by side.  So, I’m in that old school stick in the mud crowd waiving my cane in the air shouting, “I’ll give you my SSMS when you pry it from my cold, dead hands!” Call me old fashioned.

As SSMS just continues to improve (throw SSMS Tools and other indispensible add-ons in the mix) I have had no desire to even attempt DBA functions within VS.  Honestly, SSMS is becoming so nice to use it is pretty much on par with my respect of VS 2010 as the developers IDE.  SSMS is the DBA’s tool of choice for me and quite happily so.

If they literally took SSMS and put it into VS I think I’d still avoid it.  The need to Alt-Tab between the two really creates a mental context switch in my head that helps my productivity.  Read my post on Alt-Tab Aids My Mental Context-Switching for more info on this, but it is a real productivity asset to think about.

If switching between SSMS and VS tools (literally and mentally) all inside the IDE were any more complicated than a simple Alt-Tab I would not be inclined to switch. 

It would need to offer enough extra "can’t live without" features to overcome the current simplicity of Alt-Tabbing between VS and SSMS.  For instance, I would love the idea of being able to code against a dev database and having the IDE help generate a change script, all which would be kept in source control.  The entire database design should be kept in my source control as well, so that when I add a column or an index the change script and create script are entered on the next commit.

Alt-Tab Aids My Mental Context Switching

A recent blog post about combining the functionality of SQL Server Management Studio within the Visual Studio IDE got me really thinking.

Any any given moment I have at least 6-8 applications running, usually quite a bit more.  When developing an app I usually have a work environment consisting of VS 2010, SSMS, Firefox (with at least 6 tabs open), Outlook, Word, etc.  Each application is only an Alt-Tab away.

I initially rebel at putting SSMS DBA features into VS2010 (yes, I know they are already there, I just don’t use them).  Much of this has to do with the fact that historically these tools have lacked functionality, but I now realize a large part is the mental context switching that Alt-Tab provides.

If someone walks into my office or a phone call grabs my attention I can easily Alt-Tab to another app, or simply Ctrl-T to open a new tab in Firefox (which starts at Google) ready to handle that particular request.  It doesn’t matter what I was doing before.  For some reason Alt-Tab simply puts my current mental state on the stack (forgive the metaphor Winking smile) ready to be called up when I Alt-Tab back sometime in the future.

Switching between different duties using Alt-Tab seems to really trigger a context switch in my head.  All this happens in the .2 seconds it takes to press Alt-Tab.

While DBA duties are really integrated into my development process (in my work I am the developer and DBA) I love the clean separation of concerns when I Alt-Tab between VS and SSMS.  Even if SSMS were completely duplicated within VS I don’t think I’d care for it.  There is just such a satisfaction with mentally putting on my DBA hat for SSMS work, even if it is simply for 20 seconds while I add a column to a table.  It just seems cleaner.  Unless the integration of the two tools really provides support that each tool individually couldn’t accomplish I actually see less value in combining these.  Additional features, such as integrating source control over my database assets and generating data migration scripts, would prepare me to mentally believe these two tools really should be combined.

Now I guess I need to start to evaluating add-ons and other tools based on how easily I can task-switch the context in my head when I need to use them.

Backing up to iCloud Just Doesn’t Fit for the 99%

We use iPads within our organization and the use is growing.  This starts to present IT support concerns, especially when major iOS updates like iOS 5 come out. 

iCloud is touted as being a great answer to several issues because it allows you to backup devices over the Internet.  I agree that this is a great idea for consumers and potentially for enterprises, but at the moment it doesn’t live up to the desire initially. 

Doesn’t Work for the Enterprise Yet

Unfortunately iCloud really doesn’t seem to be a solution for enterprise. 

iCloud might work for carts if:
•    It wasn’t limited to 10 devices (Apple doesn’t intend this for enterprise use? Not even a single cart?)
•    It could back up a single image to the cloud, that could be restored to any number of devices, such as 30 devices in a cart.  No sense in backing up numerous duplicate images.
•    Restores could be done in batch without having to start it from each iPad individually (now we’re back to using iTunes on the cart)

Doesn’t Work for the Average Consumer Yet

Regarding both the enterprise and consumer points of view iCloud’s initial 5GB may seem generous compared to other cloud offerings that typically only give 2GB, but for a standard iPad that holds 16GB the initial 5GB gets filled quickly.  Worse yet it gets filled without any real knowledge of what’s going on.  With Dropbox and others I am quite aware when I put large files into it.  With my iPad I may download a few apps, take a few videos, and suddenly my iCloud storage is out of space when I had a gig available yesterday.

It gets worse when our users are backing their phone and iPad to the same iCloud account. Quite quickly they are subjected to needing to upgrade their iCloud storage.  $100 a year (for one iPhone and one iPad) is pretty hefty. 

Not to say that Apple’s pricing isn’t in line with other similar cloud storage vendors, it just doesn’t seem to translate well to “iDevices”.

Works for the 1% (Occasional Low-End User)

The iPad is great for my grandparents, who currently have a WebTV.  They get around the Internet great but I don’t want to give them a computer that you have to update, keep the latest codecs, prone to failure, etc.).  An iPad would be a great fit.

They probably won’t be power users, will play with occasional apps and would get a great kick out of sharing a photostream or using FaceTime.  I think they would easily fit into the 5GB iCloud capacity and take great advantage of updating to future OS versions over the air.  Right now I think this is the best target market for iCloud.  Unfortunately it’s a very small target market.

I hope that Apple will address these issues in some way in the next few “versions” of their iCloud support.  I have no doubt that they can and will.  As the next couple of years go by cloud vendors will offer more and more space and lower prices and interoperability with more devices.