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.
Microsoft Silverlight will reach the end of support on October 12, 2021.
Silverlight has a considerable advantage over HTML5 in that 90 to 95 percent of code can be shared with desktop applications. If you have a full-fledged desktop application and a solution to get on the Web, it's easier with the Silverlight model.
Like Flash, Silverlight is an all-purpose plugin for streaming videos, livestreams, animations, and vibrant graphics to devices. However, it relies heavily on Microsoft's XAML — a text-based markup language — for the user interface, animations, and vector graphics.
Silverlight is a framework for building rich, browser-hosted applications that run on a variety of operating systems. It can also co-exist with HTML. Therefore, Silverlight can enhance an existing web application. Silverlight works its magic through a browser plug-in.
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With