simple
simple

Reputation: 1091

What difference between web apps and desktop apps should one keep in mind to model the system correctly?

Sometimes it seems like some architectural techniques are not for the Web application I am building and then I just go and code =(, Though I really want to make a habit to architect system before moving to the code, as when I just code I endup writing some useless components which then I rewrite =(,

So can you just point out some differences between web apps and desktop ones ?

Upvotes: 1

Views: 946

Answers (3)

sbange
sbange

Reputation: 646

If there is only one thing you should always be aware of while developing web applications I'd say it is: "HTTP is a stateless protocol". You have to take this into account for nearly all "architectural" decisions (from user interface down to scaling).

Upvotes: 4

Owen S.
Owen S.

Reputation: 7855

My favorite observation along these lines is Paul Graham's note that, in the world of web applications, you have the potential of controlling the platform that the code runs on, in which case you are free to program and design in whatever languages/paradigms work for you. With desktop apps, you're often chasing after the platform that your customers are on (Windows, Mac, or whatever).

There's no excuse, other than time and market pressures, to punt on design for web applications. They need it just as badly as desktop applications! The coding patterns you use should largely be the same. What you may find to be unique are:

  • Emphasis on data management rather than user interactivity (though there's more focus on the latter than there used to be!)
  • Need for careful session management to thread state between independent requests
  • Ease of tangling presentation and business logic (don't do it!)
  • Need to juggle functionality in different code bases – e.g. Javascript and back-end code – without losing the cohesion of each
  • Capacity for very rapid development and deployment
  • Dealing with annoying differences in browsers, as opposed to desktop systems which have been mucked up in spectacular and fascinating ways, and upon which users demand you troubleshoot your program :-)
  • Keeping up-to-date with the myriad of web technologies and capabilities of modern frameworks

Upvotes: 2

Mr.Expert
Mr.Expert

Reputation: 466

The most common factor while developing your application lies in its functionality. The important points to focus are:

  1. Development Scale
  2. Functionality
  3. User Interface
  4. Dependencies Required

While working on any of the Application doesn't limits you to add functionality to the same. For a second thought, if you need to compare them, here is my go on it:

  1. Accessibility - Web applications can be easily accessed from any computer or location that has Internet access. Desktop applications need to be individually installed on each computer, while web applications require a single installation.

  2. Cost - Over the life of the software use, web applications are typically significantly more expensive over time. Desktop applications are purchased outright and rarely is their a recurring fee for the software use. Some desktop applications do have maintenance fees or fee based upgrades associated with them.

  3. Performance - Web applications that rely on the Internet to transfer data rather than a computer's local hard drive, may operate slower. The speed may also vary based on number of users accessing the application.

  4. Backups & Ownership - Regardless of the platform, companies need to be sure that their data is appropriately backed up. When using a web application that are hosted by a third party, companies should clearly determine who owns the data housed in the application, and be sure that privacy policies prevent that data from being used by the web host.


Ultimately the accessibility of web based applications make them very desirable. Web applications have some fundamental limitations in their functionality, and are better suited for specific tasks. Understanding the pro's and con's to each business model, will help users determine whether a desktop application or web application will better suit the users needs.

Upvotes: 1

Related Questions