Disseminating Your Software

By: Clay Shannon

Abstract: The difference between deployment and dissemination of software is discussed, as is the relative merits of hosting your own software or outsourcing that chore. DIY vs. outsourcing is also examined relative to the processing of payments.

Disseminating Your Software

Disseminating Your Software

The Difference between Deployment and Dissemination

To "normal" people (non-programmers), the word "deployment" conjures up images of marines landing on the beach at Normandy. To us, though (the initiated), deployment refers to installing our software on an end user's machine. This involves knowing which files they definitely need to run your app, which files they might need to have installed, and which files they may already have but that may need to be upgraded (or even "downgraded") to a different version.

Deployment can be complicated. Borland, in fact, hosts on their servers a number of newsgroups dedicated to deployment, namely:

  • borland.public.delphi.deployment
  • borland.public.cppbuilder.deployment
  • borland.public.kylix.deployment
  • borland.public.jbuilder.deployment.

Deploying an application can occur on just one computer. Disseminating software, on the other hand, at least implies a "broadcasting" approach--scattering your software to the four winds, so to speak.

The Steps Involved in Disseminating

Making your software available involves three basic steps:

  1. Creating the software
  2. Creating an install/setup for your application
  3. Hosting your software on at least one software download site
  4. If you are going to charge for your software (if it's a commercial application, such as shareware/trialware/demoware), there's a fourth step:

  5. Processing payments.

Steps 1 and 2 are beyond the scope of this article. Step 2 is optional, anyway (although highly recommended). We will now discuss step 3.

Who Is the Hostess with the "Mostest"?

Once your software is ready for dissemination, your basic decision is whether to host it yourself on your own site, or upload it to a separate site. Most software download sites no longer physically host your file[s], but a few still do, such as Winsite (http://uploads.winsite.com/), Beverly Hills Software (http://www.bhs.com/submit/), and Skali Downloads (http://my.skali.com/service.php?action=post_downloads&type=2).

The tradeoff is that when you host your own files, you have full control, but have a lot of extra work on your hands. By allowing another site to host your files for you, your workload (and expenses in keeping your site up and running) is reduced.

All the work you will have to perform if you decide to host the files yourself on your own site is beyond the scope of this article.

Getting back to the software download sites that don't physically host the files: They accept (and expect) from you various information about your application, along with a link to the site from where it can be downloaded. This is actually a good thing, since you only need to upload your software to one place (or a few, if you prefer a broader dissemination of your application).

Entering all that information over and over again at all the software download sites can be very tedious, though. Unless

Semi-automating the Data Entry

In the "olden days", file_id.diz and vendor.doc were de rigeur for shareware applications, but they have now fallen out of favor. The new file on the block, replacing file_id.diz and vendor.doc, is--you probably guessed it--an xml file. The nice thing about this is that many download sites know how to read this file. Because of that, you need only fill in the grisly details about your application once, and then save it to this "PAD" (Portable Application Description) file.

There is a free tool available, made available by the ASP (Association of Shareware Professionals) that makes the creation of pad files as painless as possible. It is called "PadGen" (Portable Application Description Generator) and can be downloaded from here: http://www.asp-shareware.org/pad/

Instructions on how to use PadGen are beyond the scope of this article, for two reasons:

  1. It is intuitive to use.
  2. It contains a Help file that you can reference if need be.

To give you an idea of what PadGen does, though, here is a screen shot of what it looks like at "design time":

Semi-Automating the Uploading/Announcing of Your Software

So now you've got a PAD file, created with the help of PADGen, that obviates the need to enter the same information over and over again. Now what? How do you know which sites you should browse to in order to announce the availability of your application? Well, you could google for software download/upload sites, or research archived newsgroup posts. There is an easier (or at least quicker) way, though. Yet another tool comes to the "rescue" to help us upload our software, or descriptions of our software stored in PAD files.

TSubmit (Trialware Submit) is another freeware tool (written in Delphi, BTW). It is preconfigured with a list of sites to which you can upload your file or the information from your PAD file, and sports speedbuttons to go directly to a site's upload page. TSubmit can be downloaded from here: http://www.trialware.org/tsubmit.html

After incorporating the PAD file created with PADGen into TSubmit, most of the sites you visit from TSubmit will automatically detect the presence of the PAD file and auto-fill their own forms. The ins and outs of using TSubmit are--you guessed it, perhaps--beyond the scope of this article. Like PADGen, TSubmit is easy enough to use and has a help file to explain anything that may be unclear.

Below is a screen shot of TSubmit in action, submitting my new shareware application "StringFinger" (a reminder app that can be downloaded from Code Central at http://codecentral.borland.com/codecentral/ccweb.exe/listing?id=19735)

Process Payments Yourself or Outsource?

Besides deciding whether you want to host your software on your own site or elsewhere, you will also need to decide whether you are going to process orders yourself or outsource that aspect of your business. There are generally three scenarios:

  1. You host the file yourself, and process the orders yourself
  2. The file is hosted elsewhere, and you process the orders yourself
  3. The file is hosted elsewhere, and you outsource the order processing

With the first two choices, you will have to deal with verifying credit card information, seeing to it that your web server is secure, and probably maintaining a 24X7 presence--along with all of the extra work, hassles, and headaches that entails. Of course, you have the benefit of not sharing your revenue with another company, direct contact with your customers, and up-to-the-microsecond knowledge of how well (or not) your software is selling. You make the call.

If you opt for the latter choice, you have another decision to make: Which of the many companies "out there" will you choose to handle your order processing for you? I'm not going to recommend any particular company, but you can research many for yourself from this site: http://www.regshare.com/

FWIW, RegSoft and SWReg seem to be quite popular and well known. NorthStar Solutions is also worthy of note, partly for their free file SARG (The Shareware Authors Resource Guide), which you can download here: http://www.nstarsolutions.com/sarg/

One thing you can do, if you outsource the order processing to another company, is include their contact information directly in your application. I've done this with my new creation "StringFinger", as you can see here:

Updating Your Application from within Itself

Another possibility, which seems very intriguing and might be very well-suited to a situation where the user downloads a more full-featured version of your app after buying it (or downloads additional files, plug-ins, or the like), is offered by a company named eSellerate (http://www.esellerate.net). Using the eSellerate SDK, you can build what eSellerate calls "integrated selling" right into your application. The user pays for your software from within your app, and is able to download the "full" version of the software directly after payment is made. With Delphi, for example, you make use of an ActiveX control that eSellerate provides to accomplish this. But that's a story for another day.

Clay Shannon is a Borland and PDA-certified Delphi 5 developer and the author of "Tomes of Delphi: Developer's Guide to Troubleshooting" (Wordware, 2001) as well as the novel he claims is the strangest one ever written, "the Wacky Misadventures of Warble McGorkle" (see http://www.winsite.com/bin/Info?12500000036639 for more information on the 4 Novels application, which contains this and three other novels he has penned).

You can find out more about Clay at: http://hometown.aol.com/bclayshannon/myhomepage/index.html
You can look into Clay's shareware and determine his current availability at:
You can contact him at:

Server Response from: ETNASC02