CSLA .NET FAQ

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.

All content and CSLA .NET is Copyright © 2009-2011 Marimer LLC