Licensing Overview

This section provides an overview of the concept of licensing as it applies to software purchasing and pricing. It discusses some common types of licensing as well as some guidelines on when to use licensing mechanisms and when they aren't appropriate.

Licensing Defined

Licensing is the means by which valid users of your software distinguish themselves from users who do not have permission (license) to use your software. Whether you are writing GUI controls, an API of classes, or a fully functional application, you need some way to identify those who have the right to use your software and those who don't. A section coming up shortly provides a list of the various ways of identifying a user's right to use the application.

When to License and Protect

When you see licensing mentioned in the context of the .NET Framework, it is almost always referring to the licensing of controls and classes, and not to application purchase plans. If you have created a control that requires some kind of action on the part of the user before he can use it, licensing is definitely something you should consider. However, if you have created an application that will require a CD key in order to install, that technology is covered elsewhere. For that type of scenario, you might want to see whether encryption technologies would be useful.

As far as protection is concerned, all .NET developers should be aware of the fact that every managed application can be disassembled into its corresponding MSIL (Microsoft Intermediate Language). If some aspect of the logic and code in your application is too sensitive to allow curious users of your application to see, you should consider protecting your intellectual property. You'll learn how to accomplish that near the end of this chapter.

Types of Licensing and Verification

There are countless ways in which you can license your applications, classes, and controls. As new delivery mechanisms are created and Internet access becomes more ubiquitous, more licensing schemes are being created every day. The following list describes just a few of the software licensing schemes that can be facilitated by the .NET Framework:

  • Free This type of software is pretty obvious. There is no need for code-enforced licensing because the assumption is that anyone is allowed to use the software. Also under this umbrella is the case in which users must accept a license agreement to use the software, but are not required to pay a fee.

  • One-time fee To use your control, class, or application, the user pays you a one-time fee. This is either by buying a shrink-wrapped package from the store or purchasing it through your website, and so on. The user is then granted a license that does not expire to use your application.

  • Per CPU Many enterprise software packages charge on a per-CPU basis. A license is granted to the user and there is usually some runtime check to make sure that the number of CPUs on the machine is less than or equal to the number of licensed CPUs.

  • Per seat This is another fairly common enterprise licensing scheme. Each time the application is installed in a physical location such as a user's hard drive, it consumes a seat. Licenses are granted on a per-seat or per-installation basis. This is often enforced via an Internet activation mechanism for each seat; the activation found in many Microsoft products, such as Windows XP and MS Office, is an example of this type of licensing.

  • Per action This is sometimes referred to as per hit licensing. Each time you perform some action within an application or control, a check is made to see whether your license allows the action. This can be accomplished with a control that allows you to perform an action 150 times before requiring you to buy the full version or purchase more uses.

  • Subscription The subscription model is a fairly simple to understand model in which the user pays to use the application, classes, or controls for a certain period of time. When the time period runs out, the user is either charged for another period or the ability to use the product is revoked.

Fortunately for product developers, the .NET Framework's built-in licensing scheme enables you to implement all the preceding models and many others. The number of licensing models available to you is limited only by your ability to design and come up with new models.

    Visual C#. NET 2003 Unleashed
    Visual C#. NET 2003 Unleashed
    ISBN: 672326760
    EAN: N/A
    Year: 2003
    Pages: 316 © 2008-2017.
    If you may any questions please contact us: