The blog of Eric Sibly; focusing on mountain biking, .NET development for the Desktop, Smartphone and PocketPC.

Saturday, January 14, 2006

Browser vs Smart Client...

Yesterday, I got into a discussion with a number of my esteemed colleagues at work about my disdain for the likes of AJAX and Web based applications. For the record, I do not have a problem with the technologies per se, more with the way in which they are used and abused. In essence I believe there is a time and place for each type of technology.

Just because you can do it doesn’t mean you should!

Browser

I think that there is a place for browser based Web Applications – specifically where reach is of the up most importance. This is the obvious choice for the likes of organizational home pages, e-zines, search engines, blogs, ebay, or amazon for example.

The challenge with these applications can be the browsers themselves, in that they all do not support the same Web standards, and as such there is an additional cost associated with the development depending on the features being targeted for often a small percentage of users. What version of IE, what about Firefox or Opera, etc? Sometimes I believe an organization is better off ignoring a small percentage of users to focus on the majority to provide them with the best possible experience, than provide an average experience to all.

My real issue with browser applications is where the applications are targeted behind the corporate firewall. These organizations typically have an SOE rolled out, so hardware and software specifications and versions are controlled and understood. Where these applications have a high user count and are highly interactive, then they are not best served with a browser application – an improved user experience can be provided by a Smart Client.

I know a lot of organizations in the past looked at Web applications as a way to solve deployment issues, but with Click Once and other related technologies for rolling out updates this point is now largely redundant.

Reach and application context should be the driver!

AJAX

Don’t get me wrong, I think this is cool, and it certainly solves the constant post-backs for updating lists for example, and it can greatly improve the user experience. (I like some of the stuff on Windows Live for example.)

But I fear it could really be abused, where all sorts of little pop-up style windows with right-mouse context menu options are going to scare off the mom & pop user – i.e. the average consumer.

Use wisely!

Smart Client

Where an application has significant user interactions and reach is confined to a specific operating system then a Smart Client application is the best choice. I think OWA is fantastic for checking emails etc. when on the road, but Outlook kicks its ass for improved functionality and experience – there is a time and place for each (context)!

Smart Client enables us to utilize the power on the users machine, to effectively integrate with their day to day tools such as Office. Advanced UI controls and application integration can more easily be achieved with Windows Forms than ASP.NET controls, state management and caching is simpler as it no longer needs to be managed directly on the server. With Web Services, WSE and the WCF enabler we now also have an effective means of communicating between the client and server. With SQL Express we have the ability to effectively cache data on the local device.

The story for Smart Client applications is continuing to improve, with Click Once, and WPF on its way. Deployment is no longer an issue, security is not a problem as the applications run in a security sandbox, and they can also be set up to run within the browser. It is with WPF that these applications will really match and surpass the advanced user interface style introduced by the browser providing a rich and immersive experience for users.

In the future I think we will see the likes of the standard Amazon web pages, with an enriched shopping experience enabled by WPF - as first eluded to back at PDC03.

Take advantage of the power and flexibility of the user's machine!

Conclusion

I think it is now time for organizations and technologists to reconsider their choice of application enabling technology, and to look to choose the appropriate technology that best serves the organization and its users.

Finally, why invest in these great PCs and Laptops and not really take advantage of their inherent power?

5 Comments:

Blogger KiteBoy said...

Hi Eric,

I have been trawling the net looking at Smart-Client vs Browser based solution information and was very interested in yout post. Being a Brisbane boy myself the holiday rip story reminded me what I am missing being in the UK and moutain biking round south east queensland were also cool.

I really want to just pick your brain a bit about the client vs browser debate.

I have a great idea that I am working on. It could be done in a browser but I have some heavy graphics processing to do. I also want to build a messaging client into the application to add some cool features to the app through sharing stuf. I am also attracted by the ability to hold local data (SQL) and have the app avaliable offline. So far sounds like a good candidate for Smart-Client. But I also have some traditional Web type components such as shopping basket etc etc. I also have the reach problem in that this would be avaliable over the internet hopefully to a very large audience.

On the smart-client side I am confident that I can do everything I need to. But my concern is scaling and massive scale deployment of a windows client app.

My background is in the networking space and the people I have spoken have given me very different answers most people seem to be riding the Ajax band wagon and seem to think it is the solution to every problem.

Would be very interested in your views.

Cheers,

Jonathan

9:03 pm

 
Blogger chullybun said...

Kiteboy, with respect to the functionality you describe it sounds like Smart Client could be your solution. Depending on the graphics requirements a browser would not lend itself well, unless you use WPF or Flash. Local data storage offers permission issues from the browser, so Smart Client again looks the fit. As to scaling, this depends. The Smart Client app should be fine, and ClickOnce would provide an effective deployment mechanism. It would then be the scalability of your web services.

1:39 pm

 
Anonymous Anonymous said...

Nice site!
[url=http://wenkzmvo.com/fwzd/ipvj.html]My homepage[/url] | [url=http://jgshzrzs.com/kwyl/treq.html]Cool site[/url]

12:02 am

 
Anonymous Anonymous said...

Nice site!
My homepage | Please visit

12:02 am

 
Anonymous Anonymous said...

Nice site!
http://wenkzmvo.com/fwzd/ipvj.html | http://tjukscls.com/ztfm/idrz.html

12:02 am

 

Post a Comment

<< Home