Building an SSMS Add-In Using Redgate Ecosystem

On Friday I was finally able to spend a couple hours looking at the Redgate Ecosystem, which is essentially a framework for building an SSMS add-in. In about 3 hours I was able to download the framework, take the sample solution and change it to run a script to generate a database snapshot of the selected database, and distribute it to a couple other people via an installer. Some quick notes:

  • Documentation is very sparse.
  • Example is really just to get to menus, nothing that does anything. I’d like to see it have a couple real actions packaged into a class library so the new user would have a better template for adding a new one.
  • Example is in C#. Nothing wrong with that, but I learned in VB so the {‘s and ;’s and case sensitivity slow me down some.
  • The installer in VS2012 doesn’t seem to support adding in the framework msi, so the user has to do two installs
  • Once you see where the code goes, I’d call doing the implementation close to trivial
  • The current (as of Friday) framework requires SmartAssembly which isn’t free. Found out the hard way when a test user downloaded the framework and it was a different version from what I built on!
  • If you can write some .net code you can do this

Most people probably use a script to generate a snapshot script, works well enough that way. Is having it a right-click away better? Arguably maybe! It’s definitely convenient. I can see without much work being able to right click to run a whole variety of scripts that are commonly used, easy and low hanging fruit. Better value probably calls from launching a real dialog (think replication, partitioning, log shipping) to do common if annoying tasks.

I’m not clear how much effort is abstracted by using the framework. I know back in SQL 2005 it was considered non-trivial, not sure if that has changed. Using it definitely let me focus on the task and not the plumbing. I suspect the success of the ecosystem idea may depend on that answer.