Thursday, 18 August 2011

Advantages of Wix over Visual Studio setup and deployment project

Why are we using Wix over VS setup projects:
  • VS setup projects are buggy:

    For e.g. we noticed that when an assembly is referenced by two different projects which reside in different folders, then after adding it in separate folders the VS setup project doesn't add the file in the second project's folder.
  • VS Setup projects require Visual Studio to be installed on build server and with that come the licensing issues
  • No scripts needed to change set up settings: Wit Wix we do not need scripts which change the ProductName with the version info (which shows up on the UI) in the set up project file. You can pass in the new product name as a parameter to Wix.
  • Upgrades: It is really cool to tell users that they don't need to uninstall the application to get the one - it saves time and energy. They don't need to backup important data, they can trust us. Upgrades allow easy configuration file updates as they can be migrated to the new version without losing data. (Upgrades were possible with VS Setup projects as well, but I find with Wix it is much more easier)
  • Patch creation: With Wix you can create .MSP patches. It's a little complicated but is quite useful when you have an urgent quick fix to deliver and you don't want the user to go through again with uninstall-install process. Also patches could be uninstalled, so it is useful if the user only wants to test something - and if it doesn't suit him then he can uninstall the patch.
  • Run your application after installation: How many times did we think about adding that check box on the last screen of installation which says 'Run this application'? Well Wix allows you to do that.
  • Feature selection: If your application can have different sub-projects or modules and there are scenarios where some users may not use at all some of these modules then it is a good idea to not install them. For that you can use Wix and define features. You can set some features as not installed by default and some as mandatory.
  • It's all XML: Who doesn't like XML? No need of that fancy setup editor, but at the same time even the UI dialog boxes are in XML - so you need to spend some time to get the right layout.
  • Finally it is about control: Wix gives you the power and absolute control how you want the setup experience to be. But at the same time you also have a big responsibility to make sure that everything goes well. VS setup projects are good when the application is not used by many users, there are no frequent upgrades, no urgent quick fixes to deliver.

C# Reactive Extensions - Buffer and Window

I was going through Buffer and Window in RX, thought a few examples would help clear the differences. First create a buffer of even numbe...