Rockford Lhotka
    CTO at Magenic
    Author, speaker, software architect
    Creator of the CSLA .NET framework

About me
Contact me


Version 3.6.1 change log


This document is the change log for version 3.6.1 of CSLA .NET for Silverlight.


For a more complete list of changes, go to, select “all issues” and filter the status to “closed” and/or “checked in”.


Click here for a list of known issues with this version.


Release 3.6.1-090204:


Serialization (090204)

Rework the code for OnDeserialized() in BusinessBase, ReadOnlyBase, BusinessListBase and ExtendedBindingList to try and minimize the impact if someone forgets to invoke base.OnDeserialized() in their subclasses. This is still not foolproof, but should avoid some common issues. People should still call base.OnDeserialized() before doing any other work in their override of the method.


Pre-release 3.6.1-090130:


Indexable attribute (090129)

Added the Indexable attribute to the Csla namespace. While LINQ to CSLA doesn’t yet exist in Silverlight, having this attribute means that .NET classes using it will compile without error on the Silverlight side.


DataPortal (090129)

Add a DefaultEndPoint property to WcfProxy and EndPoint property to WcfProxy<T> so it is easier to configure the proxy to use a different endpoint name from the config file.


DataPortal (090128)

Make GetProxy() a virtual method so a subclass can create and configure its own proxy object.


PropertyStatus (090127)

The control was accidentally enabling the UI control for a read-only property. This change means that PropertyStatus will now explicitly disable the UI control if the property is read-only or the user isn’t authorized to change the property.


Pre-release 3.6.1-090123:


Field Manager (090123)

Add functionality in field manager so it uses reflection to force the initialization of static fields in every class in an inheritance hierarchy, thus eliminating the need to use the _forceInit technique described in Expert C# 2008 Business Objects.


In Silverlight, reflection can not access non-public fields, so if you want to make use of this capability, you need to declare your PropertyInfo<T> fields as public in scope, not private as is more common. Or to be more precise, you need to make sure each class in the inheritance hierarchy defines at least one static field (of any type) that is public, so the reflection code can read the value of that field.


DataPortal (090120)

Fix issue with BeginCreate() where the business object type was incorrectly inferred.


Field manager (090120)

The Value property of FieldData is now virtual.


Pre-release 3.6.1-090114:


Serialization\MobileFormatter (090114)

Add support for DateTimeOffset type.


FieldManager (090114)

Make the GetFieldData() method public.


BusinessBase (090114)

Fix issue with null values and string properties, so a string property set to a null is actually set to string.Empty.



(Updated 2/4/2009 9:00:02 PM)