Archive for June, 2009
Licensing System for your .Net Applications Pt. 2.3
by Shawn on Jun.23, 2009, under 3rd Party Tools
Today I’m going to review/test one of the licensing systems from the first post. The lucky system is Ionworx SerialShield. 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.
Ok, so now that we have the first licensing systems to test I’m going to cover what I’m looking for again, which is an out of the box licensing system capable of tracking licenses via a web service. I also am interested in the look and feel of the system, documentation, web site support and possibly the forum on the site.
IonWorx SerialShield
http://www.ionworx.com/serialshield.html
Cost Range: $531.00 - $1,061.00
Source Code Available: No
Model: Per Developer
Last Update (As of this post): 1/20/2009 (Aprox)
Last Version (As of this post): 1.9.11.3
VS Support: 2005/2008
What can I say about SerialShield, it’s supports non .Net Environments and seems like it was originally geared for a non .Net Environment. My initial impression from installing the software on my Vista x64 development system was that it installed to C:\ionworx\serialshield and did not have any
start menu options.
No I’d like to think I’m not a picky or prima donna ‘power user’ but I think some things are just fundamental, a start menu item is nice and don’t clutter my root with too many folders. But thats just a personal gripe and not really a major issue, so I’ll just forget it ever happened.
Once I found the application and fired it up I was lost, what was I supposed to do and how do I do it? I like to think I’m a reasonably smart person, although my co-worker would probably disagree I just started clicking around. Before I went any further I decided to try and locate the help or documentation, which I couldn’t find in the application itself so I looked in the directory and found a .chm file, just what I was looking for….or was it?
Some applications just don’t need a lot of documentation. I’m working on a tiny one that just doesn’t have a lot of features and is really simple, but even it has more pages then this, which is a sign of concern for something that I’m supposed to be integrating with my applications.
Although I spot them quick in everyone else’s writing and find none in my own spelling errors just jump out at me. No I have many spelling errors in my writings and applications and I’m a native speaker, the makers of this application may not be, so I won’t comment on it.
The SerialShield API SDK and overview are not too bad, and have a fair amount of information in them. But I want to try and use the application, I’m not even to the point of trying to use the API. So I clicked on the “How SerialSheild work” topic and started reading. Almost to the bottom of the page something popped out at me.
After I read that I asked the documentation, “Shouldn’t you be doing that for me?”. But it never responded. After, finally, getting the app into a state where I could start integrating it into my application I came across something strange, SerialSheild has a concept of a Serial ID and a Serial Number, which threw me for a loop.
The Serial ID is like the keys found of the back of CD or DVD, commonly referred to as CD-Keys. Normally those keys active the software product, as they are the license key, but in SerialShield those keys can be used to identify the unique version of the product. The Serial Number is the actual license key in SerialShield and it has to be locked to a license owner.
The License Number is actually a very long hex string. An example of it is (FEF90307-4AEE3351-03199F44-F9BDA0CB-4A8E5F23), 5 blocks of 8 hex characters for a total of 40 values, ouch. By adding a lock key to Serial ID and Machine ID I did get it to add another character making it 41 total values.
To get the trial working you need to generate and embed the trial Serial Number in the application, along with the AppliationName and ApplicationKey information. Now came the point where I wanted to try and get SerialShield working in my application, so I fired up the C# demo app and took a look.
First I noticed that the SerialShield.dll was not referenced in the application, but instead was using DLL Import, which means that the SerialShield DLL was not managed, for some that could be a deal breaker.
After that you had to do a fair amount yourself to get it to validate the license and do some checks. I must admit I stopped testing here as was pretty put off by this point and couldn’t see SerialShield further redeeming itself. To me this is fifty dollar application and I was extremely surprised to see it selling for a little over $500 for the manager and an additional $300 for the activation service. You can buy DeployLX for under that, the full version with source costs $999.99, so even that is cheaper then this product, and light years more powerful.
Licensing System for your .Net Applications Pt. 2.2
by Shawn on Jun.16, 2009, under 3rd Party Tools
Today I’m going to review/test one of the licensing systems from the first post. The lucky system is Eziriz IntelliLock. 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.
Ok, so now that we have the first licensing systems to test I’m going to cover what I’m looking for again, which is an out of the box licensing system capable of tracking licenses via a web service. I also am interested in the look and feel of the system, documentation, web site support and possibly the forum on the site.
EZIRIZ IntelliLock
http://www.eziriz.com/intellilock.htm
Cost Range: $179.00
Source Code Available: No
Model: Per Developer
Last Update (As of this post): 2/11/2009
Last Version (As of this post): 1.3.0.0
VS Support: 2005/2008 (MONO)
IntelliLock boasts a very polished user interface and an attractive feature set. The base product also include an basic managed code obfuscation system and a ILMerge system. IntelliLock also integrates with the Plimus e-commerce provider. ![]()
Unlike other licensing systems IntelliLock is an after the fact protection system and it wraps itself around the protected assemblies or executables, creating a little larger file. Which for the most part isn’t an issue. Also it a completely managed solution that seems to have been compiled with the “Any CPU’” mode in VS, which means the single protection can support x86 and x64 out of the box without an additional DLL.
The IntelliLock license is based on a .license file that is RSA encrypted that your users will place in the directory where your application is installed. Now this is my first issue, license files offer the best protection scheme out of any licensing model. First they can be encrypted better and hold more data then any reasonable license key and it’s more difficult to move and handle the file, which is my problem. Being a systems administrator in a past life I had to deal with license management and the licenses that required files were always the most pain in my butt. I had to store, backup and manage these files to ensure they could be used when needed and recoverable if there was a problem and don’t even get me started if there was also hand entered data, like a specific username and company that needed to be used with the file.
Because of my past problems with license files I never want to overuse them for any of my products. If I’m charging $250 or more I might consider it, but for products less then that I would be fine with a short and simple license key, even though standard license keys are the weakest form of licensing.
I downloaded and started playing with the trial of IntellilLock to see how the registration and trail screens work in a protected application. When I protected my assembly and tried to run it I was promoted with this following screen:
Clicking Ok just makes everything disappear, although it might be trying to show my app, but I see no interface nor do I get an error. So downloading the trial I’m unable to test and verify the whole licensing process or end to end flow. If this message box was shown first, then the normal trial or registration box that would be fine, but this isn’t testable at all.
Based on the options lock settings screen I’m making an assumption that the trial and registration screen is actually just a text box.
To me this isn’t the desired behavior, but it does appear to be somewhat configurable and you may be able to use the API to show a more attractive and custom interface. Although I’m interested in ‘out of the box’ licensing system and I don’t want to be calling a lot of API’s for what I consider default behavior.
Another thing I found interesting about IntelliLock was the License Management section and the tools provided. Unlike most other licensing systems IntelliLock can match licenses to customers and even activate/deactivate those licenses if needed.
Finally on the feature set I wanted to talk about the ASP.Net Management and Activation web services. This server support license generation via an e-commerce provider plus the license activation and tracking service. To me this is a vital out of the box requirement for licensing systems to have and setting up IntelliLock’s was extremely easy.
In addition to not being able to fully test the product I did some Googling and determined that EZIRIZ may have some communication issues with their customers and potential customers. Although I take forum and blog posts with a grain of salt I did try contacting EZIRIZ about some questions that I had with x64 compatibility, edition support and some others. Although I haven’t heard a response yet it hasn’t been long enough for me to be concerned.
Overall I liked the product, based on the following points, it’s price of $179.00 was attractive to me with all the available feature that IntelliLock had, it had built in ILMerge capabilities and even provided a basic managed code obfuscator. This means that for $179.00 you got a licensing system, customer tracking system, ILMerge system and a basic obfuscator, not bad. What I didn’t like was the ‘vibe’ I got from people who have used the company and complains about their extremely poor customer support and issues that IntelliLock might not be as compatible as it seems. Also the very simplistic and ‘cheep’ looking nag and trial screens were a little bit of a turn off.
UPDATE (6/23/2009): I have yet to hear back from EZIRIZ about my pre-sales question that I sent to support@eziriz.com, which was the email address in their application when I clicked the email link. From my experience if you don’t get any, or a good replay when your wanting to give them your money, it will be far worse when they already have it, such a shame.
Licensing System for your .Net Applications Pt. 2.1
by Shawn on Jun.03, 2009, under 3rd Party Tools, Development
In this the second (actually third) part of my testing out of Licensing Systems for the .Net Framework. Today I’m going to review/test one of the licensing systems from the first post. The lucky system is SeriousBit Ellipter. 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.
Ok, so now that we have the first licensing systems to test I’m going to cover what I’m looking for again, which is an out of the box licensing system capable of tracking licenses via a web service. I also am interested in the look and feel of the system, documentation, web site support and possibly the forum on the site.
SeriousBit Ellipter
http://ellipter.com/
Cost Range: $99.95 – $249.95
Source Code Available: Yes
Model: Per Developer
Last Update (As of this post): 1/27/2009
Last Version (As of this post): 1.4.1
VS Support: 2005/2008 (MONO)
After installing the product on my test VM I opened up the UI. My first impression is that it might be –too- simple, but I’ll take a spin around and see what I find. The key generation is fast I and I like the idea of a of a unique serial id. The key pattern is something I also like, it’s default is XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXX (4 blocks of 6 and 1 block of 5). The standard Microsoft key of 5 blocks of 5 is my sweet spot and this one only adds 4 more (MS: 25, Ellipter: 29).
What I did notice when I opened up the UI was that there was not register screen, nag screen or trial box, it just opened. It wasn’t until I tried to validate a generated serial did I get a message box.
Perplexed I decided to check out the Help menu and found only three options. No documentation or help like stuff in the Help menu.
What about the FAQ, maybe it’s got some documentation, well a little bit.
I decided to see what the “Enter Developer Key..” option contained so I opened up the page and noticed a couple of problems. 1.) “Or” seems to be misspelled and 2.) The label used for that text is covering up part of the key text box.
I hate being a nitpick and I’m sure every piece of software I have ever developed has UI issues worse then that, but this being a registration/license software I would assume that extra attention be paid to issues like this on the registration screen.
Now back to the serials that the system used, although just a bit long for me they do allow me to put in information like “Product Info” and an “Expire Date”. These are fairly nice features to have in a serial number, so I decided to test them out.
Here is a standard set of serials generated from Ellipter:
Now I’ve added my product information “My Prod 1.0”, which will be smaller then most real product names.
The size of the serial number almost doubled. This is something that a user should never have to type in by hand. As an ex System Administrator I can tell you that your customers will not always have copy and paste, and anything more then a Microsoft serial should throw up a flag for basic software. I would even venture to say that for most software the serial number should be half the size of a MS CD key.
Well now I want to limit my serial by a date, so I put in 12/30/2010.
Only three more characters then the last one, which isn’t too bad.
My overall review is that this is a extremely basic license key generator. There aren’t any of the features I really want in a licensing system and the key generated is a little be long for my tastes. It does provide functionality like registration, time and usage limits for trails and some other features but you have to code them yourself and use it’s API, to me that’s too much friction to do for each application I develop using the software. But it’s very functional system and had a price point that may make it attractive for people and companies on a budget.