# Sunday, 06 May 2007

Ahhh.. how far we've come now in application developement. Things used to be so easy when I started delving into programming, back then an application was just a program that just ran on your computer and that was it, hmmm and if I started work back then I guess it be a lot of database applications since that was when everything started being digitized. After the announcement of Silverlight recently I think I'll now use this post to reflect on the different methods/types of application developement that are now available.. from a MS technology based perspective of course since that's what I'm most experienced in.

Windows Applications
  • The most powerful, and flexible way to make an application.
  • Windows applications can pretty much do anything, makes full use of a systems resources, etc. etc.
  • If you're dependent on OS level features, then your application might not work well on unsupported OSes. Ie. While WPF applications look DAMN cool, they work well only in Windows Vista, on Windows XP SP1 performance just isn't as good.
  • Troubleshooting user problems is a nightmare, ie. is their system virus infected? how much RAM do they have? Are they running the 32bit or 64bit version of the OS? Do they have proper drivers installed?
  • Deploying updates and ENSURING that users install those updates is not usually a good experience
  • It's hard to make a Windows application look nice and not bore people with the usual look of OS controls.

Standard Web Applications
  • Can be accessed as long as you have a decent web browser and an internet connection.
  • Company IT departments lurve web applications, primarily because if any updates are required to the application all they need to do is to install it into ONE server instead of multiple workstations
  • Troubleshooting problems is simple enough, it's either there's something wrong with your code on the server, or the user's web browser.
  • With a good designer, it's much much easier to make the user go OOOOOOOOOOoooohhh when they're using your web application compared to a Windows application.
  • No access to system resources, you pretty much can only work with whatever HTML gives you.
  • The user experience is less than ideal since every action requires a post back to the server (I'll get to AJAX later don't worry)
  • Sometimes it's difficult to explain to the client that there's nothing wrong with the application and the reason the pages are loading much more slowly today compared to yesterday is because of the bloody ISP!

Web 2.0 (sic.. I hate the term) Applications
  • All the same pros a Web application
  • Via an amalgalmation of Javascript and HTML DOM manipulation (or better known as.. AJAX) allows the creation of websites that are more interactive and gives the illusion of responsiveness of a Windows application.
  • Still no access to system resources, since your program is still running in a web browser
  • Needs a modern browser to work, and some browsers might have different capabilities compared to other browsers. thus..
  • You have to be quite familiar with each browsers object model to ensure that your page behaves properly when users come in with different browsers. Even though there are frameworks out there to assist you in this area it's best to be aware of the potential problems
  • It still might not be Flashy enough for some people

Adobe Flash Driven Web Applications
  • Without a doubt the most widely used way of making your application have a unique look and feel.
  • Allows your web application to have access to rich media interfaces, sounds, videos, animation.
  • The flash plugin allows access to certain interesting things on the user's system like the printer and webcam which might be useful in certain usage scenarios.
  • Usually abused by people to make unnecessary animations. :P
  • Hard to create a data driven application, how so? If you wanted a Flash driven graph that retrieves data from a server backend, there's no easy way (sort of using Adobe Flex Server) to generate such a graph. The common solution is for a server page to return the data in a certain format, say XML or CSV and then your Flash movie's ActionScript code will process the data and generate your application.
  • If you want to make any proper LOB applications with Flash, you need to have a very good handle on ActionScript (I consider this a con since.. like I said this is from an MS technology centric point of view, I'm not saying ActionScript sucks or anything like that.)

Silverlight Web Applications
  • Like Flash it will give your website a rich multimedia experience
  • Silverlight source files are basically text XML files and thus can be generated by ANY server backend technology which you might be using currently, ie. ASP.Net, PHP, JSP, etc. etc. This makes it more appealing for use in business applications for presentating graphs and such cause the backend can generate all the necessary XAML code and pass it over to the control.
  • In Silverlight version 1.1 there'll be support for Visual Basic (among other languages) as a code behind language for the Silverlight application instead of the current Javascript only limitation.
  • New technology, there'll definetly be some friction when trying to convince clients to accept it for use. But's it's the same fight as before when we moved from Windows->Web->Ajax->Flash so.. nothing new here.
  • There's no design tool for making the XAML files that Silverlight uses right now. Microsoft Expression Blend v1.0 doesn't support it, and v2.0 is still far off. That said, even Silverlight itself is in Beta right now so we'll have to see how the landscape looks like when Silverlight actually launches.
  • The really really fun stuff isn't going to happen until Silverlight 1.1!

Note that you can Post As GUEST as well.
blog comments powered by Disqus
Comments are closed.