+ All Categories
Home > Documents > A Software Architecture Toolset for Choosing the Right Type of Client Application

A Software Architecture Toolset for Choosing the Right Type of Client Application

Date post: 31-May-2018
Category:
Upload: oren-cohen-shwartz
View: 226 times
Download: 0 times
Share this document with a friend

of 12

Transcript
  • 8/15/2019 A Software Architecture Toolset for Choosing the Right Type of Client Application

    1/12

    Title:A software architecture toolset for choosing the right type of ClientApplication.

    Sub Title:What to choose "Web-Application" or "Desktop-Application"? Rich-Internet-Application or a Smart-Client?

    Author:Oren Cohen-Shwartz

    IntroductionThe article deals with an important question, one that raises lots ofdebates in the .Net software architecture world.

    What to choose "Web-Application" or "Desktop-Application"? Rich-Internet-Application or a Smart-Client?

    The reason why this question is asked so frequently recently, isthat both technologies are getting closer and closer and when thedistinctions becomes fuzzy the decision is harder to make.

    For example, Smart client introduces smart deployment anddiminishes one of the most cons of Desktop-Application. With Ajax,Web-Applications run faster and with enhanced user experience.

    Before we get started it is important to say right here and now thatthe define question above must always depends on the businessproblem.

    It will be an obscene act for a developer or architecture to choosea technology based on a whim. Technology should not be chosenon the stuff professionalism either. Many companies choosetechnology because this is what the current developer knows andgood at.Choosing the right application type is crucial in many businesses.The end users and the business problem on hand, is the ones whoshould take the lead in the decision making.

    This article does not deal with a certain business issue. It spreadsa common cons and pros of each technology.

    1

  • 8/15/2019 A Software Architecture Toolset for Choosing the Right Type of Client Application

    2/12

    The Dialog

    I choose to face with this question in a dialog form. The dialog isconduct between two software architectures. Socrates: a Web-Application advocate and Plato: a Desktop-Application advocate.

    The dialog format allows me to not take a stand. In a matter of factI don't have a stand. I think both technologies are great and whenthere is a need to choose one of them it should be according to thebusiness problem.

    You are most welcome to join to their, imaginary, debate held inmodern Greece in one of the Tech-Ed .Net seminars.Socrates: But Plato, your claim about the needs for constant softwareupgrades only strengthens my argument that Web-Applications arethe best technology. In Web-Application the application is actuallylocated on a remote server which you can upgrade when ever it'sneeded and it reflects to your users online. In other words, whenall the code is in one place everyone sees the latest release.

    Plato:Well, with ClickOnce technology a Windows-Form-Application canbe deployed and launch from the Web. With this type oftechnology software upgrades have never been easier to maintain.

    Socrates:Oh, I heard about what it is capable of, but isn't too cumbersome toaccomplish? You do need to make all the assemblies strongly

    named and the amount of folders and files it created on the webserver is quitewell cumbersome. Moreover, who want to installa Desktop-Application on his hard drive if he does not have to?

    Plato:Well, it is reasonable to say that this technology will be improvedby the Redmond fox in the future. Right now, the user can choosebetween offline and online executions. In both modes theapplication is installed on the machine. The difference is that in

    offline mode the application can be jump start and get updated

    2

  • 8/15/2019 A Software Architecture Toolset for Choosing the Right Type of Client Application

    3/12

    from the desktop while in online mode it can be run only from theweb link as before.Please also know that ClickOnce is not the only solution. A "homemade" solution like using a Web-Service that the Desktop-

    Application communicates with, checks and install updates areeasy to develop.

    Socrates:So you are basically saying that in online mode, which is closest torunning a Web-Application, the application is reinstalled again andagain in each run. What if it is a big application in term of Megabytes? Well, my dear Plato I rest my case.

    Plato:No, you haven't, because there is some kind of cachingmechanism that improves this behavior. The .Net Framework onlydownload the required files.

    Socrates:Hmmm, .Net Framework you said. Well do I smell a softwareperquisite 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. Thedeployed ClickOnce application can be easily defined to supportthe installation of the .Net Framework (bootstrapper).Dear Socrates, as you well know Web-Applications are commonlyrequires ActiveX installations? Those requirements often scareusers because they are commonly causing the web browsers to

    display intimidating security.

    3

  • 8/15/2019 A Software Architecture Toolset for Choosing the Right Type of Client Application

    4/12

    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 theapplication has rights that are granted from the logon user. It canbe reach to system data like IP Address, Registry, Files, WindowsShell integration etc. In a script mode the Web-Application is verylimited and the ActiveX technology is one of the last resorts. Web-

    Application can not leverage local resources like CPU or installedsoftware 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 fancierUI controls.

    Plato:Do you also agree that Web-Application will never be capable tosupport GUI and visualization functionalitieslike Desktop-Application?. For example, user interface must be travel back andforward across the web in order to be refreshed.

    Socrates:I wouldn't say ever. Ajax, for example enhances the UI capabilities.

    Plato:

    4

  • 8/15/2019 A Software Architecture Toolset for Choosing the Right Type of Client Application

    5/12

    Ajax also added tons of client-side script code and that hurtsperformance 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 areimpossible. Isn't also true that developing in this kind of scriptlanguage is klutzy?

    Socrates:With today's ASP.Net technology server code (code behind) can bewritten in a high level language (any .Net aware language) that canbe of course debugged. As for client and server side scripts I amafraid you are right.

    Plato, with you permission I would like to talk about applicationavailability. As you recall, in Web-Application the application isavailable and can be access from anywhere without installinganything on the client machine. For example, Gmail is a web-based Email application. You can enter to your Inbox no matterwhere you are. In case, you are entering an Internet-Caf yousurly be permitted to enter to Gmail but not to install anyapplication on the machine.

    Plato:

    5

  • 8/15/2019 A Software Architecture Toolset for Choosing the Right Type of Client Application

    6/12

    Yes, I see your point. But what if I am in my home or at the officeand I want to see my Emails but the Gmail server is down or I havetemporarily lost my Internet connection. I will not be able to see myEmails right? Web-Application must be connected to the server all

    the time. In other words Desktop-Applications offer better offlineand caching capabilities. There is no need to waste time waiting forscreens to refresh or networks to become available.

    As opposed to:

    6

  • 8/15/2019 A Software Architecture Toolset for Choosing the Right Type of Client Application

    7/12

    7

  • 8/15/2019 A Software Architecture Toolset for Choosing the Right Type of Client Application

    8/12

    Socrates:Well, if you need smart caching and offline capabilities you areright. Another thing that I would like to mention is a cross-platformcapability. 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 youwill still need to support and test your application on lots ofversions like: 98/ME/NT/2000/2003/XP/Vista. Not including subversions like Home and professional editions. You will soon noticethat the above OS supports different API and act differently. Incase of a Web-Application you are running within a well testedapplication (like IE) that was already tested on those OS. WebBrowsers are also committed to standards like HTML and Java

    scripts interpretation.Therefore, as long as you stick to standards you will have noproblems.

    Plato:At the beginning, you have almost convinced me, but then I havefigured there are a lot of web browsers vendors and lots of webbrowser versions. Also there are a lot of technologist like ActiveXand 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 ofsimplicity and flexibility capabilities.

    Plato:It is true! But at the same time it is also very limited. With XAMLmarkup language, Desktop-Applications also enjoy the flexibilitylike HTML plus much more enhanced UI capabilities.

    Socrates:OK, Plato we are not even close to end this debate, but I do needto go. I have a meeting with Xenophon at the local SPA.

    Plato:Adio! Socrates. Send my regards.

    8

  • 8/15/2019 A Software Architecture Toolset for Choosing the Right Type of Client Application

    9/12

    What does the future holds:

    It is hard to say what to future holds. One should be a profit to tell.I think that we are going to face with the article question for a longtime, at least for the near future.

    Looking at brand new developing styles like Smart Client andAjax, makes you think that no new revolutionary progress havebeen made in the last years.

    "AJAX is not a new programming language, but a new way touse existing standards."(http://www.w3schools.com/ajax/default.asp )

    "Smart client isn't a technology, and it isn't any specificarchitecture. It is a style of application that combines the best ofboth Desktop-Applications and Web-Applications."(http://msdn.microsoft.com/smartclient/community/scfaq/default.aspx)

    Some of the common use technologies are really very old:

    ActiveX in 1990 (http://en.wikipedia.org/wiki/ActiveX)

    VB 1991 (http://www.startvbdotnet.com/dotnet/vb.aspx)

    MFC -1992

    In 1994 the very earlier version of HTML was introduce

    (http://www.w3.org/MarkUp/historical). Java Script in 1995

    (http://www.oreillynet.com/pub/a/javascript/2001/04/06/js_history.html)

    Flash - In 1996

    9

    http://www.w3schools.com/ajax/default.asphttp://msdn.microsoft.com/smartclient/community/scfaq/default.aspxhttp://msdn.microsoft.com/smartclient/community/scfaq/default.aspxhttp://en.wikipedia.org/wiki/ActiveXhttp://www.w3.org/MarkUp/historicalhttp://msdn.microsoft.com/smartclient/community/scfaq/default.aspxhttp://msdn.microsoft.com/smartclient/community/scfaq/default.aspxhttp://en.wikipedia.org/wiki/ActiveXhttp://www.w3.org/MarkUp/historicalhttp://www.w3schools.com/ajax/default.asp
  • 8/15/2019 A Software Architecture Toolset for Choosing the Right Type of Client Application

    10/12

    Smart-Client vs. Rich-Internet-Application (RIA)

    "Rich Internet applications (RIA) are web applications that have thefeatures and functionality of traditional desktop applications. RIAs

    typically transfer the processing necessary for the user interface tothe web client but keep the bulk of the data (i.e. maintaining thestate of the program, the data etc) back on the application server."(http://en.wikipedia.org/wiki/Rich_Internet_application)

    Rich Internet Applications are already here. Google is one of theworld leaders in Rich-Internet-Application. Here are some ofexamples: Gmail, Google Calendar, Google Docs andSpreadsheets.

    10

    http://en.wikipedia.org/wiki/Web_applicationhttp://en.wikipedia.org/wiki/Application_softwarehttp://en.wikipedia.org/wiki/User_interfacehttp://en.wikipedia.org/wiki/Web_clienthttp://en.wikipedia.org/wiki/Program_statehttp://en.wikipedia.org/wiki/Application_serverhttp://en.wikipedia.org/wiki/Rich_Internet_applicationhttp://en.wikipedia.org/wiki/Web_applicationhttp://en.wikipedia.org/wiki/Application_softwarehttp://en.wikipedia.org/wiki/User_interfacehttp://en.wikipedia.org/wiki/Web_clienthttp://en.wikipedia.org/wiki/Program_statehttp://en.wikipedia.org/wiki/Application_serverhttp://en.wikipedia.org/wiki/Rich_Internet_application
  • 8/15/2019 A Software Architecture Toolset for Choosing the Right Type of Client Application

    11/12

    Rich Internet applications characteristics:

    Run in a web browser

    Typically much more responsive than a standard webapplications

    Richer UI

    Has a look and feel of a desktop application

    Smart-Client characteristics:

    Are delivered over the web

    Do not require installation

    Automatically update without user action

    Trends

    The complexity of application is increasing

    Connectivity and Network awareness- Different application

    types to the same source of data. Connect to the data fromMobile, Desktop application at the office an over the web

    when out of the office A2A similar to B2B only with application that can talk with

    each other using standards like Bluetooth for Mobile devices.

    Application recovery return to previous state no matter

    what happened to the last application run.

    11

    http://en.wikipedia.org/wiki/Web_browserhttp://en.wikipedia.org/wiki/Web_browser
  • 8/15/2019 A Software Architecture Toolset for Choosing the Right Type of Client Application

    12/12

    Summary

    Choosing the right technology must be anchor to the businessproblem on hand.

    You would not develop a diagram drawing application like MS-Visioas a Web-Application as you would not choose a Desktop-Application for Amazon book store.

    The article describes some of the Cons and Pros of eachtechnology. Knowing them is a good start for a decision making.

    Read more:

    Smart Client FAQhttp://msdn.microsoft.com/smartclient/community/scfaq/default.aspx

    What is a Smart Client anyway?http://blogs.msdn.com/dphill/articles/66300.aspx

    http://www.ajax.org/

    The future of application virtualizationhttp://www.cbronline.com/article_cbr.asp?guid=5191C403-22CD-47F4-98BB-FBF22219C4E0

    Rich Internet Applications: Design, Measurement, andManagement Challenges, Keynote Systems, 2006http://www.keynote.com/docs/whitepapers/RichInternet_5.pdf

    12

    http://msdn.microsoft.com/smartclient/community/scfaq/default.aspxhttp://blogs.msdn.com/dphill/articles/66300.aspxhttp://www.ajax.org/http://www.cbronline.com/article_cbr.asp?guid=5191C403-22CD-47F4-98BB-FBF22219C4E0http://www.cbronline.com/article_cbr.asp?guid=5191C403-22CD-47F4-98BB-FBF22219C4E0http://www.keynote.com/docs/whitepapers/RichInternet_5.pdfhttp://msdn.microsoft.com/smartclient/community/scfaq/default.aspxhttp://blogs.msdn.com/dphill/articles/66300.aspxhttp://www.ajax.org/http://www.cbronline.com/article_cbr.asp?guid=5191C403-22CD-47F4-98BB-FBF22219C4E0http://www.cbronline.com/article_cbr.asp?guid=5191C403-22CD-47F4-98BB-FBF22219C4E0http://www.keynote.com/docs/whitepapers/RichInternet_5.pdf

Recommended