Saturday, 18 January 2014

The Internet is Dead - Long Live the Portable App!

Recently, I converted Classmaker from a standard Windows app to PocketClassmaker, a portable Windows app.  To transform Classmaker into PocketClassmaker, I had to do the following:

1.  Make sure that all directory references inside Classmaker were relative rather than absolute.
2.  Write user settings to a configuration file rather than the Windows Registry.
3.  Change the database from a Windows Service to an embedded database.

Luckily for me, these three changes were quite easy to do.  In particular, the FirebirdSQL database comes in both flavours, server and embedded, and very little modification is needed to move from one to the other.  In my case, the backup batch file had to be altered, but not much else.

The advantages of a portable app over a standard app are:

1.  No installation is necessary. Just extract the application's directory tree somewhere, perhaps onto the user's Desktop initially.
2.  As the portable app name suggests you can carry around the application on a USB stick or use it from Google Drive or Dropbox.
3.  Portable apps don't alter the host PC's environment in any way.  To get rid of them you simply delete the application's directory tree. 

The disadvantages of a portable app over a standard app are:

1.  You have to start them directly yourself instead of Windows automatically starting them for you as a Windows service.  This means the user has to be comfortable using batch files.
2.  As you move between machines, environment settings such as the printer may change.  As you are no longer using the Windows Registry, you have to reset these every time.
3.  Not suitable for a multi-user environment.

Using a portable app confers the following advantages over a Web app:

1.  Much MUCH faster to use.
2.  Always available regardless of whether the Internet is up or down.
3.  No need for user names and passwords.
4.  Much more flexible use of screen real estate.
5.  Exclusive rights to your own data with full access to the local file system.
6.  Updates are simple.  Just copy the latest version over the top of the old one.