[c#] Silverlight, Wpf Web App (xbap) or Click Once? Pros and Cons


Answers

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.

Question

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.




If you don't need all WPF I would try do it in Silvelight first Then you can switch to WPF more easily if you need it later.

Here I think it applies the “less is more” principle: it’s true that with WPF you have much more options and can access to the user computer, but that can finally be more a problem than a help as the times go. Think for example in how many changes you can need to change from Windows XP to Vista in an application that uses a lot of the “user computer” resources!







1. Silverlight can access the DOM from the hosting page and
2. the hosting page can access the Silverlight part.
That's a big + for Silverlight

But all other limitations cry for WPF/Windows-Forms with Clickonce
file access, right mouse click, ease of db access




You can add to the pros and cons of the usual stuff of the online vs offline debate. Some items:

Pros

wpf(offline):

  • better access to low level parts of the computer.
  • cpu usage is local, so you rarely have cpu load issues.
  • not dependent of the net.
  • no downtime for maintenance.

silverlight(online):

  • 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.

I simplified it a bit, there are gray areas in the list. I only tinkered with XBAP, so that one I'll leave out. The Cons are not hard to figure out after looking to the pros.

HTH






Links