Home Bespoke(I) Bespoke(R) VTS SkillSet PerBI IPL Freeware Location Legal IS0 9000 Email us Blogs
Overview
Introduction
The Browser and the desktop application work in very different ways and this has implications for both the user experience and the cost of development.

As a horrible oversimplification, the more that an application needs to know about things not on the current screen the more likely it is that it should be a desktop application.
Details
The Browser - Computing Model
With a Browser based application you basically have a program that starts and ends with current page displayed on the browser. Apart from a few things like cookies the current page has no way of knowing what has been going on in other pages.

For web sites that are online brochures or do simple step by step processes like a simple shopping cart this can be made to work tolerably well.

The Desktop - Computing Model
Unlike a Browser based application, a desktop application starts, retains as much information and resource as is requires until you say close.

Processing and editing the message on the right is something that should clearly be a desktop application.

80% Working is good enough!
The web world has introduced the concept that a web site/program that works about 80% of the time is good enough.

This was not an objective, it is a combination of people chasing fancy special effects, not understanding what they are doing, and sometimes the web site owner simply not being prepared to pay for a proper job to be done. More details on this theme.

Interaction Between Controls
Many people will have tried the car insurance comparison sites, where a user selects the car manufacturer, make and model. This is a very large list and it is not really a good idea to load everything into the browser/desktop application.

Both application types would show a manufacturer selection list, when something is selected, the make list is populated and then the model list. In a browser app, this can be done by completely refreshing the whole page, which looks naff to the user, or by using an Ajax wrapper around the make and model controls.

The problem is that Ajax is unreliable in the Real World, so do you go for a good looking web site that may not work or a bad looking site that will.

The desktop application does not have this problem because it is more tightly bound together.

In practice the code required to get the data from the database will be same, but the code to update controls in the desktop application will usually be a lot quicker to write and test.

ASP/SQL Server/Windows or PHP/MySQL/Linux!
Although there are plenty of other options, it is most likely that if you ask someone to build you a web site you will be offered one of these two options.

It is possible to build a C# (ASP) web site on Linux/Mono/MySQL or PHP/MySQL on Windows, but if you do, you are going to raise a lot of eyebrows and find support difficult.
Side Notes
padding picture
This is an EDI message, if you buy your car insurance from a broker it is likely that a message like this will be generated by the broker's computer system and sent to the insurance company.

The insurance company will decode and validate this message and there is a very real (1%-5% chance) of their being an error.

As you can imagine processing this requires a lot of processing, for example the VHC segment says this is a policy for Insured And Spouse, this means that there must be two DRI segments, one for each driver. The whole message has lots of relationships like this, there may be 4 DRI segments on another policy, the number is defined byt the DTR.

Trying to process all this information and display it all one page for a operator to modify is clearly impractical, A desktop application that I created to fix this type of message had a form for each segment type, as stored in memory the whole message.