views:

261

answers:

8

Many applications (especially the networks' ones e.g. file sharing, sql query program, some multiplayer games) as we know today can be easily provided by using a web interface.

My question is when should I make an application accessible using a browser?

When it will be wise to use a desktop application being built using interfaces like Qt, Visual Basic etc.

A: 

If you make a native program for mac you can use drag and drop, the clipboard. If your program is a web app, then you don't have access to this. A native program can start when you boot your computer, a web app can't do that.

neoneye
Actually, there's at least limited drag and drop (within a browser) in web apps, and at least on a mac you *can* have web-applications that start at startup, using Flow.
Charlie Martin
You can have web apps start at startup too, just start IE with the right command line arguments for the page you need to go to.
Telos
I have yet to see a web app that installs itself and starts on boot. I didn't knew about Flow.
neoneye
+1  A: 

I'm increasingly of the opinion that we should use web-based, javascript (or flex) interfaces as the default. It means lots less code in the application image, plus it allows one code base that does something well, over several that may, er, do it less well.

If you build to a web interface to start with, you never find yourself needing a separate project to build a web interface.

With modern browsers, javascript and ajax, and javascript libraries, you can build an extremely rich interface that can easily be changed.

Charlie Martin
+2  A: 

Some points for a web interface:

  • When the program needs to be administered from another computer on a network
  • When more rapid development speed is needed (Generally faster to write html/javascript than Qt/Gtk etc)
  • To keep the program as cross platform compatible as possible
Ben Reeves
A: 

If the UI of your app can be implemented as a well behaved web service/application you should seriously consider it as an option.

The biggest benefit of a UI that can run in the browser is it's independent from client OS. Most computer users today have more than one computer usually connected in a network. The distribution of different operating systems is getting larger every day (alternatives to windows are getting bigger market share). So you get maximum portability of the UI. Your application can be started once on one computer and accessed from anywhere.

Vasil
+1  A: 

There is no general answer to that question. That depends on some factors:

  • Your target group - Is it wide spread or pooled?
  • Portability - On which platforms do your users work?
  • Performance - Is much of it needed? If yes, a desktop application would be better. I can't imagine a video editing software running in a browser. Maybe in 10 years :)
  • and more that have to be figured out individually

But the trend clearly goes to web-based applications. You can reach quite a bunch of people with them.

Markus Lux
A: 

I think this is the wrong question. What you need to do is analyze the differences between the platforms and how they impact your organization. To give you a real world example.

I worked for a small company which had only ever built Web based applications. One of the apps was not succesful, in part because we had a lot of dialup users, and needed offline support.

The company went ahead and developed a .net client application, and they got a rude awakening. The company was not prepared for the complexity of deploying to any number of client configurations. We got bit by Novell Networks for example. They were not prepared for the increase cost of supporting a client application. (And yes the development had cautioned and tried to warn them what this meant).

So not only do you need to ask various questions but you need to evaluate them within the context of the organization producing the software.

Things to ask include:

  1. First and formost is can your app run as a web app? Some apps just arent feasible. if you need access to low level resources, your not going have many options.
  2. Can you afford the maintance costs of client software? If this is a distributed app, what happens when you update the server but the clients arent updated.
  3. Can you support the client?
  4. What experience does the team building the software? This is huge IMHO. No matter how good a team is at building web applications, they will make mistakes doing client apps that an experinced client developer wouldn't.
JoshBerke
A: 

Only go for Desktop application ,if you can control the environment (intranet) or program to the environment (cross platform version) in which that package/application will run.

Looking the trend now days, everything is going inside the browsers and we are getting equally good interaction as compared to desktop application.Also only thing required to run the app is browser , which is always good and something we can just ask user to have a right version of it and he is all set to use it.

A: 

In my experience, I have found that web apps usually take a bit more time to develop, but there are some advantages in developping a web application.

  1. You don't have to deploy web based applications
  2. People are often more used to using a web browser than a custom application, so usually, the application gains in usablility
  3. Usually, it is easier for users to find what they seek in a web application because of the interface.
  4. You only have to test with a few browsers, and you avoid having to test a lot of client configurations which might conflict.
  5. With web application, you don't have to care about what operating system the client might be using. For example, let's say your company decides do move it's desktop computers to linux, you won't have to build a new version.

You should develop desktop software, if you need something to be developped quick, or you need performance / responsive interfaces (web is still slower than desktop) or if you are developping something that can't be done in web (think graphics software / complex games).

Martin