Share via


Client definitions

Thin Clients

· Network dependency - required

o A thin client relies heavily on the ability to connect to the Intranet and/or the Internet in order to retrieve and display data to the user. Data is almost exclusively stored in a central repository and is retrieved by connecting to a SQL or Web service.

o The application itself (ASP(x), HTML, etc..) is loaded from a server.

o Performance can also be impacted by the round tripping to the server for additional functionality. Think about spell checking and round tripping to the server. The stateless nature of this model means that bits travel over the network very frequently.

o Developing ASP server solutions to render on the client add to the debugging and design complexities of an application.

· User experience - Limited

o Because a thin client is constrained to run within a Browser and can not take full advantage of the rich controls found in thicker client applications the user experience is limited. How many people have tried to write a robust Tree control (and I use control loosely here) that rivals the functionality of Windows Tree controls. The stateless nature of a Web application combined with the constraints around signing, trusting, and deploying a control to provide a rich end user experience all combine to limit the UI experience in the thin client model.

· Development - Complex

o But HTML is easy, isn’t it? Yes and No. As a flat form, display only presentation language it is fully functional. In developing an interactive, complex application, you often need a plethora of components like Java, (x)HTML, ActiveX controls, Flash, J/VB script, DHTML, .htc (behaviors), ASP/ASPX(.cs), CSS (cascading style sheets), XML, DOM, XSL(-T). Working around the stateless nature of a Web application means you rely on Cookies and or a data repository.

· Deployment – Simplified?

o The application itself (ASP(x), HTML, etc..) is loaded from a server. There is a strong argument that this eases deployment of the application. When a user connects to the server they load the latest version of the application.

o Configuring, maintaining, setting up security, etc.. on an HTML, IIS, and/or ASP server farm adds to the complexity of configuring the deployment install/loading location.

o Deployment complexities to the end user (Client) are simplified by throwing out new versions of application components onto the server.

· Foot print - Thin

o Runs in a browser and requires little client CPU processing and usually very little memory. Data is primarily round tripped from the server or static. On the client, the foot print is light due in part to the light functionality of a simple web application.

· Extensibility/Programmability - None

o Web applications are not written and arguably were never intended to be written with the idea that they may be extensible.

· Offline capable – None

o Web applications are stateless and require network connectivity.

Thick Clients

· Network dependency - Optional

o No dependency for the application to load/run since it is installed on the client machine.

o Unless you are connecting to a server for remote data access, all data may be retrieved from a local database or file system.

· User experience – Rich

o Complex controls, local processing, stateful functionality, immediate user interaction without the need to round trip to the server all provide a rich user experience.

· Development - RAD

o The VB and .Net development environment (RAD) is comprehensive and robust as compared to all the Web components needed to build a functional equivalent Windows application.

· Deployment – Complex

o Generally requires a setup installation (MSM, MSI) for user and/or machine wide install to include all the components in a package.

o Every client machine needs to be touched to get new versions. A central server service model is only available through applications like SMS.

o Patching and/or servicing is difficult due to the install/uninstall nature. DLL hell.

· Foot print - Thick

o Thick client applications take full advantage of local CPU, memory and Disk processing capabilities.

o Local disk intensive processing can add to the clients overhead but may in turn lighten the load on network packets and server costs.

· Extensibility/Programmability - optional

o A rich object model of a thick application like Word or Excel is designed and supported on the client to enable an application to automate the Word application itself via the OM, OLE, and customization extensibility (VBA, VSTO).

o Although there is no requirement for a rich application to support extensibility the environment supports the ability to enable this functionality.

· Offline capable – optional

o The ability to retrieve data from a Web service, database or file system and either cache or sync to a local store is possible given the access to local resources (Disk, memory structures, etc) on the client.

Smart Clients

· Network dependency – optional

o No dependency for the application to load/run since it is installed on the client machine.

· See deployment for more.

o Unless you are connecting to a server for remote data access, all data may be retrieved from a local data store (database or file system).

o Inherent in the notion of a Thick client being Smart, is the idea of handling data in a connected and disconnected (seamless) manner. Data is often cached locally and/or updated upon connection and disconnection to the server. An example of this can be found in the Outlook 2003 product for Offline email.

· User experience – Rich

o Complex controls, local processing, stateful functionality, immediate user interaction without the need to round trip to the server all provide a rich user experience.

o Takes full advantage of local processing, memory and disk.

· Development - RAD

o The VB and .Net development environment (RAD) is comprehensive and robust as compared to all the Web components needed to build a functional equivalent Windows application.

· Deployment – Simplified

o May require a one time setup installation (MSM, MSI) for user and/or machine wide install to include all the components in a package.

o Every client machine needs to be touched to get new versions of an application. A central server service model is available through applications like SMS, click-once, and/or the IE cache.

· Foot print – Thick or Thin

o Thicker clients applications take full advantage of local CPU processing cycles and as a result the memory footprint and usage of processing cycles add up to a heavier footprint.

o Local disk intensive processing can add to the clients overhead but may in turn lighten the load on network packets and server costs.

o A rich client model supports transient connectivity and therefore lends itself to devices (Pocket PC, smartphones, etc..) and although the functionality is limited on a device compared to a full blown O/S the foot print is much lighter weight. As an example, check out the .Net compact framework functionality and compare that to the .Net framework.

· Extensibility/Programmability – required/supported

o A rich object model of a thick application like Word or Excel is designed and supported on the client to enable an application to automate the Word application itself via the OM, OLE, and customization extensibility provided by environments like VBA and VSTO (Visual Studio Tools for Office).

o Although there is no requirement for a rich application to support extensibility the environment supports the ability to enable this functionality.

· Offline capable – required

o The ability to retrieve data from a Web service, database or file system and either cache or sync to a local store is possible given the access to local resources (Disk, memory structures, etc) on the client.