Web Apps vs. Client-Server Apps. Which Solution Is Right for You?

Posted on March 10th, 2010 by Eric Rowell

Whether you’re building a software application for fun, designing them for your own small company, or architecting a major system in a corporate setting, it’s important to understand what type of application your next big project is going to be.  Should it be a web application (thin client) or a client-server application (thick client)?  The purpose of this post is to cover the major differences between each solution, discuss the resulting pros and cons for each, and then formulate a general rule of thumb for determining whether a particular software application should be built as a thin or thick client.

What exactly are thin and thick clients?

Web applications, sometimes called “thin clients”, perform business tasks through a web interface. This usually involves viewing and manipulating user data.  These solutions are typically deployed on an intranet or extranet, with access restricted by user logins and passwords.

Client-Server applications, or “thick clients”, are desktop applications that reside on the client’s machine. The server side usually has a middle layer inbetween the client and the database which is called a “3-tier” solution.

Pros of Thin Clients

  • Easy to distribute.  If your users have a browser, they have access to your application.
  • Can run in mobile devices.

Cons of Thin Clients

  • Can vary wildly from browser to browser in terms of HTML rendering and JavaScript behavior.  If you are developing an application intended for an audience without a standardized browser (like the general public) you will generally be developing an app that must be compatible with IE6, IE7, IE8, Firefox, Safari, and Google Chrome.  This can add a lot of overhead to development time.
  • Performs poorly when the app has extensive GUI logic and view manipulations.

Pros of Thick Clients

  • Will run exactly the same from system to system.
  • Will have access to system privileges.
  • Performs very well when the app has extensive GUI logic and view manipulations.

Cons of Thick Clients

  • Difficult to distribute and maintain software versions.  Requires an overhead of version management and software updates.

Rules of thumb for choosing a software solution

If you are developing an application for the general public and the user interface is very light, you should definitely choose a web application solution.

If you are developing an app for a company that requires extensive GUI logic and view manipulations (like handling a large dynamic data cube or rendering complex 3D graphics) you should definitely choose a client-server solution.

*side note: you may also want to look into hybrid solutions called RIAs (rich internet applications) which are applications that are deployed like a thin client but don’t actually run in the browser (therefore making them browser independent).  Adobe Flash 4 and Microsoft Silverlight are the two major competitors for this type of solution.

Leave a Reply