As SQL Server 2008 is practically now a done deal my thoughts have turned to what will come in future versions. One feature I would like is something I'm notionally calling "package parts". Let me explain.
Today in SSIS we build, distribute and execute these things called packages. Packages are fairly large, verbose, non-descript BLOBs and that has some rather negative implications such as:
- Changing anything in the package, even something as small as moving a container one pixel to the left, causes the package to get checked out (assuming you have your packages under source code control)
- Support for multiple-developer teams is limited. If you have two people building dataflows then they have to be working on separate packages.
- The only method of reusing tasks is copy-and-paste
- Comparing two packages to check for differences and hence merging them together is not possible
I'd really like these problems to be alleviated in a future version of SSIS and this could be done by breaking the package into separate parts. In other words, containers (and remember, tasks are a type of container) exist as separate files in solution explorer. This would allow:
- Check in/out of containers rather than a whole package
- A developer could be building a dataflow without preventing another developer from working on another dataflow
- Containers could be instantiated in different places. Define once, use many times - isn't that the premise of code reuse?
- Compare tools could be built that understand how a container gets defined once it is serialised as XML without having to worry about extraneous matter such as workflow and designer formatting
Does that sound like a good idea? Let me know in the comments and if there is enough interest then I'll submit this to Connect.
-Jamie
UPDATE: OK, 2 days on and there have been 18 comments saying "yes" and none saying "no". Hence, I've submitted this here.