Last Updated: 09/29/2019
Pretty much everyone who has used a computer has used a desktop application (e.g. Microsoft Word, VLC Player, Notepad, Adobe Photoshop, Internet Explorer, etc.) Desktop applications can be found just about everywhere for just about every kind of use.
However, over the past (roughly) 10-15 years, another kind of application for users has come about. They are called web applications. Web applications, simply put, are programs that users can interact with using their web browsers. Users also do not have to install web applications. They are already “installed” on the server you are accessing with your web browser.
Now many programmers feel passionate about both. I myself have written several desktop and web applications alike. So I have a good enough feel for both to give some insight into the pros and cons of both. You must remember there is no “one size fits all” when it comes to the desktop or web. Both have their strengths and weaknesses. Anyone that says (or at least implies) otherwise, does not know what they are talking about!
|Features||Desktop Applications||Web Applications|
|Rapid Development||Designed from the beginning to be a quick and easy solution to building graphical user interfaces (GUIs), especially when using Windows Forms in Visual Studio for Windows.||Never was designed for rapid development. Using the MVC (model, view, control) architecture is typically seen as the “correct” way to create web applications.|
I have spent hours and hours looking into this and the closest thing to “rapid development” for web applications I have found is ASP.NET WebForms.
Of course, I am aware that WebForms is not a solution for everyone, since it is designed to run on a Windows Server.
|Security||Since the user keeps his or her data on their own computer systems, this makes it harder for hackers to gain access to people’s data.|
There are some desktop applications (usually for businesses) that connect to a central database server to get and store its information.
In that case, the desktop application would be similar to a web application.
|Since all the user’s data is stored online, technically there is a greater chance of the users’ data being compromised.|
|Available Controls||Desktop application developers have a whole buffet of user-interactive controls to choose from. This goes for the out-of-the-box controls (e.g. Visual Studio for Windows) as well as 3rd-party controls.||No real controls “out-of-the-box” to speak of, except for HTML controls (e.g. text boxes, buttons, check boxes, etc).|
While you can add controls via jQuery or something else, these are not as mature as the desktop equivalents (in my opinion).
|Flexibility||It is very easy to write desktop applications that take advantage of the user’s hardware (such as: scanners, cameras, WiFi, serial ports, network ports, etc.)||Web applications do not compare to the flexibility of desktop applications.|
If you want to write a web application that interacts with the user’s hardware, you are doing it wrong. Just stick with a desktop application for your program. You will be happy you did.
|Portability||Desktop applications can be portable, but most are not portable and require manual installation from the user.||Web applications have desktop apps beat here.|
Web applications are very portable and will work with just about any computer with a decent web browser.
|Maintenance||Desktop applications usually need to be updated either automatically or manually.||Web applications have desktop apps beat here…again.|
End-users do not have to install any updates. All the updates are already taken care of by the web application administrators.
|Performance||Usually you will find that well-written desktop software running on a decent computer runs faster than web applications.||Web applications usually have slower performance than desktop applications, due to having to transmit data across the Internet.|
The Internet (and web browsers in general) were never designed with huge web applications in mind.
For example, if Adobe created a full-blown Photoshop (all features, nothing removed) that ran in the web browser, I would say a lot of people would have trouble using it.
For one, web browsers would not be optimized for such a web application.
Secondly, most people would not have enough Internet bandwidth to run it smoothly, not to mention many broadband subscribers have a monthly bandwidth limit that they would easily go over if they used such a web application.
Posted in Internet and Servers, Software