A name, or if you prefer identity, is a profoundly important concept in pretty much everything. In software deployment identities serve as the foundation for versioning and dependencies which are pretty much everything for us. In ancient Egyptian mythology, Isis was granted power over the all powerful sun god, Ra, when he told her his true name. Ra gave Isis a bunch of other names before his true name which is similar to a problem we have in software deployment. How do you get the true identify of software? Well, ISO/IEC 19770-2 wants to be the solution and today's release of the WiX toolset makes supporting that standard trivial.
Before I show you how to use the WiX toolset to add software tagging to your product, I want to give you a little back story.
It's been said, "The best thing about standards is that there are so many to choose from!" This tongue-in-cheek comment pretty much sums up the reason I don't jump on the bandwagon of every standard that rolls by. Something has to happen to demonstrate that the standard delivers value and customers actually want it before I spend time writing code for it.
The chicken and egg problem that creates is not lost on me. If producers don't produce to the standard then the customers won't know to ask for stuff built to the standard. Then the standard goes nowhere. <smile/>
A few months ago ISO/IEC 19770-2 popped on my radar because Dave Welsh hunted me down inside Microsoft. Dave represents Microsoft for many standards and saw customers (mostly large companies deploying software) asking for a standard like ISO/IEC 19770-2 to identify what software is installed on their computers. He asked me how hard it would be to satisfy those customers via the WiX toolset.
I appreciated what Dave was trying to do and he made a pretty good case the standard would succeed but I didn't have a lot of free time at the time. But I was intrigued so over the last few months I slowly put together a prototype that grew into the solution available in WiX v3.6 today. Dave's eyes lit up when I showed him how it works. He was thrilled to see how little work it would take a producer to implement the standard. Simplicity, of course, improves the chances producers will adopt it.
So what do you have to do to implement ISO/IEC 19770-2 in your product?
- Reference the WixTagExtension (like any other WiX extension).
- Add the WixTagExtension namespace, like:
- Add the following element under your Product element:
<swid:Tag Regid="regid.1992-01.com.example" Feature="MyMainFeature" />
That's it. You just implemented the ISO/IEC 19770-2 spec.
This is just the beginning for the WixTagExtension. If you look at the WiX documentation, you can already see I plan to implement support for Bundles (aka: Burn) to write software id tags. This is also the first shot at the ISO/IEC 19770-2 spec so there is always a possibility I have a few bugs to fix. <smile/>
Oh, and before I let you go, this extension will work with the released version of WiX v3.5. If your company can't move to the latest hotness that is WiX v3.6, you can still use the extension. If there is sufficient demand, I'll package it up so it is easy to install on WiX v3.5.
So, consumers do you want software to have software id tags? Producers is this easy enough that you'd just add it to all your products? Feel free to leave your comment below since I'm really curious what people think.
And, of course, keep coding. You know I am.