Question

So I'm at the proof of concept stage for a fairly large LOB application. The application will be deployed to many desktops (200+) in many organisations. It will contain lots of CRUD type screens (around 100), along with some pretty complex processes like invoice generation and financial ledger integration. It will also contain lots of reports.

I've already done lots of homework and pretty much settled on a technology stack of:

  • PRISM
  • CSLA
  • NHibernate

All that's missing is the presentation layer and so my question is this:

is Silverlight 3 an appropriate technology to build such a large application?

Initially I was concerned about the lack of a reporting story for Silverlight but now there is a commerial reporting tool available that problem is solved. So now I'm wondering about the size of my application and what the performance will be like when they try to download it in their browser. With 100+ "screens" and a whole load of reports it isn't going to be lightweight by any means.

Is Silverlight 3 a sensible option or should I be looking at WPF instead? The primary reason for SL3 was the problem of deploying to lots of desktops in lots of organisations.

Was it helpful?

Solution

I would suggest Silverlight 3.0 for a LOB application if your application requires the following.

  • A rich client interface
  • Off-line/occasionally –connected scenarios
  • The ability to mimic the web deployment model

As long as the frequency of your releases is reasonable, then I think that these benefits would outweigh the side-effects of a large initial download.

On the flip side, I’d reconsider using Silverlight 3.0 if any of the following are true.

  • You need to interface with USB devices, like scanners.
  • You need to interact with other applications on the client.

If you are guaranteed a standard client, you may want to explore a ‘Click-Once’ Windows application. It overcomes the above restrictions, is not bound by the ‘sandbox’, and you can still use the web-deployment model.

OTHER TIPS

We're doing an SL3 application for 5000+ users but with less screens (30+) and we beleive it's possible. We're also in production with 4 screens app for same amount of users. If you're concerned about download performance you can do two things:

  1. Recompress XAP with something nice, like 7zip - it gives much better results compared to native compressor.
  2. Split application in separate SL3 applications and load appropriate parts on demand.

To make the initial application smaller you can load XAML modules on demand also (even if it complicates things). Generally users won't mind som loading time if the application has good response when you are working with it (and that should fit SL3 nicely). Maybe another alternative would be .net with ajax and SL3 for the UI where it's absolutely needed.

It is quite fresh technology to build such a big app, but it should be doable. If it gets too heavy weight then it can be solved by creating different modules. Remember too keep worktasks that's logically performed together in the same modules.

Take also in account that the Silverlight runtime is only available for Windows and Mac, so forget about Silverlight if you want your application to be usable from a browser in, say, a Linux box.

(Yes, I know that there is Moonlight. But I wouldn't put my eggs on this basket unless for some obscure reason Microsoft decides to participate in this project.)

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top