My First MSDN Article – The story behind the story.


Today my first MSDN article was posted “Using the WiX Toolset to Integrate Setup into Your Development Process“. I must say it is a pretty cool but strange feeling to see it posted up there in black and white. What I thought would be a 6 page article turned into a 21 page introduction. There are currently no plans to do more articles but I do hope if this article goes over well that I’ll be asked to come back and write another few.

Anyway, the story how this article came to be is actually kinda’ interesting. You may not be aware of this, but most (all?) of the example code attached to articles on MSDN in the last year or so is actually packaged by the WiX toolset. It amuses me to think that the example code for an article about the WiX toolset was packaged by the WiX toolset. Not exactly as interesting to think about as the compiler that compiled the first compiler but I can be easily amused.

The WiX toolset was picked up for the job of packaging example code from MSDN when the then-recently-hired Chris Sells was looking for a tool that could be used in the automation of packaging. Chris had tried using VSI (the setup/deployment projects in Visual Studio) and found, as many developers do, that the VSI tool was not completely helpful. So Chris fired of some random emails to a few mailing lists that I hang out on asking how to build MSI files in an automated way. Naturally, I pointed him at the then-still-under-massive-development WiX toolset.

As Chris was reading through the documentation (WiX.chm) learning how to use the WiX toolset, he fired off an email to me. “Rob,” he said, “you should write an article for MSDN.” I was interested but didn’t think I really had anything to say. I told him to look up again sometime later.

Well, Chris pinged me at the beginning of the year asking, “You still interested in writing an article?” I thought now was the time. If I told him to wait again then he might not ask me again. So I said, “Sure, give me a month. I’ll write about the WiX toolset.” That is exactly what he was looking for.

I spent the first three weeks of February thinking about what I should write. There were so many things I could talk about, where was I to start? I actually came up with three or four different starting points before realizing that I needed to talk about something else first. Eventually, I realized, I needed to start at the beginning and explain why the WiX toolset is what it is. So I told the story behind my philosophy.

Everything in the article actually took about four days to write. I started on a Thursday evening and worked that evening plus Friday evening trying to get the first two sections right. I knew once the introduction of the article was done the rest would just flow. Honestly, I was more worried the article would end up being only a few pages long and Chris would want something else. However, once I got past the introduction Saturday and half of Sunday I wrote 18 pages, wrote the example code, and tested it multiple times to make sure everything worked. That ended on March 7th.

After a couple emails back and forth with Chris (over the next three weeks since I was crazy busy) we had the final draft that you now see posted on MSDN. Even now there are small things that I wouldn’t mind going back and fixing. You know make a sentence clearer, remove an extra word, or add something small that might make it a little clearer. But overall, I’m pretty happy with the result. Hopefully, you’ll find it useful too.

Comments (11)

  1. SwitchBL8 says:

    Very very nice article, Rob. Writing style and examples are clear, so the "fixing" you’re talking about is just you being insecure 😉

    But what’s with the "21 printed pages"? On ISO A4 I can’t stretch it to more than 13 pages.

    Keep up the good work.

    Reginald

  2. Fredrik says:

    Excellent article!

    It’s nice to see more and more documentation of WiX, but I’m still missing a guide how to package a WebService or ASP.NET webapp with WiX. Any pointers? (Please…)

  3. Christian says:

    WHY would one want Source-Code (or Word-Files) to be packaged into an MSI??

    ZIP-Files are such more convenient:

    Just unpack them directly below your download-folder and your done.

    But with MSI: Every little chunk of source code leaves an uninstall-entry and lots of stuff in registry.

    A tool to quickly unpack MSI-Files without installing them (As right-click in contex-menu) would be great.

    But this comment is not placed here correctly…

    PS:

    The WiX-Toolset is great!

  4. Reginald, you’re probably right. The perfectionist in me is shining right through. For example, it bugs me that near the end of the second section the word "goes" is there instead of "go". Oh well, I guess that proves the article was written and edited by humans.

  5. Fredrik, I think I saw some discussion how to use the IIS configuration in the WiX toolset out on other people’s blogs. Since you’ve asked, maybe I’ll write up something about them here (although I am woefully behind on lots of other topics as well, that MSDN article and all the writing I’ve been doing internally has taken a lot out of me). I’ve also got an idea for a three part (maybe more) set of MSDN articles to cover that kind of stuff. Let’s see how this article gets rated and if it goes well maybe MSDN will be interested in more.

  6. Christian, I believe that an MSI is used to wrap all of the content in a license agreement. While I agree that the content could be distributed through easier means if it wasn’t deemed necessary to have a EULA on the package, I don’t understand your concerns about using MSI. At a certain level, it’s kinda’ nice to know that you can go uninstall the package and everything will get pulled off your machine. I guess the packages do litter up Add/Remove Programs a bit… but I don’t know about the “lots of stuff in registry”. Sure there is the private Windows Installer data but that’s private data… why worry about it if it will get removed when you remove the package? <shrug/>

  7. rich says:

    One thing that really bugs me about WIX.chm is all the references to a "type 51" this, and a "type 7" that. I’m completely lost. Is there a reference for deciphering this terminology?

  8. Rich, yes, all that terminology comes straight from the MSI SDK documentation. Namely the documentation related to the Type column described here http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/customaction_table.asp. However, if you have suggestions how to improve the documentation please do send them to the wix-users at lists.sourceforge.net mailing list. We can fix it to make it more useful if we know what needs help most.

  9. Leon Zandman says:

    Nice article, Rob! I hope many more will follow. Maybe you could strike a deal with Gabor Deak Jahn and release the tutorial on MSDN?

  10. Bob Corrigan says:

    Great article, Rob – it’s been a heck of a ride, but I’m glad you stuck to it.

  11. Imagine a blog entry where I talk about my first day at PDC.

Skip to main content