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

Home
Blog
CSLA .NET
Magenic
Speaking
Publications
About me
Contact me

Login

Version 4.0.0 change log

 

This document is the change log for CSLA 4 version 4.0.0.

 

CSLA 4 includes support for .NET (Windows) and Silverlight.

 

For a more complete list of changes, go to http://www.lhotka.net/cslabugs, 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 4.0.0-100723:

 

LoadProperty (100722)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=772

Apply the non-generic LoadProperty() change to CommandBase and ReadOnlyBase.

 

RC1 4.0.0-100719:

 

Samples (100719)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=748

Removed all samples that won’t be updated for CSLA 4 to avoid confusion. Some of these samples may come back in the future as time permits, but for now only samples that build in CSLA 4 will remain.

 

RuleUri (100719)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=802

Add Arguments property.

 

EditableRootListBase (100719)  Breaking change

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=769

Renamed ERLB to DynamicListBase and DynamicBindingListBase. Fix base class types for WPF/SL as well as Windows Forms. Fix AddNewCore() on .NET side so it returns type T instead of object.

 

Snippets/Templates (100716)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=799

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=798

Add and update some snippets and templates for VB and C#.

 

LoadProperty (100715)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=772

Undo the Beta 3 change to the non-generic LoadProperty() method so the non-generic LoadProperty() no longer calls the property setter. Calling the property setter is problematic, because it forces properties to have setters, and forces Silverlight setters to be public.

 

The new implementation of the non-generic LoadProperty() now uses reflection to directly invoke the generic LoadProperty() method. This ensures that the non-generic behavior is the same as the generic behavior, and doesn’t require that properties have a setter.

 

Child data portal (100715)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=738

Fix null reference issue in the exception handling code in child data portal.

 

Dependency rule (100714)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=801

Constructor for Dependency rule now accepts a list of affected properties, allowing for one-to-many dependencies to be established with a single rule.

 

BusinessRules (100719)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=796

If a rule throws an exception, BusinessRules now includes the rule:// URI as part of the description (along with the exception Message property) to make it easier to determine which rule threw the exception.

 

RC0 4.0.0-100708:

 

Snippets/templates (100708)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=795

Update snippets and templates for CSLA 4 changes.

 

Data portal exceptions (100708)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=794

Fix bug with data portal exception handling and SilverlightRequestProcessor.

 

CslaModelBinder (100708)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=790

Add support for block mode updates and make that the default. CslaModelBinder now suppresses rule checking, allows the model properties to be updated, then runs all object rules before saving the object.

 

This involved adding an ICheckRules interface to CSLA, so other UI frameworks can also use this interface to suppress/resume/check rules.

 

Business rules (100707)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=793

Add Dependency rule to enable reverse dependent properties.

 

BusinessPrincipalBase/CslaPrincipal (100707) Breaking change

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=787

Rename BusinessPrincipalBase to CslaPrincipal.

 

BusinessBase (100705)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=788

Remove non-async DataPortal_Create() method from Silverlight implementation.

 

BusinessRules (100705)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=792

Fix bug in GetFirstMessage().

 

BusinessListBase (100704)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=25

Throw an exception when a non-child object is added to a BusinessListBase.

 

PropertyStatus (100629)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=785

Fix issue with PropertyStatus not displaying/refreshing properly.

 

ObjectStatus (100629) Breaking change

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=786

Remove ObjectStatus.

 

RuleUri (100625)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=784

Encode path data to handle special characters.

 

Beta 3 4.0.0-100625:

 

CslaDataProvider (100625) Breaking change

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=783

The RemoveItem() method now accepts two parameters (sender, ExecuteEventArgs) so it is compatible with TriggerAction and InvokeMethod.

 

RuleUri (100625)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=782

Fix an issue where a long type name would cause System.Uri to fail. On .NET it has a limit of around 256 characters, and on Silverlight just 63 characters for each part of a path name. The fix breaks any long type name into 63 character parts behind the scenes, allowing System.Uri to work as expected.

 

LoadProperty (100624) Breaking change

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=772

The non-generic LoadProperty() method now always invokes the property setter, so it indirectly always uses the generic LoadProperty() method. This means there is complete parity between the two implementations, but it does mean there’s slightly more overhead with the non-generic version of the method. In the case of BusinessBase, the property setter is invoked within a BypassPropertyChecks block, so it does a load operation, not a set operation.

 

IsBusy/IsSelfBusy/IsPropertyBusy (100624)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=780

These three property/methods are now virtual.

 

Async rules (100623)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=779

Provide the Target property to an async rule if the rule explicitly sets a ProvideTargetWhenAsync property to true. Obviously if the rule uses the Target property on a background thread that’ll cause major problems, but that is just bad code and the developer deserves what they get.

 

This does have some interesting ramifications for rule chaining. If async rules chain to other rules (sync or async), the Target value is only provided through the chain when the parent async rules (all the way up the chain) have ProvideTargetWhenAsync set to true.

 

ASP.NET MVC Authorization (100623)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=778

Added HasPermissionAttribute and a set of HasPermission Html extension methods to simplify applying CSLA per-type authorization rules to controller actions and code in a view.

 

ASP.NET MVC ViewModelBase (100623)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=766

Added a ViewModelBase class to provide a basic implementation of IViewModel.

 

BusinessRule (100623)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=777

Remove unused default properties from the base class.

 

RuleContext (100623)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=776

Add a public constructor to enable simpler unit testing of rules.

 

Authorization (100616)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=773

CanReadProperty/CanWriteProperty now call FirstOrDefault.

 

File headers (100614)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=717

All code files now contain a standard copyright header.

 

EditableRootListBase (100606)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=765

EditableRootListBase now has a default AddNewCore() implementation.

 

Data Portal (100603)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=679

It is now possible to change the server exception before it is wrapped in a DataPortalException and returned to the client. This is done by implementing IDataPortalExceptionInspector and using a config entry to tell the data portal to invoke your implementation.

 

There is now also a GenericBusinessException type you can use to contain information about non-serializable exception objects that might be thrown by some components on the server. Remember that all exception objects must be serializable to flow back through the data portal to the client.

 

Field manager (100601)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=768

Fix bug with RelationshipTypes enum.

 

TriggerAction (100601)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=767

Fix issue with setting TriggerEvent property.

 

PropertyStatus (100601) Breaking change

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=764

Remove TargetControl property. Instead of using TargetControl, you should have your UI control bind to the properties of the PropertyStatus control to do things like enable/disable, or change visibility.

 

CslaModelBinder (100526)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=766

Fix duplicate validation error message issue. This also involved adding a new IViewModel interface that a viewmodel should implement so CslaModelBinder can differentiate between a viewmodel and other types of object.

 

Authorization (100525)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=763

Add a TargetType property to AuthorizationContext so a rule will always have access to the type of the target business object.

 

Beta 2 4.0.0-100528:

 

INotifyDataErrorInfo (100520)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=664

Add INotifyDataErrorInfo implementation to BusinessBase for Silverlight.

 

Base classes (100520)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=758

Make sure base classes implement Initialize() and OnDeserialized().

 

BusinessRules (100520)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=762

Fix bug with SyncRoot not being set after deserialization.

 

Common rules (100520)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=761

Add Severity property to common rules.

 

PrivateField relationship type (100519)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=756

Add new PrivateField relationship type to IPropertyInfo so property metadata can know that a property has a private backing field. This change includes making ReadProperty() and LoadProperty() automatically get/set these values using reflection.

 

BusinessRule (100519)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=759

Make IsAsync a virtual property, so it is possible for a rule to adjust whether it is sync or async based on LogicalExecutionLocation.

 

DataAnnotations (100515)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=755

Fix property name display for broken validation rules.

 

BusinessBase (100514)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=751

Add missing Display attribute on IsSelfBusy property.

 

ReadOnlyBase (100514)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=753

Fix issue with MarkIdle() method.

 

MinLength rule (100512)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=749

Fix issue with MinLength rule.

 

ReadProperty/ManagedObjectBase (100511)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=747

Fix issue where ReadProperty() wasn’t properly using default values.

 

Business rules (100510)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=745

Ensure StopProcessing works with successful rules.

 

Templates (100510)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=746

Update templates for CSLA 4.

 

Business rules (100507)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=744

Add SuppressRuleChecking back into rule system.

 

Beta 1 4.0.0-100503:

 

PropertyStatus (100430)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=729

Enhance PropertyStatus to make it easier to subclass the control for customization.

 

EditableRootListBase (100428)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=535

Root objects are now marked as being busy while they are being saved.

 

Silverlight data portal (100428)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=736

Add config option so it is possible to prevent the data portal from sending the client-side principal object to the server on each data portal call.

 

Authorization Rules (100427) Breaking change

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=13

Redesign and implement the authorization rules system.

 

MethodInfo (100424)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=77

Add a MethodInfo type, which implements Csla.Core.IMemberInfo. This is like PropertyInfo<T>, but for methods, and is used by CanExecuteMethod().

 

This also means there are now RegisterMethod() methods in BusinessBase and ReadOnlyBase.

 

ViewModelBase (100421)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=730

Add some pre-processing methods to ViewModelBase.

 

Execute control (100421) Breaking change

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=735

Removed the Execute controls for WPF and Silverlight. Blend 4 has a behavior that does the same thing, so it is better to switch to the Microsoft functionality.

 

Preview 4.0.0-100416:

 

Csla.Xaml.Silverlight (100416) Breaking change

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=734

Move the Csla.Xaml files out of Csla.Silverlight and into Csla.Xaml.Silverlight. To use the Silverlight controls in Csla.Xaml it is now necessary to reference the Csla.Xaml.dll file from \bin\...\Silverlight.

 

This eliminates the System.Windows.Interactivity.dll reference from core CSLA.

 

EditableRootListBase (100414)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=676

Fix issue with undo.

 

SetProperty/LoadProperty (100413)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=731

SetProperty() and LoadProperty() now use ReferenceEquals() to determine equality for child objects.

 

Business and validation rules (100411)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=623

Continued work and stabilization of the new rules system.

 

ReadProperty/LoadProperty (100407)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=384

The non-generic ReadProperty() and LoadProperty() methods are now virtual in BusinessBase, allowing a class to override them to handle private backing fields.

 

Preview 4.0.0-100405:

 

Setup program (100405)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=714

This release is available as a setup program instead of a regular zip archive.

 

Business and validation rules (100405) Breaking change

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=623

The new business and validation rules subsystem is in this release. This is a major change, and is described in this blog post.

 

IDataErrorInfo (100401)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=722

Add IDataErrorInfo support for Silverlight, now that Silverlight 4 supports the interface.

 

Data portal and enum values (100326)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=723

It is now possible to pass enum values through the Silverlight data portal.

 

.NET 4 Client Profile (100326)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=727

Removed the csla.client project and changed csla.core to target the .NET 4 client profile. As a result, csla.core is now named Csla, and it builds into \bin\Client. This assembly works in the client profile and full .NET and so is the one Csla.dll necessary for core CSLA functionality on the .NET platform.

 

The Csla.Silverlight project is unaffected and continues to build Csla.dll in \bin\Silverlight.

 

Data portal (100324)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=591

The .NET WcfProxy data portal channel will now use the CslaDataPortalUrl config value by default. It also defaults to using wsHttpBinding with maxed out message size limits.

 

CommandBase (100323) Breaking change

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=724

CommandBase now implements IClonable, which means it works with automatic cloning when using a local data portal deployment. This brings command objects into line with other object types.

 

RegisterProperty (100316)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=180

RegisterProperty() now picks up friendly names for properties from any display attributes (from DataAnnotations or System.ComponentModel in that order) if the attributes are present. This eliminates the need to supply a friendly name on the RegisterProperty() call itself.

 

Note: passing a null to RegisterProperty() for a friendly name means RegisterProperty() will look for the attributes, and fall back to using the property name if the attributes are not present.

 

Data portal impersonation (100314)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=719

Add attribute to allow impersonation to work through the WCF data portal channel.

 

Custom data portal channels in SL (100314)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=337

Alter the Silverlight data portal so it is possible to create custom proxy/host channels for the data portal that aren’t based directly on WcfProxy. In other words you can now build a proxy/host for something other than WCF, or to use third party WCF bindings.

 

Compressed data portal sample (100314)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=337

Add a sample showing how to apply compression to a .NET data portal channel in a way that is similar to how compression can be plugged into the Silverlight data portal.

 

Generic data portal (100308) Breaking change

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=113

Removed non-generic DataPortal methods. As a result, it is no longer necessary to pass the business object type in the criteria, so any serializable value (object or primitive) can now be used as a criteria value. For example:

 

var cust = DataPortal.Fetch<Customer>(123);

 

On Silverlight the criteria value must be serializable with the MobileFormatter, and so must be an IMobileObject or primitive type (int, string, Guid, etc).

 

TriggerAction control (100308)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=705

Added a TriggerAction control, which is much like InvokeMethod or Execute, but works using drag-and-drop from the Toolbox in Silverlight and WPF, so it is friendly to use with the VS10 designer.

 

Additionally, it is possible to have numerous TriggerAction controls attached to one UI control in the case that you want to handle several UI control events.

 

LinqObservableCollection (100305) Breaking change

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=673

Removed LinqBindingList and the related LINQ to CSLA functionality from 3.8. This includes removal of indexed lists.

 

In its place, added LinqObservableCollection and an extension method for any ObservableCollection called ToSyncList(). This extension method creates a LinqObservableCollection that is synchronized to the original list.

 

This is an explicit action, and so is quite different from the previous implementation. In this new model you do your query as normal, and then sync the results of the query (or the query itself) to the original list using ToSyncList(). This provides for a lot more control over the process and avoids the numerous unexpected side-effects of the previous model.

 

DataAnnotations in .NET (100305)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=690

DataAnnotations attributes are now available on the .NET side of CSLA, because the assembly is now included in the client profile as of .NET 4 RC.

 

Paged list sample (100305)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=716

Added a sample showing how to create an asynchronously loading paged list object. This is particularly useful in Silverlight, but works in WPF and Windows Forms as well.

 

RegEx rule (100305) Breaking change

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=460

Remove regex expressions from CSLA .NET. The RegEx rule is still there, but no longer includes pre-defined regex expressions.

 

MethodCaller (100303)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=550

MethodCaller on Silverlight now uses lambda expressions instead of reflection to dynamically invoke methods.

 

PropertyStatus/BusyStatus (100303)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=701

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=693

Fix issues that were blocking the use of these controls in WPF.

 

CslaModelBinder (100226)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=649

Add a CreateModel() implementation to CslaModelBinder so it can automatically create business object instances.

 

CommandBase, CriteriaBase, CslaIdentityBase (100226) Breaking change

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=713

Changed CommandBase and CriteriaBase to be generic types. Added CslaIdentityBase as a generic type, which is the base class for CslaIdentity. While this is a pretty big breaking change, it means that the RegisterProperty() syntax is now the same for all base class types, which is very helpful.

 

Data portal XAML design time (100226) Breaking change

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=696

Removed all XAML design time support concepts from the data portal.

 

TriggerAction (100224)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=705

Add TriggerAction control, which works like InvokeMethod or Execute, but is VS10 designer-friendly.

 

Data portal (100221)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=228

Optimize creation of data portal proxy object. Also added CslaDataPortalProxyFactory config setting and IDataPortalProxyFactory interface to open up how proxy objects are created.

 

Visual Studio 2010 RC (100219)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=708

Various updates for compatibility with VS10 RC.

 

ViewModelBase (Silverlight) (100218)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=709

The Silverlight ViewModelBase class now inherits from DependencyObject instead of FrameworkElement, so it matches the WPF implementation and is more flexible.

 

ViewModel (100218)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=703

Added IViewModel interface to make viewmodel objects polymorphic.

 

Wpf\Authorizer (100216) Breaking change

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=706

Remove the Authorizer control.

 

PropertyChanged events (100216) Breaking change

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=704

Make Xaml the default behavior for PropertyChanged notification

 

PropertyInfo<T> (100207)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=680

Changed scope of Index property so it is only accessible through interface Core.IPropertyInfo. This allows people to more safely make their IPropertyInfo objects public in scope.

 

FilteredBindingList (100204)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=31

Added overload for ApplySort that accepts string PropertyName and ListSortDirection.

 

MethodCaller (100202)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=227

CallByName() now uses Csla.Reflection, and so gets the benefit of the dynamic lambda creation used to optimize performance (actually avoiding most reflection).

 

SetParent() method (100202)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=683

SetParent() is now a virtual method.

 

Pre-Release 4.0.0-100201:

 

ViewModelBase (100129)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=694

Add Browsable(false) to properties of object that shouldn’t be visible in Data Sources window.

 

Parent property (100129)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=689

Parent properties are now marked as Browsable(false) so they don’t appear in the Data Sources window and are ignored by DataMapper.

 

Data Portal (100126) Breaking change

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=560

When using an object factory with a command object, the data portal will now call an Execute() method instead of Update().

 

Windows Forms data binding (100123)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=241

Enhance data binding support so a business object can be bound to multiple BindingSource controls (and therefore forms) at the same time. There’s a new MultipleBindingSources sample that illustrates how this works.

 

BindingSourceRefresh (100119)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=686

Fix issue with .NET 4.0 client profile and the way the control binds itself to the host. This was necessary to make the control work in .NET 4.0.

 

BusinessBase (100119)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=376

OnPropertyChanged() now has an overload that accepts a PropertyInfo<T>.

 

SL FieldData (100119)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=677

Silverlight FieldData.IsDirty is now virtual.

 

SL data portal (100115)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=536

Client culture values now flow to server through data portal from Silverlight client.

 

SmartDate (100113)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=546

SmartDate tests changed to work better internationally.

 

SortedBindingList (100111)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=461

SortedBindingList throws an exception if the sort-by property name doesn’t exist.

 

BusinessListBase, BusinessBindingListBase (100105)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=678

Add a default implementation of AddNewCore() that uses DataPortal.CreateChild() to create an instance of the child object.

 

Pre-Release 4.0.0-100108:

 

BusinessListBase (100107)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=678

Add default implementation of AddNewCore() that uses DataPortal.CreateChild() to create an instance of a new child object. You can still override this method to do your own thing, but the default is now to just work – oh, and AllowNew now defaults to true of course.

 

BusinessListBase, BusinessBindingListBase (091218) Breaking change

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=336

BusinessListBase now inherits from ObservableCollection<T> - there’s a whole new inheritance hierarchy to support this. The behavior of the new BusinessListBase should be functionally comparable to previous versions, but it now raises CollectionChanged instead of ListChanged, and now integrates nicely with WPF, but won’t work properly with Windows Forms.

 

BusinessBindingListBase is the old BLB, just renamed. It still follows the same inheritance hierarchy it did before, so if you use Windows Forms you should be able to just change your business class to inherit from BBLB and it should continue to work.

 

On Silverlight, BBLB is just a subclass of BLB – they both work the same way. I added BBLB to Silverlight to maintain parity between the platforms, but generally speaking you should use BLB instead of BBLB unless you are reusing an existing BBLB collection from existing .NET Windows Forms code.

 

Csla.test (091204) Breaking change (build/test)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=662

Modified the unit test projects to work with mstest instead of nunit. They may still work with nunit, but I will be using mstest going forward. As of this date 505 of 517 tests pass, so there’s a little work to be done.

 

Flatten folder structure (091204) Breaking change (build)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=661

Bring the older folders (like Csla.core) up a level – essentially eliminate the intermediate \Csla\ folder and intermediate sln files.

 

Parent property (BusinessBase/BusinessListBase) (091203)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=661

The Parent property is now public scope.

 

MobileFactory (091203) Breaking change

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=661

Move MobileFactoryAttribute to the Csla.Server namespace/folder.

 

Silverlight 4 (091125) Breaking change

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=659

Update CSLA .NET for Silverlight and its test project to build targeting Silverlight 4 PDC beta.

 

Csla.Xaml namespace (091105) Breaking change

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=636

Following Microsoft’s general lead, the old Csla.Wpf and Csla.Silverlight namespaces have been changed to Csla.Xaml. This means all XAML-oriented types from WPF and Silverlight are now all in the same Csla.Xaml namespace, providing a higher level of consistency between the two platforms.

 

Solution structure (091105, 091203) Breaking change (build)

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=629

http://www.lhotka.net/cslabugs/edit_bug.aspx?id=661

Rearrange the solution structure and svn repository structure as follows:

 

\Bin\...

\Samples\CslaNet\...

\Samples\CslaLight\...

\Source\Csla.client\...

\Source\Csla.core\...

\Source\Csla.Silverlight\...

\Source\Csla.Silverlight.test\...

\Source\Csla.test\...

\Source\Csla.Web\...

\Source\Csla.Web.Mvc\...

\Source\Csla.Windows\...

\Source\Csla.Xaml\...

\Source\Dependencies\...

 

This puts the server/core (full .NET), client (.NET client profile) and Silverlight projects as top-level elements in the source folder, and arranges the samples folder as a peer. It also puts the UX technologies in their own assemblies per-technology.

 

There’s also a top-level csla.all.sln file that opens all three source projects so it is easy to open and build all three flavors of CSLA .NET.

 

And a csla.test.sln file that opens the CSLA .NET for Windows projects with the corresponding unit test projects.

 

 

(Updated 7/23/2010 9:33:09 AM)