CSLA 4.2 to CSLA 4.5 upgrade experience

CSLA 4.2 to CSLA 4.5 upgrade experience

Old forum URL: forums.lhotka.net/forums/t/11624.aspx


skagen00 posted on Thursday, October 04, 2012

We have a pretty big Silverlight application.  I just wanted to share our upgrade experience.  It took me a couple of days overall.

Things I needed to refactor included -

CompressedProxy - some changes in that WcfProxy no longer is generic, and that the namespace changed - definitely recommend doing a little search on Hosts.Silverlight as it is now Hosts.Mobile.

There were places where we would override Save() to add a little "pre-save" logic (checking if anything like lock status of the record has changed or what have you).  Save is no longer virtual, but SaveAsync is. 

Any asynchronous behavior on the Silverlight side within the dataportal ended up needing to now be refactored to the async / await logic, as there is no longer callback handlers to basically inject your code before calling the callback.  We used a lot of DP_Create(Csla.DataPortal.LocalProxy<objecttype>.CompletedHandler handler), but more of those were easy - just dropping the parameter and putting the [RunLocal] on the DP_Create.

The Security exception- Csla.Security.SecurityException - created a good amount of need to just qualify the namespace (especially within unit and integration tests).

OnChildChanged was a bit of a suprise that we needed to handle - sometimes we'd do logic on "hey, if any child changes, do stuff".  If "do stuff" was meaningful, it was getting called 7 times for every child property change due to the meta proprties (IsValid, IsDirty, etc).  How we end up working around this in our application is still in debate but for now we just added an "IsStateProperty(propertyName)" to our business object layer to be able to suppress OnChildChanged behavior when we wanted to.

At this point, we are able to run our application and have all 10,000+ tests running successfully.  Looks like the upgrade went fine, though there is more testing yet to do.  We haven't introduced the latest DP changes that have just been checked in but not part of an official beta yet.

 

 

 

 

RockfordLhotka replied on Thursday, October 04, 2012

That is a nice summary, thank you!

Here are some of my notes from upgrading various apps:

Copyright (c) Marimer LLC