Escolar Documentos
Profissional Documentos
Cultura Documentos
Sub Title:
What to choose "Web-Application" or "Desktop-Application"? Rich-
Internet-Application or a Smart-Client?
Author:
Oren Cohen-Shwartz
Introduction
The article deals with an important question, one that raises lots of
debates in the .Net software architecture world.
Before we get started it is important to say right here and now that
the define question above must always depends on the business
problem.
This article does not deal with a certain business issue. It spreads
a common cons and pros of each technology.
1
The Dialog
Socrates:
… But Plato, your claim about the needs for constant software
upgrades only strengthens my argument that Web-Applications are
the best technology. In Web-Application the application is actually
located on a remote server which you can upgrade when ever it's
needed and it reflects to your users online. In other words, when
all the code is in one place everyone sees the latest release.
Plato:
Well, with ClickOnce technology a Windows-Form-Application can
be deployed and launch from the Web. With this type of
technology software upgrades have never been easier to maintain.
Socrates:
Oh, I heard about what it is capable of, but isn't too cumbersome to
accomplish? You do need to make all the assemblies strongly
named and the amount of folders and files it created on the web
server is quite…well… cumbersome. Moreover, who want to install
a Desktop-Application on his hard drive if he does not have to?
Plato:
Well, it is reasonable to say that this technology will be improved
by the Redmond fox in the future. Right now, the user can choose
between offline and online executions. In both modes the
application is installed on the machine. The difference is that in
offline mode the application can be jump start and get updated
2
from the desktop while in online mode it can be run only from the
web link as before.
Please also know that ClickOnce is not the only solution. A "home
made" solution like using a Web-Service that the Desktop-
Application communicates with, checks and install updates are
easy to develop.
Socrates:
So you are basically saying that in online mode, which is closest to
running a Web-Application, the application is reinstalled again and
again in each run. What if it is a big application in term of Mega
bytes? Well, my dear Plato I rest my case.
Plato:
No, you haven't, because there is some kind of caching
mechanism that improves this behavior. The .Net Framework only
download the required files.
Socrates:
Hmmm…, .Net Framework you said. Well do I smell a software
perquisite in the air?
Plato:
You do smell well, but do understand that the user must not have
.Net framework on his computer or to preinstall it manually. The
deployed ClickOnce application can be easily defined to support
the installation of the .Net Framework (bootstrapper).
Dear Socrates, as you well know Web-Applications are commonly
requires ActiveX installations? Those requirements often scare
users because they are commonly causing the web browsers to
display intimidating security.
3
Socrates:
Well, you are right; today's web browsers do make us lots of
headaches. But, Windows firewalls often do the same for Desktop-
Applications.
Plato:
In Desktop-Applications as opposed to web-browser the
application has rights that are granted from the logon user. It can
be reach to system data like IP Address, Registry, Files, Windows
Shell integration etc. In a script mode the Web-Application is very
limited and the ActiveX technology is one of the last resorts. Web-
Application can not leverage local resources like CPU or installed
software either.
Moreover, isn't true that ActiveX is also being used in Web-
Application to enhance graphic capabilities like Charts, Maps etc.
Socrates:
Well, it depends on what the Web-Application is obligate to do.
But, yes it is often use for more complex and some kind of fancier
UI controls.
Plato:
Do you also agree that Web-Application will never be capable to
support GUI and visualization functionalities like Desktop-
Application?. For example, user interface must be travel back and
forward across the web in order to be refreshed.
Socrates:
I wouldn't say ever. Ajax, for example enhances the UI capabilities.
Plato:
4
Ajax also added tons of client-side script code and that hurts
performance and harms the user experience. With Ajax Web-
Applications stops being a thin application but start to get fat.
Speaking of scripts, isn't true that debugging capabilities of client
and server side scripts languages like VB and Java script are
impossible. Isn't also true that developing in this kind of script
language is klutzy?
Socrates:
With today's ASP.Net technology server code (code behind) can be
written in a high level language (any .Net aware language) that can
be of course debugged. As for client and server side scripts I am
afraid you are right.
Plato, with you permission I would like to talk about application
availability. As you recall, in Web-Application the application is
available and can be access from anywhere without installing
anything on the client machine. For example, Gmail is a web-
based Email application. You can enter to your Inbox no matter
where you are. In case, you are entering an Internet-Café you
surly be permitted to enter to Gmail but not to install any
application on the machine.
Plato:
5
Yes, I see your point. But what if I am in my home or at the office
and I want to see my Emails but the Gmail server is down or I have
temporarily lost my Internet connection. I will not be able to see my
Emails right? Web-Application must be connected to the server all
the time. In other words Desktop-Applications offer better offline
and caching capabilities. There is no need to waste time waiting for
screens to refresh or networks to become available.
As opposed to:
6
7
Socrates:
Well, if you need smart caching and offline capabilities you are
right. Another thing that I would like to mention is a cross-platform
capability. If your Desktop-Application is targeting to a world wide
use will you be able to install it on Linux and on Windows OS.
Even if you have decided to support only Windows OS family you
will still need to support and test your application on lots of
versions like: 98/ME/NT/2000/2003/XP/Vista. Not including sub
versions like Home and professional editions. You will soon notice
that the above OS supports different API and act differently. In
case of a Web-Application you are running within a well tested
application (like IE) that was already tested on those OS. Web
Browsers are also committed to standards like HTML and Java
scripts interpretation.
Therefore, as long as you stick to standards you will have no
problems.
Plato:
At the beginning, you have almost convinced me, but then I have
figured there are a lot of web browsers vendors and lots of web
browser versions. Also there are a lot of technologist like ActiveX
and Flash that will not work on Mac web browsers. Nevertheless,
you are right if the Web-Application is simply enough will be easier
to support world wide users.
Socrates:
Well, working with a markup language like HTML also holds lots of
simplicity and flexibility capabilities.
Plato:
It is true! But at the same time it is also very limited. With XAML
markup language, Desktop-Applications also enjoy the flexibility
like HTML plus much more enhanced UI capabilities.
Socrates:
OK, Plato we are not even close to end this debate, but I do need
to go. I have a meeting with Xenophon at the local SPA.
Plato:
Adio! Socrates. Send my regards.
8
What does the future holds:
9
Smart-Client vs. Rich-Internet-Application (RIA)
"Rich Internet applications (RIA) are web applications that have the
features and functionality of traditional desktop applications. RIAs
typically transfer the processing necessary for the user interface to
the web client but keep the bulk of the data (i.e. maintaining the
state of the program, the data etc) back on the application server."(
http://en.wikipedia.org/wiki/Rich_Internet_application)
10
Rich Internet applications characteristics:
Smart-Client characteristics:
Trends
11
Summary
Read more:
http://www.ajax.org/
12