I have somehow managed to create a simple desktop application with MySql DB (.exe file) using xojo. Now i need to know about two things
1) Protecting the application and licencing.
Through xojo forums i get to know that i should buy an Xojo plugin like pluginxojoQLRT or use external paid software like FastSpring, Enigma Protector, eSellerate etc. to licence it for third party.
Regarding this would like to know is there any other option available or any free software for protecting/licencing my application. Since i am in the learning curve, i would like to proceed with free software/trial versions initially and then go to the paid one.
2) Assuming that a third party has purchased my application who is in remote access, how can i update my upgrades to him may be after an year or renew my licence to him once it has expired.
or
Is there any xojo links or books available where i can get more idea on implementing the above said two requirements. Kindly direct me in moving forward.
Do guide me, if i am missing any basics in my understanding or is there anything more i should add to my understanding to sell my application to a third party.
I am asking this since i am new in this field. Sorry if i am wrong anywhere.
Lots of ways to do this, but here’s one way that you can do yourself.
Create a license code generator method that passes in an email address and license date which returns a license code. To validate you run the code generator and see if the entered license code matches. On app launch and whenever else you’d like, you can validate the license.
As a bonus, during validation, you can create a web page which contains a list of deactivated license codes to check against if anyone gives out their license or refutes a payment. If someone turns off their internet, you could require them to connect if not connected after x days since the last try. If a license is deactivated, show a generic message like “There was a problem loading. Contact support. Error 999” that you’ll recognize when the user calls in. That will give you an opportunity to address the licensing issue.
Of course, you can do everything yourself. Fastspring is about convenience:
They collect and handle all the taxes. This alone is a huge headache saved.
They protect you from fraud.
They have an actual documentation that is easy to understand.
There are humans working who are willing to help.
Yes, Fastspring is pretty expensive. But every time I look for alternatives I come back to Fastspring.
There are cheaper alternatives like Stripe. But you have to do more there.
Problem 2 depends on how you set up your license. You can add a timestamp to your license which then reverts your app back to trial mode if the customer doesn’t renew.
Just to add FastSpring is not a licensing software but an order fulfillment service, they will handle payments and shield you from payment frauds (as far as possible) and the collection and payment of the various countries sales taxes. If you have a Xojo Web license, you can develop and host a web app which could interact with Fastspring when an order comes in to generate a license key or file to be attached to the order so the purchaser could get the keys once payment is successful. Or just manually issue the license key or file from your end.
One great thing about Fastspring is that it cost you nothing to set up and there is no monthly fees. If you do not get any order, you owe them nothing. They only charge a percentage off your order price (depending on the plan you set up) for a successful order. If you issue a refund or there is a chargeback, you owe Fastspring nothing.
The other alternative would be to sell your Windows apps through the Microsoft’s Windows Store but they charge a whopping 30% commission per sale and do change their policy from time to time. Like recently, they just revoked some of my apps because they were not generating the numbers they were expecting.
We use FastSpring along with LimeLM for payment processing and licensing and fraud protection. Neither are inexpensive but Fastspring is really good about dealing the vagaries of sales taxes and EU VAT. If you absolutely need licensing protection for an individual computer I’ve not found a better way than LimeLM.
For updates we’ve used two different types. We’ve used Updater Kit from MonkeyBread Software which uses Sparkle on Mac and regular sockets in Windows and Linux. We’ve also used Kaju which uses sockets. They both have their charm and uses.
Thanks for all your comments. I have got to know a glimpse about FastSpring, LimeLM and GuancheMOS.
I need to know little more on it. My question is if i purchase any one of these( FastSpring, LimeLM, GuancheMOS), will it cover all the basic requirement to commercialize the software.
I know it provides licencing. But what about authentication. Do we need to concentrate on this aspect? Or is there anything more to overlook?
Fastspring is a payment processor first. You need at least one of those. Otherwise, you won’t get money. It can do licensing with AquaticPrime or you roll your own.
LimeML is for license validation and activation. Can be used together with Fastspring. I was looking into LimeML for providing timed trials. Unfortunately, they don’t provide this feature. Lime has monthly costs of 12$ per product.
Haven’t looked much at GuancheMOS (“serial number creation and validation Engine since 2005”). The website is an odd mixture of english and spanish. The name of the product itself is odd. But the pricing is attractive (110).
LimeLM does do timed trials (recent addition?). But yeah, it’s not a ‘cheap’ licensing system and if you have a lot of users that don’t have the machine connected to the internet the activation can be a pain. But we’ve used it on a several products and we have a number of clients using it and it does provide adequate validation and activation. I wouldn’t use it for a simple $5 application but if your app is several hundreds dollars it’s probably worth it.
LimeML only has sort-of timed trials. They want me to reset the trial time manually for each user which is what I do right now. Not too much work but annoying.