Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Silverlight, Wpf Web App (xbap) or Click Once? Pros and Cons

We are starting a new project and I'm trying to decide which of the Wpf-esque develop/deploy strategies we should go with. In our case we are looking at quite a complex business app that will be used by 100s (not 1000s) of people, So I'm leaning towards a click-once app. My boss likes the idea of a Silverlight app as it means easier deployment. So which way should we jump?

The answer is, of course, "it depends". So what are the pros and cons of each?

I'll start the ball rolling (Edit Added in some answers from artur carvalho):


Silverlight

  • Pros

Cross browser
Doesn't require full framework.
Better control of users. If your users login, you dont have to worry with activation keys or similar stuff.
It works on Windows and Mac.
You can update all your users apps easily.

  • Cons

Can't interact with client's file system etc
Has less functionality compared with full Wpf (anyone got a good resource that documents differences?)
Single window
Single version


Wpf Web App (xbap)

  • Pros

Full Wpf.

  • Cons

Single browser
Requires full framework
Can't interact with client's file system etc
Single window
Single version


Wpf Click once

  • Pros

Full Wpf
Can work offline
Multiple windows
Multiple versions (con?)
Better access to low level parts of the computer
No downtime for maintenance

  • Cons

Single browser
Requires full framework
Slightly(?) harder to install.

like image 280
Mark Avatar asked Oct 30 '08 20:10

Mark


People also ask

What is the difference between WPF and Silverlight?

WPF can be ran in both a browser or as a WinForms style application in Windows while Silverlight can only be ran in a browser. WPF is intended to run on Windows systems while Silverlight runs on Windows or Mac, also Linux via Moonlight.

Does WPF use Silverlight?

Summary: 1. Silverlight is simply a subset of WPF.


2 Answers

First, I would evaluate whether a web client (ideally MVC+jQuery) can't do the job...

Assuming a full client is warranted:

If it is a business app that demands a client, I would tend to go with the full framework and ClickOnce; the main difference here (re deployment) is that the client must have the framework installed - but past that, ClickOnce deployment is very pain free. Actually, building a ClickOnce manifest is much easier than Silverlight etc, since the IDE will do almost all of it for you; you just have to host the files somewhere (could be a web URL; could be a network UNC).

This gives you much more control (and power) at the client, as well as a far greater range of existing resources to use (for example, if you need, you can use some legacy winform code on the WPF surface). The "requires full framework" is also one of the largest benefits: "has full framework".

You should also perhaps consider the 3.5 "client profile" setup; not sure how wide-spread this is in reality... but worth knowing about.

like image 146
Marc Gravell Avatar answered Sep 30 '22 19:09

Marc Gravell


You didn't say if this is a company only application or a public facing one. That alone will decide it for you.

If company only, I would go with full WPF click once. This will give you everything. Full framework should not be an issue. It's a one time install running in the background so it's not something that your decision should depend on. Cons: it runs in Windows only but if your company is Windows only, this should not be an issue.

However WPF apps could be resource hungry so you need to know if all your client machines are capable of running WPF apps smoothly.

If it's an Internet app, go for Silverlight: it runs under different operating systems.

like image 36
Abdu Avatar answered Sep 30 '22 18:09

Abdu