Smart Clients Better, Faster, Cheaper For Business-Class Needs

In our experience, for more complex business-class application requirements, like where users are known, and more sophisticated capabilities and workflows common to MS Office applications are needed, Smart Client applications provide far more “bang for the buck” than browser-based applications, and do not require compromises to functionality or ease-of-use for cost reasons.

Conversely, browser-based apps often make more sense for Consumer-class solutions such as websites, where users are unknown, and less sophisticated forms and workflows will suffice. In some situations, the right answer can be “both”; a Smart Client app is used to support more complex back-office data management, reporting and administrative functions, while your customers access a limited “controlled” set of data and features thru a standard browser interface.

Smart Clients Vs. Browser-Based Business Applications

Many companies assume that developing business applications “inside the browser” is their only option. While browsers provide an excellent, fast way to deploy simple applications, for more complex business application needs, a browser-based approach is very expensive, and often falls short of usability needs. Smart Client applications provide a much richer end user experience, they are much less expensive to develop and maintain, and they overcome many common limitations for using the Internet for B2B data management needs.

Microsoft And Google: Leading The Path To Smart Client Apps

Both Google and Microsoft make extensive use of Smart Client applications, where more complex data management functionality and improved user experience is needed. Google examples include Google Earth, Google Picasa, Google AdWords, You Tube, and Mobile Maps. Similarly, Microsoft’s new Internet-based versions of the MS Office Suite are all Smart Client applications. They look-and-feel just like desktop applications, but use the internet and the Cloud to store (and serve) the data. The reason is simple: Smart Client apps cost far less to design, develop and maintain, and do not force unnecessary constraints on end user functionality and ease-of-use.

Smart Client Applications:

Pros

  • Faster to Design (Rapid Application Development). The combination of the .NET Framework and Windows Forms provides an excellent architecture for rapid application development, which results in quicker delivery of rich applications with a ‘high fidelity’ End User experience. Browser-based design requires tedious CSS work, a skill that is much better suited to website designers, not business application developers.
  • Reduced Time to Develop. Based on the .NET Framework and Windows Forms architecture, Smart Client applications are faster to design and develop due to the rich set of controls and tools available. The Microsoft OS-based display architecture also guarantees the same look-and-feel across all PCs. Refinements such as changing colors, changing layouts of controls, refactoring, adding new forms, moving buttons, etc. can all be accomplished easily and quickly vs. browser-based approaches which require tedious CSS work instead of WYSIWYG tools.
  • Lower Cost. Prototyping and developing Smart Client applications can occur at a far accelerated pace vs. browser-based apps, with much quicker turnaround of enhancements and refinements. More efficient development with reduced error and waste = lower cost to build and maintain. Everything else aside, the cost factor alone often justifies a Smart Client vs. browser-based approach.
  • Faster Performance. Smart Client applications run on the local user’s PC, and take full advantage of the PC’s resources (CPU, memory, hard drive and graphics) for storing and rendering information. This allows the application to cache frequently-accessed data on the user’s PC, resulting in much faster application performance. Conversely, browser-based apps require all data from the server every time a form is accessed. In addition, most browser-based apps also require the entire user interface to be downloaded with every “click” of the mouse, further slowing performance.
  • Improved User Interfaces. Smart Clients take full advantage of the PC’s graphical capabilities. The user interface is greatly improved, and can contain advanced functionality (3D graphics, drop shadows, overlaps, drag-and-drop, dynamic popup indicators) — ease-of-use capabilities that are not easily achieved using a browser-based approach.
  • More Scalable. Because much of the application processing is done on each User’s local PC, Smart Client applications consume substantially fewer server memory and processor resources. This allows the number of Users to grow significantly without requiring additional, expensive, server hardware to be purchased and maintained.
  • Improved Debugging. All users of Smart Client applications are running the Windows OS and using the .NET Framework, which greatly reduces the difficulty of recreating and solving bugs for users. Developers have far fewer variables when attempting to reproduce reported errors, and do not require different types of machines and operating systems for troubleshooting and testing.
  • More Secure. Smart Client applications are centrally controlled, and can be completely secured. Unlike Browser apps, which anyone can gain access to, you know who is using a Smart Client application, and you can control all privileges via role-based administrative settings.

Cons

  • Smart Clients Require Installation Security. Smart Clients require that all End Users install the application on their local PC, via ClickOnce, which is very similar to installing Adobe Acrobat. This is typically not an issue for business-class applications, where the End Users are known and centrally managed.

Browser-Based Applications:

Pros

  • Runs on any OS. Browser-based applications will run on any computer which has a fully-functional web browser. This may not include many smart devices such as cell phones or PDAs, which use a limited browser which cannot display or interact with non-mobile specific web pages.
  • No installation. Browser-based applications do not need to be installed in any way. Users simply navigate their web browser to the correct address.

Cons

  • User Interface Differences. Since users may have different machines, different operating systems, and different browsers (with different versions), the display and layout of web pages (and the overall user experience) can change drastically among users. Buttons can shift, text boxes can change in size and location, elements can be hidden off-screen or disappear entirely, and images can load incorrectly on overlap other controls.
  • JavaScript Differences. Since users may have different browsers, the functionality of a website may be affected due to differences in how client-side JavaScript code is executed. This can result in buttons not working, error messages, and a general breakdown of functionality. Unfortunately, due to the ‘Browser Wars’ many browsers do not fully adhere to any given standard, or adhere to different versions of a standard, which makes programming cross-browser JavaScript difficult, tedious and time-intensive. This also results in increased time to debug specific users’ problems.
  • Browser Capability Issues. Since users may have different browsers, the capabilities available to those browsers might be significantly different, especially based on the user’s specific preferences. Some browsers may have JavaScript disabled, not allow cookies, block popups, do not have correct helper applications installed (Flash for example), and will not execute certain code or allow certain controls. Mobile-based browsers, such as those found in many cell phones and PDAs will not correctly render “normal” web pages and will have reduced capabilities. Once again, this results in increased time to debug specific users’ problems.
  • Slower Development. Designing and creating web pages is more time consuming on HTML and CSS-based architecture of the web than on .NET Windows Forms. Cross-browser layout issues not only result in delays but also require defensive programming which consumes additional time. Making small layout changes can also require complicated CSS programming (once again accounting for cross-browser display bugs, such as the well-known issues between IE and FireFox), and result in slower turnaround to clients.
  • Higher Cost to Development. Slower development and the more complicated programming required to account for machine, operating system, and browser differences among users, creating pure web-based applications is not as cost effective as Smart Client applications.
  • Difficult to Debug. Since users of applications can have almost any type of computer, smart device, operating system, and web browser, it can be extremely difficult to reproduce problems reported by users, and therefore even more difficult to remedy problems. A team might require an extensive set of computers of different types, running different operating systems, and with different settings to properly reproduce reported problems, which is often not feasible. The introduction of browsers on PDAs and cell phones makes this even more challenging.

Composite Applications: Smart Client + Browser

While Smart Clients have a clear advantage in terms of advanced capabilities, ease-of-use, and rapid development, and at a far reduced cost, there can be valid reasons and needs for browser-based business applications. Some businesses simply cannot dictate that all End Users install an application. In addition, sometimes a rich, highly-interactive End User experience is not needed. Under these scenarios, PCApps often creates “composite applications” that deliver the capabilities and benefits of both Smart Client and browser-based approaches. With composite applications, the Smart Client supports the more complex back-office needs and the resulting database records and reports are made available to customers via a secure browser interface.