WiX

Glimpses of life with WiX v4.0.

Believe it or not, I sometimes get questions about WiX v4.0. "Rob, is there going to be a WiX v4?" "Rob, what's going to be in WiX v4?" "Rob, when does WiX v4 start?" "Rob, when will WiX v4 be done?" Before answering, I always make sure that people understand that WiX v3.5 is our focus right now because it is important that we support for Visual Studio 2010 and get Burn "v1" done. Then I mention what I mentioned here yesterday, WiX v3.5 slipped from March to probably September.

After it settles in that we’re not going to be starting WiX v4.0 right away, I start on the list of “what”. There are four things that I think will keep us busy in WiX v4:

  1. Pay down technical debt - we need to go through and do a huge scrub of the WiX codebase. Now that C++ code is supported by MSBuild, I think we’ll switch our hybrid of NAnt (for native code) and MSBuild (for managed code) to an all consistent MSBuild system. We also need to go refactor large chunks of code. In particular, the Binder took on some heavy debt as the new patching system was stitched into the code. I expect the Bundle work we’re doing now (for Burn) will further complicate that part of the code.

  2. Burn “v2” - the Burn that will ship in WiX v3.5 will be an awesome bootstrapper but I am certain there will be features proposed that we don’t have time to get in and get stable this year. In WiX v4 we’ll incrementally advance Burn until it becomes the first and last bootstrapper you need.

  3. Language improvements - this is what I want to focus on in WiX v4 . There are so many opportunities to make the WiX language easier to understand and easier to use. This area is so exciting to Bob and I that little things have been sneaking into WiX v3.5 (since we have more time due to Burn slipping). Bob blogged about the brand new MajorUpgrade element today and the Component element simplification earlier. With the freedom in WiX v4 to maybe do some small breaking changes (and add migration to WixCop.exe), I’m really looking forward to getting into WiX v4.

  4. Code generation - while my focus is likely to be on language improvements, I expect there will be some killer advances in code generation. There is heat.exe right now but that barely scratches the surface of what I think we’ll be capable of in WiX v4. Again, with the slippage of WiX v3.5, we might see some early prototype work of code generation showing up in WiX v3.5. But it’ll be WiX v4 where I think we’ll really have time to work on this.

So right now (aka: WiX v3.5) the focus is Votive support for Visual Studio 2010 (which is basically done) and Burn (which is definitely not). When WiX v4 starts and ends will likely be a function of how long it takes us to finish Burn “v1”. Cool?