Migrating from CSLA 2.1.4 to 3.8.1

Migrating from CSLA 2.1.4 to 3.8.1

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


fruitloops posted on Friday, November 13, 2009

HI All!

We have a CSLA application that was created a while back (2.1.4) to be exact and currently we're checking out the possibilities of migrating this app into 3.8.1 or at least 3.7 to go alongside the 3.5 framework (it's running at .Net 2.0 at the moment).

now the questions and little bit of background.
provided we have a few minor modifications on SortedBindingList (implemented a CSLA 3.0 sort into the 2.1.4 framework), OnDeserialized on the BusinessBase.as well as validations which could be easily migrated.

as far as the migration is concerned we were able to change the framework and still compile properly, however the behavior between a root object and a child object specially the serialization part seems to be different.

also would there a document to help in the upgrade without going through all the change logs that csla went through? afaik we won't be changing how the app was implemented since it's working as intended but simply changing the framework so all of our apps would be running on a single CSLA version.


Thanks!!!

RockfordLhotka replied on Friday, November 13, 2009

The Expert 2008 Business Objects book covers 3.6, and therefore talks about how your target version (pretty close anyway) works.

The change logs are the only list of tactical changes, and the 2008 book is the higher level discussion of how/why 3.6+ works like it does.

Since you are already on 2.1 your job is easier, because the framework is mostly backward compatible to 2.1 - all the way through 3.8. Yes there are some breaking changes as listed in the change logs, but most of them don't impact everyone and several only impact edge cases or specialized advanced scenarios.

There are a small number of bigger changes I think.

  1. If you use Windows Forms, in 3.0 the framework started enforcing proper use of n-level undo by throwing exceptions if the calls get out of sync. This is a breaking change, in that it reveals bugs many people didn't know they had in their UI code, enabling you to fix them.
  2. If you use Windows Forms, in 3.0.2 n-level undo changed (when invoked by data binding) to mirror DataTable behaviors to fix issues with data binding; in many cases this has only positive impact, but is something to note
  3. In 3.5 the AutoCloneOnUpdate was switched so it defaults to true, thereby fixing a host of save-related issues, but also breaking some UI code where Save() was called without using the return value. You can either set AutoCloneOnUpdate to the old behavior and live with it, or you can fix your UI code to be correct.

 

Copyright (c) Marimer LLC