With the .NET Framework, arguably the hardest part of building license-protected controls and classes is determining how to license your control. The method you choose to implement for licensing could influence the usability of the control and its ease of use for developers and consumers. This section briefly discusses some of the issues that come up when designing a licensing scheme.
Deciding on a Licensing Deployment Method
How are developers going to gain access to your controls? If you are going to be sending out CDs and special installation media, your licensing scheme might differ from controls that you make publicly available on the Internet. Making sure that you have decided how you will be delivering your controls to developers before you come up with a licensing scheme could prove beneficial.
Deciding on a Licensing Verification Method
The verification method refers to how you plan to verify that the user of your control has the right to use your control. Several schemes have been mentioned throughout this chapter. If you can figure out how to code it, you can use it as a verification method. Common verification methods include special user-entered registration keys (stored in the registry or other locations), web services, files on disk, hardware serial numbers, and much more. With the proliferation of smart card readers with personal computers, even more verification methods could become popular, including the biometric verification (fingerprint scanning) that you can now find on many popular PDAs.
Deciding on a License Purchase Method
How are you planning to sell your application? Will it be shrink-wrapped and put on store shelves, mailed to the customer, or purchased and downloaded in an electronic-only environment? All of these issues affect your ability to differentiate between legitimate users of your application and those without license. Regardless of the method of purchase, you have to assume that some of the users who purchased your application legally will distribute your application to users who did not purchase it. This is why some licensing schemes require additional information that only the legitimate owner of the software can provide, such as an original serial number on a CD or some other unique piece of identifying information that would not transfer with a copy of the software.
Deciding on a Licensing Method
Finally, after deciding how your control will be distributed and purchased, and how the rightful owners of your software will be identified, you can choose an appropriate licensing scheme. Licensing scheme refers to the list mentioned earlier in the chapter, such as per seat, per CPU, subscription, one-time purchase, and so on. If you know all the other things about the licensing implementation of your application, the licensing scheme that you choose should be a fairly simple decision.