With the new Oxygene 5.2 release, we have made some significant improvements to the user experience for our software licensing system.
Licensing is always a necessary evil. You gotta do something to enforce licenses, but you don’t want to go to the extreme and inconvenience the honest users (which are the only ones who see the licensing system, as crackers usually just completely remove it) any more than necessary.
Our licensing system always has been very easy-going and laissez-faire: Your licenses are stored in your account, and our software offers to automatically download the latest licenses for you — but you can also grab a license file from our website manually, if you run the software on machines that are offline. We have no “activation”, and no limit on installs — we trust our customers to do the right thing.
With the new version of the licensing system, which we internally call “Everwood Live”, we’re going the extra step to make licensing even more simple and more unobtrusive for you. This new system is on Oxygene 5.2, and it will also make it’s way into the all-new RemObjects SDK and Data Abstract 7 and into Hydra 4 later this month.
The first time you use one of the products in your IDE (Visual Studio or Delphi) or via of our tools such as the new Schema Modeler 7, you will be greeted with the following dialog:
As you install newer versions of the product, the way that our licensing system works is that an updated license file will be required (this is to prevent one leaked user license to entitle pirates to free updates for a full year). In the past, the frist time you used a new version you would be prompted for your account details, to download a new license. Not any more — Instead what you will see (if you are quick enough and pay attention) is this dialog:
Only if there’s a problem downloading your licenses (say you are offline, or — shame on you — your subscription has expired), all you be bothered with a dialog that needs your actual attention:
The UI in Oxygene 5.2 (and the other releases coming this month) is just the beginning of our plans for Everwood Live, and we are are going to to extend this further, including providing much better notifications of new releases (with direct download links), a new UI to manage and check your license and subscription status, and features that go beyond licensing to integrate your remobjects.com account with your product experience (think support, and/or bug reporting).
Behind the Scenes
The new Everwood Live is completely implemented in Oxygene (of course) and WPF 3.5 (because we need to support BDS and Visual Studio 2008). I need to admit that this has been the first project i have done using WPF in a log while (I implemented most of the EWLive UX myself) and i must say i was blown away by how nice and flexible WPF is for building classic Windows UI — the usual prejudice is that WPF is pinkly for fancy 3d graphics stuff — and my experience has really reassured me in recommending WPF as the way to develop Windows GUI applications, today.
EWLive itself is pretty simple; it talks to a few plain HTTPS APIs on our server, to authenticate a user (this happens only once, on the first login screen), to (re)download the license file for a user, or to get the list if current releases.
EWLive stores your user credentials in a secure manner, persisting only your username and an machine-bound “HMAC” that our server can use to authenticate requests for license files. The HMAC does not contain your password, but will be invalidated if you change your password on our website, and is thus fully secure.