I am reframing my previous question, this question was asked by my senior engineer, who wasnt convinced with my answer. Q: What is the technical difference between designing a 'web hosted application' and a 'downloadable stand alone application' eg. wrt HTTP layer coding etc.
Broadly speaking, web hosted applications rely on the following architectural features:
Web Application
- The UI is rendered on a client machine, using a specialized client (a.k.a. web browser)
- The UI capabilities on the client machine are limited to what the web browser (including plugins) supports. The programmer generally has no ability to implement arbitrary functionality on the client, but rather must work within the capabilities supported by the client.
- Business logic and data storage are not on the client machine (generally speaking, there can be limited exceptions). Rather, one or more servers take those architectural roles.
- Communication between the client and server occurs using a standardized network communication protocol (HTTP).
Stand Alone Application
- There are a vast number of different architectures for stand-alone applications. Some can be quite similar to a web hosted application; others are quite different.
- The programmer has full control (within the capabilities of the operating system and with support of a broad selection of UI frameworks) over the user interface.
- The business logic layer and data layer may reside on the same machine or on a remote server.
- If one or more remote servers are involved in the solution, many different remote communication protocols can be selected from. There's no requirement to use HTTP over TCP/IP (and in fact, more efficient protocols are often selected).
Standalone app uses your resources, web app executes on the server, rendering is done on your system.