This document is the change log for version 3.5.1 of CSLA .NET.
BusinessBase no longer raises a PropertyChanged event when a child object changes. This is because doing so caused nasty side-effects in Windows Forms data binding, and is therefore obviously not intended behavior for that event. Instead, BusinessBase now raises a ChildChanged event when a child object (list or not) changes. The original sender and PropertyChangedEventArgs/ListChangedEventArgs values are provided to the handler of ChildChanged.
This is a breaking change for anyone handling the PropertyChanged event in a parent object to detect changes in child objects.
Beta 2 3.5.1-080717:
Remove one constructor overload: New(name, defaultValue). This ctor could be an ambiguous overload if <T> was string, so removal of this overload was necessary.
This is a breaking change for anyone using this overload.
Add missing overload of
Make several properties virtual to enable extensibility scenarios.
Fix possible formatting issues with special characters and null values.
Beta 1 3.5.1-080623:
Fix bug converting a DateTime to a SmartDate.
Updated the expression evaluator in the CslaQueryProvider to more appropriately match expressions that get passed through to Queryable to the correct method in cases with nested generic parameters.
BusinessBase & ValidationRules (080530-C#/VB)
Mark obsolete methods so they no longer appear in Intellisense.
Add a PropertyChangedMode property to allow configuration of CSLA .NET to raise PropertyChanged events the correct way for Windows Forms or WPF/XAML as appropriate.
In PropertyHasChanged() (and thus SetProperty()), optionally raise PropertyChanged events for all properties for which validation rules are run. This change only takes effect if Csla.ApplicationContext.PropertyChangedMode is set to PropertyChangedModes.Xaml.
Fix an issue where the FieldDataManager could find its edit level out of sync with its containing business object.
Fix a null reference bug and some related issues around n-level undo, data binding and managed property values.
Add an IsFieldDirty() method so a business object can determine if a specific field is dirty.
Change Clear() to only clear the items in the filtered view.
Fix threading issue where an ArgumentException could occur as two threads attempted to add the same item to the dictionary.
Add a virtual OnChildPropertyChanged() method that is called when a PropertyChanged event is handled from a child of the list.
Fix a bug with the way BLB cross-references positions of an item that caused a failure scenario when calling Insert() to add a new item to a list.
Add ICriteria interface and have CriteriaBase implement it. Have MethodCaller use ICriteria instead of CriteriaBase to detect the business object type.
Fix problem where managed backing fields in FieldDataManager were not processed corrected during undo operations triggered by data binding.