What is a Smart Client?

A while ago I heard a definition on Smart Clients that was said to be from Microsoft. The person who told me the definition, said Smart Clients should be able to work disconnected. I totally disagreed with him, because I think in a lot of circumstances, working disconnected does not add anything to the user experience. Technically it’s a much larger challenge to provide disconnected functionality and when you require a user interface to compare local data against remote (server) data, you have to build many more screens then normal.
 
I think when your client can connect to a server via (for example) webservices and can also be updated automatically via internet or local intranet, you’ve got a pretty smart client there. Now just a minute ago, I came across a definition of a smart client, via the [MSDN Smart Client](http://msdn.microsoft.com/smartclient/) site.
 
“*Smart clients are easily deployed and managed client applications that provide an adaptive, responsive and rich interactive experience by leveraging local resources and intelligently connecting to distributed data sources.*”
 
Now that’s a pretty smart definition. Some will probably interpret the “intelligently connecting” as offline capabilities, but for me it’s the connecting intelligently to my server via webservices. Securely, encrypted, reliable and what else you want.
 
Agreed? Or not?! 🙂