Licensing System for your .Net Applications Pt. 2.4
Today I’m going to review/test one of the licensing systems from the first post. The lucky system is Manco .Net Licensing System. I’ve decided to review one at a time because the posts were tending to get very long in some cases, so I’ve broken them out. If the post isn’t too large I’ll see about combining multiple reviews.
So what I’m looking for again? An out of the box licensing system capable of tracking licenses via a web service. One that’s a good ambassador for my software product as it one of the first things my customers, or potential customers, will see. I also am interested in the look and feel of the system, documentation, support and possibly the community around the product or company.
Manco .Net Licensing System
Cost Range: $74.95 - $1,164.95
Source Code Available: Yes
Model: Per Machine
Last Update (As of this post): 6/1/2009
Last Version (As of this post): 4.1
VS Support: 2005/2008
The first thing I noticed is that the web services for the Manco licensing system seem to be split among a couple of different services a Floating License Web Service and a Activation Web Service, which seems strange. Additionally each service seems to be needed to purchased separately, or in a more expensive package, at a cost of $179.95 each. I’ll get on a soapbox for only the rest of this sentence and say I hate being nickel and dimed.
After downloading and installing the Manco Licensing System trial I got three new shortcuts to play with.
Because my VirtualPC image doesn’t have Microsoft Word installed I was unable to read the documentation. It’s seems strange that they wouldn’t just convert that to a PDF instead of forcing their customers to have Word or a Word Viewer install on their box, so I was unable to read that document.
The API documentation is just that, so there wasn’t much of a Quickstart for me there either.
What I did notice was that there weren’t any sample with the trial install and I had to download them separately. Looking at the code there were a large amount of licensing specific information that had to be setup and configured in my class.
Already in the start of this Windows Form class I have an attribute, private member and three calls inside my constructor. This isn’t so bad and I could completely live with it, but it does create a code smell that I’m not comfortable with.
Further down the class there is a large chunk of code that is the ILicenseKeyProvider members that have to be implemented due to the ILicenseKeyProvider interface that was added to the class. This is just a bunch of public properties that expose settings, all of them just have getters that return hard coded data.
There are a total of 12 property based settings that need to be implemented. It begs the question, why couldn’t most/all of these settings be implemented inside the license file. This is a lot of license system implementation leakage that now appears inside my UI code, that I don’t think should be there.
Finally it appears that you have to write your own license interface. Now this has some great benefits, for example you can make as nice or as plain of a form as you wish. But not proving a basic one I think forces more work on the users, as for every application they either need to clipboard code it or write it again. Having a default, elegant but simple, licensing interface that can be overwritten by your users, if they want to, is the best solution in my opinion.
The main license creation and management interface seemed ok, but cluttered and possibly a little complex. But it does try and integrate some business elements, like sales and other features.
What I noticed was that you needed a customer or sale to generate an unlock key, which means you will have to generate a key after a sale and will require you to integrate this with your sales pipeline. For small software products it probably best to generate 5,000 keys and allow your POS solution to dole them out. The unlock key is very long, so it’s a copy and paste solution only, which I’m not a fan of for 90% of my products.
I’m not a fan of implementation leakage from Licensing systems and I believe that there should only be a couple of lines of code, a reference or two and a file in your solution to accomplish the 80% scenarios. If I need something more complex, like my own licensing screens or logic, then I have no problem with the leakage. The Manco .Net Licensing System seems like it has promise, but feels like the they tried to do too much and missed the mark across the board. Also their prices and pricing scheme drive me a little batty.
Final thoughts; it’s too expensive and it seems disjoined have 4 downloads to get it all. Their License Manager application is hard to navigate, use and is overly complex. The sales/customer system while well intentioned seems overly restrictive, license keys are way to long for the vast majority of applications and their is code smell and implementation leakage in the client application. But the few places on the grand old Internet that do mention it say that their customer server and support is good, which honestly can make up for a lot.