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
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
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.
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
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