How is CSLA .NET for Silverlight different from Windows?
For the most part CSLA .NET for Silverlight is the same as CSLA .NET for Windows. But there are some differences, and I'll try to list the most important ones:
Serialization is different, and so
you really want to use managed backing fields
- otherwise you'll have to do a lot of work to manually serialize/deserialize all your private fields. If you have any private fields in your classes, you have work to do.
Serialization is different, and so if you have any
Serializable objects that don't inherit from a CSLA base class
you'll have to make them inherit from one of the Csla.Core serializable base classes (like MobileObject) or manually implement IMobileObject (which is a pain).
LINQ to CSLA is not implemented in Silverlight
, so if you rely on the LinqBindingList behaviors you'll need to work around that in the Silverlight side. I can't say when L2C will exist in Silverlight.
All data access (data portal usage) is async
. This will impact all your factory methods, but not your data access methods.
All server interacts are async. This will impact any
business or validation rules that talk to the server
(via a Command object, etc). These rule methods need to be rewritten to be async rule methods for Silverlight - which is not usually a huge change, but does take some work.
Authentication is different
, though we tried to mirror most of the .NET concepts. The good news is that
authorization is the same
.
In 3.6 the XAML UI components are unique to Silverlight
. In 3.7 I expect they'll be a lot more like the WPF components because Silverlight 3 has element binding.
This forum thread
also has good information.