I'm currently involved in developing a product (developed in C#) that'll be available for downloading and installing for free but in a very limited version. To get access to all the features the user has to pay a license fee and receive a key.
That key will then be entered into the application to 'unlock' the full version. As using a license key like that is kind of usual I'm wondering: • How's that usually solved? • How can I generate the key and how can it be validated by the application? • How can I also avoid having a key getting published on the Internet and used by others that haven't payed the license (a key that basically isn't 'theirs'). I guess I should also tie the key to the version of application somehow so it'll be possible to charge for new keys in feature versions.