It's been a while since I posted so I wanted to give everyone an update on my latest project.
you may or may not know, my company, Communicate Solutions, is in the process of releasing a shrink wrapped
software product to the world. The product is our home-grown content
management system. The content management system (CMS)
is named "ePortfolio" since it easily allows the creation of portfolio
websites... you know, those websites which showcase the project work
that a company/individual has done in the past. The software consists
of a custom designed website and an admin site. Someone can describe a
project and upload pictures of their work by using the admin site and
these updates are reflected on the custom site. It does a bunch more
useful stuff too; if you're interested, read more here.
an important part of any piece of software is the installation and
configuration of the software. The first thing a potential user/customer does
with a new piece of software is install it. If the software doesn't
install properly and work perfectly out of the box, you're in trouble.
You only get one chance to make a first impression. I believe this is
especially important for non-enterprise software.
needed an installer, I started evaluating tools. I've used Visual Studio setup projects before so I knew they wouldn't quite give me the
full set of features I want. I also researched some of the big-boy package creation software vendors like Wise and Installshield but they are not only
expensive ($400 min), I felt like they would mask some of the
complexity that I would need to understand in order to build a high
quality package and troubleshoot any issues that may (will) come in.
I decided to go with a tool called WiX 3.0. WiX is free, open source software which lets developers build installer packages by authoring an XML file. I'm not finished building the installer package for my application but it is clear that WiX is quite powerful. With that power comes quite a bit of complexity. The learning curve is quite steep because WiX markup compiles to build MSI files. That means you have to understand the rules of MSI in order to author a proper installer package. Believe me, this is no small task. There are a couple other nuances which add to the complexity of authoring an installer package with WiX; I'll go into more detail in my next post.
For now, here's a few useful links for authoring an installer with WiX:
- MSDN's Windows Installer Database Table Reference
- Many posts on Alex Shevchuk's blog, including this on explaining how a package gets installed.
- The original WiX tutorial by Gábor DEÁK JAHN
I know I'm going to struggle through a few more things, but I'll be much more confident in my ability to support the finished product because I'll understand the technology at its base level. Wish me luck completing this project! I'll be sure to post my lessons learned