Robert Kozak
Robert Kozak

Reputation: 2033

Is there value in using a Silverlight framework?

I'm three weeks into designing a Silverlight 3 LOB application and I've decided to go with Entity Framework, RIA Services, and the MVVM pattern.

Now I'm looking into all the glue. I'm checking into behaviors, ICommand, dependancy properties, IoC, etc.

There are a number of frameworks for Silverlight as of this writing.

Silverlight.FX
Silverstone
CSLA for Silverlight
Prism
Caliburn

Are these necessary?
Do you have experience with any of these frameworks?
Are these frameworks still applicable for Silverlight 3?
What are the pros and cons of work with any of these frameworks.

To be totally honest, I'm not all that interested in CSLA since we don't use it today but I included it for completeness.

Upvotes: 6

Views: 2708

Answers (4)

James Cadd
James Cadd

Reputation: 12216

I like Nikhil's Silverlight.FX as it includes commanding, mvvm and some "fun" items like a mousewheel scrolling behavior. Prism is pretty good too and I think its event publish / subscribe system is more powerful than Silverlight.FX's commanding. Overall I find Prism a bit cumbersome (and not totally relevant if you planning to build a SL3 navigation app). Ninject is my current favorite for DI.

Upvotes: 2

Nikhil Kothari
Nikhil Kothari

Reputation: 5225

I've certainly got a personal bias, based on what I do at work but features I find super useful in any Silverlight project...

  1. Data
  2. Authentication/Security
  3. Triggers/Actions (to keep most of your views declarative)
  4. Behaviors (to encapsulate view functionality into reusable components you can attach to controls)
  5. View Model/MVVM (to separate view from code)
  6. Simple IoC - to get dependencies injected into your view models
  7. Effects, and transitions

If your app is complex/has multiple screens... 8. Navigation and possibly some MVC

1, and 2 - We're hoping to address with .NET RIA Services.

The others, I am trying to provide an implementation via Silverlight.FX... initially as an implementation people can use as-is or as a starting point, and to over time drive them into the platform/SDK.

As far as commanding itself goes, its certainly useful, but not essential in my opinion, if you've got the basic functionality of binding and ability to stitch together events to vanilla methods via actions.

Upvotes: 1

Graeme Bradbury
Graeme Bradbury

Reputation: 3721

One of the things missing still (that is important for MVVM) is commanding. So you will be rolling at least a part of what the framework provides yourself.

I personally don't use any 3rd party framework, but do use an company internal framework that provides me with commanding and has base classes for the ViewModel part of MVVM.

Upvotes: 4

Brad Tutterow
Brad Tutterow

Reputation: 7487

I don't have any experience with those frameworks, but based just on YAGNI and the newness of Silverlight 3 and RIA Services, I would just stick with Silverlight 3 and RIA Services until you can prove that you have a need for an additional framework.

I would guess (pure speculation) that the new Silverlight 3 features, together with .NET RIA Services, address many of the same Silverlight shortcomings that those frameworks address.

Upvotes: 1

Related Questions