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.
- Thin Clients. Sometimes referred to as Web Clients.
- Thick Clients. Sometimes referred to as Rich Clients.
- 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.