The idea of what constitutes a Smart Client Application and the architecture to support this model very much chronicles the evolution of my career. So I decided to blog about this subject in the hopes of sharing, debating, and contributing to this evolution. 

In this post, I will briefly touch on what constitutes a Smart Client application framework. I will also discuss how I have come to the conclusion, through my experiences, that this architecture is the optimal design for solving a wide array of application scenarios.

For those reading this blog as a result of a Google (or MSN ;) search and you are thoroughly confused why I am not talking about the subject of customers with above average intelligence (Smart Clients) you have found something altogether different. This is a semi-technical discussion of the following software/hardware application development platform architectures.

  1. Thin Clients. Sometimes referred to as Web Clients.
  2. Thick Clients. Sometimes referred to as Rich Clients.
  3. Smart Clients. Sometimes referred to as Thick, Thin, Rich, or Device clients :)

Although a client can be spoken of in isolation, it is my intent to discuss the "Smart Client" as a platform which includes, but does not require, a Server. Ah, the Client Server model. Remember when that was all the rage. I feel compelled to use some buzzwords like "paradigm shift", but I digress back to my consulting days. 

It's all coming together in an evolution of compelling models that utilizes the resources of a client machine (be it a computer or device), the communication protocols need to transport the data (HTTP, TCP-IP, ...) and a server that provides a data repository.