Smart Clients Better, Faster, Cheaper for Business-Class Needs
In our experience, for more complex business-class application requirements (e.g. 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 e.g. websites, where users are unknown, and
less sophisticated forms and workflows will suffice. In some situations, the right answer can be "both" e.g. 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 (referred to as "composite application").
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 Picassa, Google AdWords, You Tube, and Mobile Maps.
Similarly, Microsoft’s new Internet-based versions of the MS Office Suite (Word, Excel, Powerpoint) are all Smart Client applications.
e.g. 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: the 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 (and expensive!) server hardware to be purchased and maintained.
Need to support 500 concurrent End Users with a browser-based app? Get ready to spend $30K to $40K on several high-end servers.
Need to support 500 concurrent End Users with a Samrt Client app? A VM on an existing server will usually suffice!
-
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, including disabling the app from running on particular machines or by specific users (or enabling them to
only run on certain machines). 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.
Smart Client Applications: the 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. Installing an application
often does not make sense for consumer-type applications, which is why these are most ofter developed inside a browser.
Browser-based Applications: the 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.
Browser-based Applications: the 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. For example, 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,
will not allow Cookies, will 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 based
on the HTML and CSS-based architecture of the web than that of .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.
One reason: 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, PCA 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 — used by employees to create and
maintain database records, and manage all the application administrative functions — and the resulting database records
and reports are made available to customers via a secure browser interface.