Author Topic: Tools for deployment. Reccomendations  (Read 18866 times)

0 Members and 2 Guests are viewing this topic.

Atook

  • Swamp Rat
  • Posts: 1029
  • AKA Tim
Tools for deployment. Reccomendations
« on: December 11, 2015, 02:56:09 PM »
Today I'm looking at bigger picture; the one beyond LockedTransactions and ObjectIDs.

I'm hoping to sell the app I'm working on, which will mean I need to come up with an installer package. Any tools you like to use for that?

Also, I'm hoping to use a subscription model, are there any libraries or services you use and like that handle the licensing of your apps?

MickD

  • King Gator
  • Posts: 3636
  • (x-in)->[process]->(y-out) ... simples!
Re: Tools for deployment. Reccomendations
« Reply #1 on: December 11, 2015, 05:43:30 PM »
For VS2013 Community Edition I think you can download the installer package for free, I've been using InnoScript for a couple of years and it's pretty easy to use and quite powerful in the right hands.

For licensing, I'm using Infralution http://www.infralution.com/licensing.html
It works well, but I might look into building my own licensing server to allow for users to subscribe on a month by month basis making the terms more flexible. I will just have my app ping the server to check credentials every week or so for updates and license check.
They also have a server version, but it is a Windows stack whereas I'm using a Linux server which I'm more familiar with (but that might change).

It really depends on how much you want to lock up your code, most people are pretty honest and you just need to lock things up enough to encourage them to pay to use the app. Being a .net app, even with obfuscation it is not that hard to crack but again, those who want to do that are the minority and they have to live with themselves :)

Once I get my app sorted I will most likely open source it as people are still willing to pay if your fees are reasonable otherwise they need to build it themselves which for most is outside their business model anyway. Being open source can only help the quality of the application as well.
"Programming is really just the mundane aspect of expressing a solution to a problem."
- John Carmack

"Short cuts make long delays,' argued Pippin.”
- J.R.R. Tolkien

CADbloke

  • Bull Frog
  • Posts: 342
  • Crash Test Dummy
Re: Tools for deployment. Reccomendations
« Reply #2 on: December 12, 2015, 07:41:39 AM »
I'm going to be doing this in a month or few too with www.tvCAD.tv. I am leaning towards http://wixtoolset.org/ to build the installer and http://www.ssware.com/cryptolicensing/cryptolicensing_net.htm for licensing. I also looked at http://wyday.com/limelm/ for licensing. They have an interesting articla at http://wyday.com/limelm/features/why/

Crypto do an obfuscator too. http://www.ssware.com/cryptoobfuscator/obfuscator-net.htm - so does Infralution.

There's also https://github.com/dnauck/Portable.Licensing if you're interested in an open-source solution

With things around like https://github.com/0xd4d/de4dot then you know that it's going to get cracked if some %^$^ really wants to crack it. If you have a market in those countries where IP is not respected especially well then it may be worth your while making it hard for them but offering great support and regular, valuable updates will put you ahead of the flea-markets. You probably don't want those customers anyway. I'm still contemplating obfuscation for my as-yet unreleased apps. It may be more trouble than it is worth.

Services like http://www.fastspring.com/ cost a bit more than Stripe, PayPal etc but they also automate a lot more of the business side of selling and collecting your dosh.

Mick has done a lot more of this than me, FYI.

See also http://www.theswamp.org/index.php?topic=47633.0 & (if you have all day) http://www.theswamp.org/index.php?topic=41844.0

BlackBox

  • King Gator
  • Posts: 3770
Re: Tools for deployment. Reccomendations
« Reply #3 on: December 12, 2015, 10:24:37 AM »
Consider applying for a free Microsoft BizSpark membership as well.
"How we think determines what we do, and what we do determines what we get."

CADbloke

  • Bull Frog
  • Posts: 342
  • Crash Test Dummy
Re: Tools for deployment. Reccomendations
« Reply #4 on: December 12, 2015, 02:47:12 PM »
Consider applying for a free Microsoft BizSpark membership as well.
Definitely. I did this year's ago and it was a great head-start. You should also try your local Autodesk developer network contact for a free membership for the first year or so.

tetrahidrocannabinol

  • Guest
Re: Tools for deployment. Reccomendations
« Reply #5 on: December 12, 2015, 06:13:17 PM »
Installers:
If you have enough money:
  Caphyon Advanced installer
In another case:
  InnoSetup (This is highly customizable, but you need some minimum knowledge about pascal)

Licensing systems:
CryptoLicencing It's expensive (read carefully the comparison between the different versions)
Another (free/opensource) licensing system based on signed-XML files:
 http://www.hibernatingrhinos.com/oss/rhino-licensing

I have enough experience in these matters for letting me give you some advice:
- You really need that kind of  licensing systems (online activation, track the number of activations...)?
- Have you taken into account the amount of money that you'll have to invest?
- Are there any (real) possibility that someone tries to crack your software?

In any case, everything can be cracked, and even keygened, especially things written in .Net and Java.

Therefore the right questions are:
- Our application will be published or created for a single client?
- Is it a general-purpose app or have a limited distribution?
- How much money can win with our app?
- ...
Having clarified that, we can decide how much to invest (time and money) in the licensing system

MickD

  • King Gator
  • Posts: 3636
  • (x-in)->[process]->(y-out) ... simples!
Re: Tools for deployment. Reccomendations
« Reply #6 on: December 12, 2015, 09:16:15 PM »
Yep, it really depends on your target market as Tetra' said, you can waste a lot of time and money 'trying' to make something secure but there's no point unless your app is high profile like AutoCAD or similar.
It would be quite easy to invest more time and resources than you make off sales, particularly in the early days of your release.

If your app is sure to be popular then I think your pricing model will make the difference between being a major target or just a hobby for crackers. Until recently AutoCAD has been expensive as a one off purchase, particularly for the one man operator. It's a multinational company and high profile, just the sort of software a cracker likes to crack.
Now they have a subscription model and regular updates it makes it a lot harder for crackers to keep up and users are more likely to pay in installments as it's easier on cash flow. Most will pay if your app is productive for them and affordable.

As an aside, the creators of DOOM made most of their money by giving away their app as shareware and you had to buy it to finish the other levels of the game. People thought they were crazy at the time, but it more than worked well for them.
While not free, the subscription model has replaced the shareware model as it's much more affordable to get in and you may be able to incorporate a bit of both to encourage new users.

Remember, a bird in the hand is worth two in the bush ;)

"Programming is really just the mundane aspect of expressing a solution to a problem."
- John Carmack

"Short cuts make long delays,' argued Pippin.”
- J.R.R. Tolkien

tetrahidrocannabinol

  • Guest
Re: Tools for deployment. Reccomendations
« Reply #7 on: December 12, 2015, 10:24:08 PM »
The subscription model is killing the software industry. This model only benefits large companies.
Please, do not confuse a maintenance contract with the above, they are very different things.


Until recently AutoCAD has been expensive as a one off purchase, particularly for the one man operator. It's a multinational company and high profile, just the sort of software a cracker likes to crack.

You are, partially , wrong.  There are many more reasons why a team of crackers will be interested by a particular soft, such as "cracking" a key based on RSA. If you could see the "Scene releases", you would see that being a multinational is not something that motivates these teams.



tetrahidrocannabinol

  • Guest
Re: Tools for deployment. Reccomendations
« Reply #8 on: December 13, 2015, 12:06:36 AM »
The dark side of the Force

I just find an app created by a user of this forum  has been "cracked" by a team of Russian crackers.
The positive side->That application is now known in many more countries ("free advertising"). It seems that their obfuscator was not too good :whistling: (just a couple of days ago I read a topic in this forum related to these two products)
« Last Edit: December 13, 2015, 12:10:19 AM by tetrahidrocannabinol »

Atook

  • Swamp Rat
  • Posts: 1029
  • AKA Tim
Re: Tools for deployment. Reccomendations
« Reply #9 on: December 13, 2015, 02:23:09 AM »
Thanks for the input guys.

Right now I'm looking at loading my DLL when CAD starts up. Is the best way to execute this to put in a registry key during install? Like this thread indicates: http://www.theswamp.org/index.php?topic=33538.0

Regarding subscription, I'm thinking that's the way to go for now. It'll be a fraction of the cost of the competition, and allow me to keep improving the software if I'm getting revenue. It's a relatively niche market I imagine a few hundred users tops. I think a normal license would saturate the market in a couple years. I'd like to run annual subscriptions. For the first few years I see 3 or 4 updates a year. The SSWare link CADBloke posted looks pretty good.

As far as locking the code down, I'll try and make it somewhat difficult, but if Adobe and Autodesk can't keep ahead of the hackers, there's not much point in putting a lot of effort into it. Better to make it cheaper to buy than the hassle/doubt of getting a cracked copy. If I don't make enough $$ to make it worth my while, I'll stop developing, and just use it internally. :)

I'll certainly look into the free starting on Bizspark, thought I'm not sure what I'd use it for, I've currently got Linux hosting up and running.

I'll post here on any findings I have as I prototype my install/licensing process.

CADbloke

  • Bull Frog
  • Posts: 342
  • Crash Test Dummy
Re: Tools for deployment. Reccomendations
« Reply #10 on: December 13, 2015, 05:26:57 AM »
The subscription model is killing the software industry. This model only benefits large companies.
Please, do not confuse a maintenance contract with the above, they are very different things.
I disagree on both counts but, as with all things, "it depends". My software (tvCAD) is B2B (Business to Business). They want ongoing maintenance. They also tend to have a much easier time finding op-ex than cap-ex, subscription jumps both of those hurdles. tvCAD's pricing is pretty-much the same as AutoCAD's, most of my prospects are far more interested in an annual subscription than an outright purchase. Those that are after an outright purchase, I told them they can have a perpetual license after a 3-year subscription. They are also interested in monthly subscriptions for short-term projects and burst capacity.

As for cracking protection, I'm retreating from the idea of obfuscation. There is plenty on the Internet about the proliferation of cracked versions of Adobe Photoshop actually having a positive contribution to its revenue because the users were well-accustomed to the app and would pay for it when they could afford it or when a business bought it for them. As an aside, Adobe's revenue is also doing well after they forced subscription on all their customers but I digress.

Back to crackers, they were never going to pay anyway. There's a discussion and links at http://www.theswamp.org/index.php?topic=46325.0 and http://stackoverflow.com/questions/2525/net-obfuscation-tools-strategy. Perhaps reverse-engineering is a problem you anticipate but my feeling is that if reverse-engineering your product provides more value than paying for it then there's a message there. Also, obfuscation adds an area where your app could have problems, that area is a black hole and that worries me. Ultimately the value of obfuscation depends a lot on what you're doing and what you want, who your market is, what resources you have, your evaluation of the risk and extra effort (obfuscated stack-traces anyone?). Are you better off using the time to offer better support, write more tests, add more features, focus on sales, drink more beer? Your time is a finite asset.

from http://wyday.com/limelm/features/why/ (it's worth reading)
Quote
The point of licensing isn't to stop crackers from cracking your software. The point of licensing is to increase your revenue by preventing casual piracy (using serials over and over again). There is real money to be made by stopping casual piracy.

Haha, casual piracy ... http://www.smh.com.au/it-pro/government-it/police-settle-piracy-dispute-with-software-giant-20130130-2dkwq.html ... oops.

I feel if the licensing is tight and easy to use then you are most of the way there. If crackers want to break in an show your app around then that may actually work in your favour if your app is always newer, better, supported and fairly priced and easy to use and it actually works!!!. Seriously, if you are doing subscriptions then manage the reminders properly - you would be shocked how many $x0k support contracts neglect this step and lapse. That's a #FAIL, folks. Services like Fastspring also handle dunning management for you which is why they cost more but they also earn more. Personally, I outsource the hell out of boring stuff that is NOT my core business - I just don't need any more complexity or distractions in my business nor in my life.

It wasn't until I wrote this response that I came to realise that perhaps "obfuscation is a big hack", it feels more and more like the 80% of work giving 20% return when you combine it with licensing and call it "software protection".

Yeah, I got off-topic a bit but I think this is a consideration when you're thinking deployment, subscription licensing etc.

SEANT

  • Bull Frog
  • Posts: 345
Re: Tools for deployment. Reccomendations
« Reply #11 on: December 13, 2015, 06:11:14 AM »
. . . .

I just find an app created by a user of this forum  has been "cracked" by a team of Russian crackers.
. . . .

Which one?
Sean Tessier
AutoCAD 2016 Mechanical

Jeff_M

  • King Gator
  • Posts: 4094
  • C3D user & customizer
Re: Tools for deployment. Reccomendations
« Reply #12 on: December 13, 2015, 01:25:33 PM »
Right now I'm looking at loading my DLL when CAD starts up. Is the best way to execute this to put in a registry key during install? Like this thread indicates: http://www.theswamp.org/index.php?topic=33538.0
I think the preferred way now is to use the Bundle format. If you want to post your app in the Autodesk App store you will need to use this method. http://adndevblog.typepad.com/autocad/2013/01/autodesk-autoloader-white-paper.html

Atook

  • Swamp Rat
  • Posts: 1029
  • AKA Tim
Re: Tools for deployment. Reccomendations
« Reply #13 on: December 13, 2015, 03:51:44 PM »
@CADBloke: I completely agree with you regarding obfuscation and cracking software. The key is to make it easier to buy than hack. I used to never consider subscriptions, but cheap subscriptions such as Adobe's Photoshop bundle for photographers is $5 a month have turned my opinion on that. Your application of Pareto's 80-20 rule is probably pretty close to the truth. Sure you'll lose some sales to crackers, but they were never going to pay anyway. Since we're selling to businesses, it's a tax write off anyway. Also, thanks for bringing up subscription reminders, I hadn't thought of that, but it makes perfect sense.

@Jeff_M: The bundle format looks pretty good, probably cleaner than installing in a folder in /Program Files. I hadn't considered the Appstore yet, looks like they've even got subscriptions, licensing and billing figured out. I'm hoping to make the app available for CAD alternatives such as Briscad, but I can worry about that deployment when the time comes.

CADbloke

  • Bull Frog
  • Posts: 342
  • Crash Test Dummy
Re: Tools for deployment. Reccomendations
« Reply #14 on: December 13, 2015, 08:57:20 PM »
I'm hoping to make the app available for CAD alternatives such as Briscad, but I can worry about that deployment when the time comes.

Here is how I am handling the builds for different CAD hosts: https://github.com/CADbloke/CodeLinker. There's a whole off-the-rails thread on it at http://www.theswamp.org/index.php?topic=50202.0 - have a look at the alternatives linked from there too, there are a ton of ways to skin that cat shave that yak.

As for subscriptions, I expect my app to migrate a lot of stuff to the cloud in the years to come - they better be used to subscriptions by then.