I spent a lot of time this year writing and managing a book project. I will blog about that later, I promise. While I enjoy writing it really cuts into my play time. What do I do when I play? I write software.
This weekend I cracked open the code for SSIS Catalog Compare and began some much-needed refactoring. I noticed a couple things I didn’t like while I was tinkering around in the code. I fixed those things and was inspired to make more changes.
The next version of SSIS Catalog Compare is a lot faster than previous versions. I was executing code I did not need to execute unless and until certain conditions were met and some of that code was… busy.
In other places it wasn’t so much what I was doing. It was more how and when I was doing it. I cleaned and tightened the code. SSIS Catalog Compare is visibly faster as a result.
Since the days of pre-release I’ve been wanting to improve the object and the GUI by building a bona fide Connections object. Well I finally did it.
I added a Project Connections node to the Project node, shown here:
Internally, the SSIS Catalog treats Connection Manager properties like Parameters (mostly). The handful of differences made for some interesting testing use cases.
I also added Package Connections node to the Package node, shown here:
Adding Connections to the my Catalog object model doesn’t end with drawing pretty pictures; the new class facilitates additional scripting, as shown here:
Some of you requested this feature: the ability to separately script Connections Overrides (Catalog Literals). The feature is on its way!
This particular function generates a single script for overrides in all package connection managers. There’s facility for generating connection override scripts for each individual package connection manager. And the same functionality is available for project connection managers.
While tinkering with parameter value scripting I encountered an interesting use case: Attempting to script a parameter configured to use the Design-time Default value to the same parameter in another SSIS Catalog configured to use an Override (Literal) or Reference just wasn’t working. Why? I wasn’t “clearing” the parameter.
The use case was compelling and I believe I solved it. Now, when scripting Literals I “clear” all parameters that are not referenced. The same goes for scripting Reference Mappings, I now “clear” all parameters that aren’t overridden with literals.
My thinking is: If you’re generating Reference Mappings, you don’t want me messing with your Literals, and vice versa. I could be wrong about that. Pop over to DILM Suite’s Contact page and drop me your thoughts.
My goal is to release the next version of SSIS Catalog Compare in mid-October. Stay tuned!