Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do you decide if a project should be web-based or desktop-based?

I'm having trouble deciding if I want a project of mine to be web-based (as in a web-app), desktop-based (a desktop application), or a desktop application that can sync or connect to the cloud.

I don't know if anyone else would have an interest in this application, and it's only going to be for me, so I'm leaning toward desktop application. If, for some reason, I finish it, release it, and people actually like it, I might see about making it sync to the cloud as well (think v2). But I'm not sure how hard it is to make such a radical change, and I don't want to end up with something good that is useless because I made a poor choice before I even started the project.

Is there any sort of guidance for this? Any rules of thumb or best practices? Any personal experiences?

If the language matters, I'm thinking about Java simply because I'm most comfortable with it, and it would easily allow me to share it with my friends for testing and if I get stuck and need help from someone else in person.

like image 725
Thomas Owens Avatar asked Oct 02 '08 18:10

Thomas Owens


People also ask

What is better desktop application or web application?

When compared to web applications, desktop ones have undoubtedly better performance. The same operations are completed faster and the range of features is often larger. The performance is not always noticeable or needed since so many web services don't require much power.

What is the difference between desktop and Web-based application?

Simply speaking, a desktop application is a computer program that runs locally on a computer device, such as desktop or laptop computer, in contrast to a web application, which is delivered to a local device over the Internet from a remote server.

Why would you want to have a program based on the Web?

Compared to desktop applications, web-based applications provide a whole range of business advantages. These applications can be accessed from any computer through the internet, instead of having to be individually installed on each computer that you wish to access it from.

What is a web-based project?

Web-based project management software is a type of software that allows users to work on collaborative projects online. This software allows streamlining distributed workflows, replacing email operations and improving remote collaborative work.


1 Answers

I generally ask a few questions:

  • Can it even be done on the web? Something I did not too long ago involved an image editing component, and had to be a web app. It involved much pain to get this work, and a desktop app would have been a far better way to go.
  • Will I need to access it from anywhere? Yeah you could load it up on a thumb drive, but the web is far more feasible in this case.
  • Will there be multiple users? This could go either way, but "long tail" stuff usually means web.
  • What tech do you want to use? The latest and greatest WPF based UI? Desktop (yeah yeah, silverlight, let's not go there ok?). The brain dead stupid easy user management of Django or others? Web.
  • If it were a web app, will you need to worry about common attack vectors like SQL Injection, XSS, etc? A desktop app has its own issues here too, but tend to have less exposure.
  • How resource intensive is it? Will 10 users kill performance of a web server?
  • Versioning on the desktop can be a pain, whereas with a webapp everyone is on the same version. This can bite you though, see the New Facebook user pushback.

EDIT:

  • Cost can be a factor too. A web app with a database backend typically means a web server. If you want to stick with, say, the Microsoft Stack, you'll need licenses for SQL Server which can get pricey. Open source is cheaper, but may not be an option in all cases. "Serving" a desktop app is generally cheaper.
like image 128
swilliams Avatar answered Nov 22 '22 08:11

swilliams