There is a distinct line between web application and desktop applications. But over the last few years, this line is becoming thinner. Due to faster internet connection and technologies like ajax, web applications are becoming much faster and more responsive. And, if you have a local web server installed, a ‘web’ application can become desktop application.
I have a web server(Apache), and a database server(MySQL) running at all times on my local system. Since LAMP is my preferred platform of development, if I need a new software, I will create it on LAMP. A good example of this is Nexty. Over time, I have discovered that web application can be used as desktop applications. All you need is a web server, a database server and a browser.
There must be some changes to the current model to make this system work. These are a few I could think of…
- Web Server must run as the current user. That way, you can read/write to any file using PHP(or equivalent).
- The application must not be available over the network. Or, the web server must only accept connections from 127.0.0.1
- An installer for these kind of applications must be made.
- Familiarity: People are already used to web applications – so it will be easy to switch.
- User Customizable: Users can change the appearance of the application(user stylesheets), and to a limited extent, the functionality(GreaseMonkey).
- Open Source: If the code is in PHP or Ruby on Rails, or anything similar, the code will be available for study or even modification.
- Cross Platform: The same program can be installed in Windows or Linux or whatever – as long as it has a Web server.
- Imaginary: As of yet no such system exists.
- High Level: The system will not be able to do low level system operations.
- Limited: There will be some very serious limitation to the application unless the current systems are modified. For example, the browser cannot read or write to the filesystem.
I have been using some web applications as desktop applications for a while now – these include WordPress(for keeping notes), activeCollab(project management), Nexty(to do list), and Tiker(time tracker).
Our personal web application platform- Tonido exactly does what you are explaining here. It addresses all your disadvantages.
Hi, I am a Software developer. And my company wants to convert web application(in ASP) to a desktop application(.NET 2.0) is it possible to do so. And if so please let me know.
Sorry, but I have no experience in the .NET platform – I’m on LAMP.
this may be possible if you target C# WPF (Windows Presentation Foundation)
There are a number of techniques which can be used for the same. I know of a couple of guys besides me, as well as firms which actually use Web Technologies in developing multi-platform desktop applications.
The interesting techniques are the ones where the solution has the basic features of a desktop application like multi-threading, one click installs.
Looking at the disadvantages you have pointed out, actually none are true.
While, this is obvious since your are running a server on the same machine as the client, and the server side code can actually do what it wants, it becomes more interesting when one uses SWIG technologies. One can push and pull data and commands using php based system calls as well as wrapper based calls.