Article Options
Recently Viewed
Premium Sponsor
Premium Sponsor

 »  Home  »  Reviews  »  Software Reviews  »  XHEO|Licensing
XHEO|Licensing
by John Spano | Published  09/26/2003 | Software Reviews | Rating:
John Spano

John Spano cofounder and CTO of NeoTekSystems, a Greenville, South Carolina technology consulting company. NeoTekSystems offers IT consulting, custom programming, web design and web hosting. We specialize in Microsoft .Net enterprise development and business design.

I have six years of experience in software architecture. My primary focus is on Microsoft technologies, and I have been involved in .NET since beta 1. I currently hold a MCSD certification, 2 MCTS's (Windows, Web) a MCPD in Distributed, 2 MCITP's, a Microsoft MVP, and have won the Helper of the Month contest for July 2002 in the devCity.NET forums.

Corporate URL: www.NeoTekSystems.com
Primary email: JSpano@NeoTekSystems.com
Alternate email: Jspano@devcity.net.

 

View all articles by John Spano...
XHEO|Licensing

Every once and a while one comes across a great product that does some needed function very well. XHEO|Licensing is one such. It is a comprehensive set of tools that does program licensing, and it does it very well.

Written totally in C#, it targets the .NET platform and provides licensing services for your applications and classes. It has many different kinds of licensing types and is very flexible, fitting all licensing needs. It will work with both Framework versions 1.0 and 1.1.

XHEO allows for all of the "standard" licensing schemes, such as windows activation style, central web licensing server, trial versions and serial number unlocking of functionality. It also provides ways to do custom licensing and "license on demand", which generates licenses when the user downloads or buys your product on the fly. In this review, I will walk through several of the common methods of licensing and give my thoughts on XHEO. I decided to try Window's activation, since it is fairly common, and a central web-licensing server, which is also very popular.

First we will take a quick look at the standalone interface that XHEO provides. It is designed to define your licensing schemes that you want use. After choosing what kinds of licensing you want, you generate a license file from it to distribute with your product, or tell your web server what licenses are valid.

The License Manager is simple to use and laid out well. To set up our license server for the Windows activation to run against, we simply run a wizard. It generates the license and license server for us. I created a quick C# application that shows a blank form to protect. Here is a screen shot showing the filled out license and properties.

Click for a full-sized image
(click for a full-sized image)

The wizard has also generated a web service that I have compiled. I didn't have to make any changes to the generated web service code, but it is fully customizable also. Jut make changes to the web service code to do any custom actions you want, such as writing to different database tables, or logging information when your product is activated.

Now let's take a look at the code required in our Windows application. I cut out the standard form code to just show the relevant parts. XHEO uses attributes to acquire licenses for classes. Here is the code to acquire a license. If the user hasn't activated the software yet, XHEO shows a dialog offering to activate it and the remaining grace period.

[ LicenseProvider( typeof( Xheo.Licensing.ExtendedLicenseProvider ) ) ]
public class Form1 : System.Windows.Forms.Form {
    private System.ComponentModel.Container components = null;
    private License _license = null;

    public Form1() {
        _license = LicenseManager.Validate( typeof( Form1 ), this );
        InitializeComponent();
    }

    protected override void Dispose( bool disposing ) {
        if( disposing ) {
            if (components != null) {
                components.Dispose();
            }
            if( _license != null ) {
                _license.Dispose();
                _license = null;
            }
        }
        base.Dispose( disposing );
    }
}

You will notice that the main worker code is in two lines; first the attribute on the class, and then the actual call to fill out the _license variable. Here is the default form the user sees if they haven't activated yet. It is customizable also.

Click for a full-sized image
(click for a full-sized image)

That's it. Just host the web service and XHEO does the rest for you! Very quick and easy.

To give it a slightly harder test, I decided to use the license server type of licensing. It differs slightly from the above activation type in that you can continually check the license server to make sure the end user has a valid license. In the activation server, the user only connects to the server one time, to register the software on a computer. With the license server, you can set up a set time period to check back with the server. This allows fine control over the end user's license. You could extend it without having to send something to the end user, or also turn it off should you need to (a simple flip of a bit field in the database).

The steps to set up the license are very similar to the activate server. We create a new license and give it a limit type of license server. After filling out the properties, we have the following.

Click for a full-sized image
(click for a full-sized image)

The license server wizard creates our license server for us and the code is exactly the same as above for the client application. When we create the license itself, it gets automatically registered with our license server. All that's left is to distribute our application. To our end user, the process is seamless, unless of course they are trying to steal your application!

Summary

Overall I found XHEO'S Licensing product very easy to use with loads of functionality. It will be able to quickly and effectively license your software any way you choose, from simple serial number unlocking to full web server licensing, and is reasonably priced for any budget. They also have a very good support team for any questions you have. The answered all my questions very well, usually in under thirty minutes. For more information and a trial download, go to http://www.dotnetlicensing.com.

How would you rate the quality of this article?
1 2 3 4 5
Poor Excellent
Tell us why you rated this way (optional):

Article Rating
The average rating is: No-one else has rated this article yet.

Article rating:2.25 out of 5
 20 people have rated this page
Article Score13695
Comments    Submit Comment

Comment #1  (Posted by Justin Weinberg on 10/03/2003)

Licensing
 
Comment #2  (Posted by an unknown user on 08/22/2005)
Rating
Adding a new limit as License Server, does not create a License server code for me. Neither did the Activation Server seem to create any .ASMX files. Am I missing something?
 
Comment #3  (Posted by an unknown user on 08/22/2005)
Rating
Adding a new limit as License Server, does not create a License server code for me. Neither did the Activation Server seem to create any .ASMX files. Am I missing something?
 
Comment #4  (Posted by an unknown user on 11/09/2005)
Rating
Never seen better.
 
Comment #5  (Posted by an unknown user on 01/16/2006)
Rating
How well does this protection work? Has it been hacked? What other options are available?
 
Comment #6  (Posted by Dave Bacher on 02/02/2006)
Rating
This product has some significant problems overlooked by the reviewer.

Xheo includes removeable devices in the machine key. For example, by moving the keyboard from USB 1 to USB 2, the machine key changes. By moving the keyboard back, the key changes again - to a third value - by moving a monitor between the VGA1 and VGA2 plug on a dual head video card, the key changes (assuming DCC capable monitor). Moving an iPod between fire wire ports changes the key, although subsequently plugging it into either port does not alter the key. Moving into range with a blue-tooth enabled PDA bound to the computer, or connecting to certain UPnP devices and/or printers also changes the machine key.

Basically, you should use machine keyed mode only if you want to explain to Joe User why plugging and unplugging his new digital camera caused your program to unlicense itself.


 
Comment #7  (Posted by Paul Alexander on 03/02/2006)
Rating
This is actually incorrect. While those values due affect the machine key, simply changing them will not invalidate the license. The activation system uses a tolerance level that lets you specify how different the machine must be before it must be re-activated. USB devices play only a very small role in such a system. In fact using the default settings 7 different USB devices would have to be modified before the license becomes invalid.
 
Comment #8  (Posted by an unknown user on 11/02/2006)
Rating
Just a word of warning: when you end up buying xheo, you can not do reinstall of your development environment anymore. Xheo does not provide a mean to transfer license to another computer.

Also, especially, when you are using a laptop computer with multiple docking stations, keyboards, mouses etc. you pretty soon end up in a situation that your Xheo licensensing license is no longer valid. In our case it took less than 6 months and we no longer can not use the licensing at all! Money down the drain...
 
Comment #9  (Posted by an unknown user on 06/11/2008)
Rating
Don't buy this product. You don't get any real support.
 
Comment #10  (Posted by an unknown user on 11/12/2008)
Rating
6y0dzvpl8z3c4plo
 
Comment #11  (Posted by an unknown user on 01/08/2009)
Rating
The software is full of bugs and their support is awful. They also charge you extra to get the bug fixes
 
Comment #12  (Posted by an unknown user on 07/31/2009)
Rating
how can i found out which os is accessing my application

 
Comment #13  (Posted by an unknown user on 08/08/2009)
Rating
Did anyone find uninstaller for DeployLX3.2? Or did they make it hard to remove their program on purpose? I just installed this program from XHEO, and could not find uninstaller. I wonder if they know ths 'basic' of programming.
 
Comment #14  (Posted by an unknown user on 08/08/2009)
Rating
Did anyone find uninstaller for DeployLX3.2? Or did they make it hard to remove their program on purpose? I just installed this program from XHEO, and could not find uninstaller. I wonder if they know ths 'basic' of programming.
 
Comment #15  (Posted by an unknown user on 08/08/2009)
Rating
Did anyone find uninstaller for DeployLX3.2? Or did they make it hard to remove their program on purpose? I just installed this program from XHEO, and could not find uninstaller. I wonder if they know ths 'basic' of programming.
 
Comment #16  (Posted by an unknown user on 08/08/2009)
Rating
Did anyone find uninstaller for DeployLX3.2? Or did they make it hard to remove their program on purpose? I just installed this program from XHEO, and could not find uninstaller. I wonder if they know ths 'basic' of programming.
 
Comment #17  (Posted by an unknown user on 08/08/2009)
Rating
Did anyone find uninstaller for DeployLX3.2? Or did they make it hard to remove their program on purpose? I just installed this program from XHEO, and could not find uninstaller. I wonder if they know ths 'basic' of programming.
 
Sponsored Links