Is 3.0 backward compatible to 1.0?

Is 3.0 backward compatible to 1.0?

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


AlaskaDan posted on Friday, October 10, 2008

We are currently using CSLA 1.0 and would like to upgrade to 3.0. Is 3.0 fully backward compatible to 1.0? We will begin updating various pieces to 3.0, but we'd like to know that it's not going to break out of the box. If it's not compatible, we'll have to wait until we can make the entire thing 3.0 compliant.

 

Dan

tmg4340 replied on Friday, October 10, 2008

I'd bet the answer is "no".  There were a fair number of breaking changes between 2.1.4 and 3.0, and I'm betting that situation only gets worse as you go further back in versions.  There is a change log associated with the versions on the download page, so you can get a feel for what those breaking changes are.  But I don't think a piecemeal upgrade strategy is going to work too well, especially going that far back.

HTH

- Scott

RockfordLhotka replied on Saturday, October 11, 2008

I would disagree a little Scott. There are major changes from 1.x to 2.1. That is a non-trivial upgrade.

From 2.1 to 3.6 there certainly are some breaking changes, but nothing on the scale of the 1.x->2.1 jump. Everything from 2.1 to 3.6 tends to be pretty incremental.

Though obviously the 3.0 to 3.5 jump can be bigger if you choose to use all the new features. But if you stick with the 3.0 coding style, there are a relatively small number of breaks to get from 3.0 to 3.6.

JoeFallon1 replied on Sunday, October 12, 2008

Scott and Rocky are both right - as you go further back it is harder to manage the upgrade.

The 1.x to 2.x jump was a terrible experience. It took 5 developers 5 weeks just to be able to get the appp to compile! Then we found lots of small bugs over the next few months. Things are fine now though. The changes to Validation Rules was a huge area. The 2.x style is wonderful!! But fixing *all* of the rules to use that style was no mean feat.

We plan to jump from 2.x to 3.6 soon and it should be completely trivial. I have to fix the spelling on some DependentProperties (the old code was mis-spelled and Rocky deprecated it). I also have to verify that I don't have an issue with the change to Equals - Rocky removed the base level overrides due to odd WPF behavior. I may have to add them back in my Base classes to keep things functioning. Not sure if that makes me WPF/Silverlight non-compliant though! I would like to do a small Silverlight app once everything is released - then I can see what changes I will need to make.

Joe

 

RockfordLhotka replied on Sunday, October 12, 2008

I suppose some explicit “gotchas” would be useful.

 

1.x to 2.1 is big – many changes at a deep level. There are no gotchas – just a lot of changes.

 

2.1-3.0 has one big thing – n-level undo throws exceptions if the edit levels get out of sync. Technically this is simply revealing bugs in your UI code, but a lot of people doing Windows Forms have fought with this quite a bit.

 

3.0-3.5 has one subtle, but important thing – the data portal, by default, now clones your objects even when you use a local data portal. So you MUST use the x=x.Save() technique when saving your objects. That’s always been my recommendation, but a fair number of people didn’t follow that approach and have been burned.

 

There are numerous other breaking changes – I’m just calling these out as specific points that come up on the forum repeatedly.

 

Rocky

Copyright (c) Marimer LLC