One of the issues that you need to deal with after you launch your software is managing software updates. There are plenty of issues associated just with getting the versions to your customers, which I'll address in a future article. Right now, I'd like to talk about dealing with the registration for software, because some companies are, in my mind, doing it completely wrong.
The kind of update I'm talking about here is a bugfix release. You roll these out when you've found a flaw in your program and you'd like to get the fix to your customers. Bugfix releases should not ask for registration information. That might sound strange coming from somebody who sells registration software, but it's something that I'm serious about.
Recently I upgraded my computer, and I was forced to reinstall Delphi. The version I'm using is a few years old, and it's had a few upgrades over the years. Unfortunately for each update I'm forced to re-enter my serial number and registration key. I'm annoyed the first time that I have to do it. By the sixth time (and yes, there were six updates) I'm not thinking very kindly of Borland.
To save your customers this grief there are a couple of things that you can do. The first and easiest is to put all validation directly into your program, rather than in the installer. That keeps your program protected and gives maximum convenience to your users when they are installing bug fixes.
The other option is to check existing registration information during the install, before asking the user. You should be writing registration information to a file or to the registry. Have your installer read the information before popping up the registration screen. You can then either pre-populate the screen or skip it entirely. Either way, you've saved your customers a lot of trouble.
How updates are handled is a delicate point, and one that most developers don't think about until after they've shipped their product. Even my product, Lazarus Registration, doesn't really get this right. You can bet that the next release will.

![View your cart items []](/sites/all/modules/ecommerce/cart/images/cart_empty.png)
