views:

314

answers:

8

I have been working on a project that has 2 interfaces - windows forms and web. Over the past 8 months, we have faced more issues with maintenance of our web apps (works in IE not in FF, ajax breaks in some weird ways that is not easy to debug... ) and so on.

On the other hand, the winform app is easy to install. We have a xcopy version and click once deployment of it that allows the user to click on a link in the browser to download and install.When we upgrade the app all we need to do is to publish it on to the server and send an email with a link. When the user clicks on the download link ... they have a new version... all that is needed is the 2.0 runtime.

Is the tide now changing over to smart clients?

EDIT: Are the browsers now causing the problems with web apps (too many platforms.. not all of them following the same standards) that plagued the client apps?

EDIT: Web applications have to be tested on as many as 4 browsers (not to mention IE - IE 6, IE 7 and IE 8). Whereas smart clients run on top of the framework, so they dont need to be tested on all the OS's.

+1  A: 

Maybe the tide is changing to silverlight?

But the deployment of smart clients is often quite easy (clickonce).

Theo
+1  A: 

Traditionally, the advantage held by web apps was that they were easily cross-platform and deployment became a non-issue.

With technologies such as ClickOnce, the deployment is less of a hassle... so if your app only needs to target a limited set of platform(s), it does allow for a consistent, controllable user experience.

ahockley
A: 

Stuff like java web start also exist since millenniums but it didn't take off...

On the programmer perspective, those techs are definitely the better way. To make an application on the web, you really are just hacking around. Will they take off one day? Only time will tell. I hope so though.

Loki
I think Java Web Start is plagued by things like the aesthetics of Swing and the monster that is Java ... I mean, to just be honest about it ...
BobbyShaftoe
+1  A: 

We had a PHP website for our intranet utility. We have switches since 2 years over a C# application with ClickOnce and everybody love to works with a desktop application. Update are done automaticly and the developement team have reduce to about 70% all GUI/Visual times. We might have this high level or success because most computer are pretty the same (all same OS and about all the same configuration) but well : success for us. Hope this experience give you some help to take your decision.

Daok
+2  A: 

I've had some experience with this issue myself. One thing I've found is that some business and software management folks mistake the shallow learning curve* of web development with cheap development cost. If your project requirements are sufficiently light, it may be cheaper to build and deploy a web app, but I've found that there's a threshold where making a web app any more sophisticated becomes a massive pain compared to developing a desktop application. People turn to technologies like Flash or AJAX to bridge the gap, but sometimes it is much simpler just to write an app that runs locally and makes web requests than to provide the UI as a web site.

Aggressive marketing of .NET certainly helps in terms of turning the tide. :) I've had clients who don't really care whether an application runs locally or as a web site, just so long as it's using the .NET platform. This makes it easy to use the WinForms API for those really UI heavy projects that would cause nightmares as a web app.

* By "shallow learning curve" I mean that a web developer can start in HTML & CSS, mix-in JavaScript bit by bit, and move on from there to PHP--all of which are friendly tools compared to C++ or C# from the novice's perspective.

Parappa
A: 

When you have control over the client base, you have better control over your app and thick clients can work well in those domains (notably behind the firewall in a corporate environment).

But your winform app has dependencies on: the OS, the .NET install, etc. So, as long as you're running Windows and a compatible .NET framework, you're good. But obviously as clients progress, those assumptions will need to be maintained.

Save for the "weird Ajax issues", if you had mandated everyone use the same browser (just like you mandate everyone use Windows and .NET), then those incompatibility issues would "go away".

Obviously, Ajax development and the browsers are not as mature as other development models and tool suites, but it's getting a LOT better, and very quickly. The maturity of the browser platform, particularly in this new space, are the primary detriments of "Fat Ajax" model.

But, we now have FOUR major companies/organizations pushing VERY hard on this model, and think that the "Fat Ajax" model will continue to raise the bar where it's a better choice for a wider range of applications.

Will Hartung
I agree that mandating the use of certain browsers would solve lot of problems, but it is highly unlikely that the users switch over to the "recommended browser". On the other hand, creating a winform application would force the user to download the app (provided they have the runtime).
Nick
I really think Microsoft made a big mistake by not incorporating .NET a lot more. Having it as simply an optional download still makes many feel like MS is not committed to it being a serious development platform. I've heard many IT managers hesitate to install .NET for that reason.
BobbyShaftoe
Well, that's the game. As long as you can "force the user", then you can control the discrepancies that can make development and deployment difficult. The more open the deployed based, more the more issues you will have.
Will Hartung
A: 

In my opinion coding for the various browsers isn't nearly as difficult as trying to get a native GUI app to function properly on mac, windows, and *nix (not to mention the various windowing platforms in *nix land). But if you only need to support relatively modern windows computers, you may have a point.

Nick
+1  A: 

Programming Paradigms are pendulums. Things will shift back to Thick clients and then back to Thin clients.

Take Cloud Computer for example - distributed computing has existed for 30+ years. But it's "new" now that we've put a kitschy name on it.

Web 2.0 is in right now, but it will go out and "smart" clients will be back in. Then "Web 3.0 - This time with more Whistles" will come along, and push "smart" out.

What has been will be again, what has been done will be done again; there is nothing new under the sun.

Gavin Miller