sanderson wrote:
Hello,
We've inherited a larger system that is currently using version 1.0.2005.1 (Self Servicing I believe) and are currently licensed to version v2.6. We've had a look through the documentation on upgrading, but do not see a clear path; only things to watch out for.
That's because there's no clear path in these things, just potential breaking changes you might not run into.
Currently the application has EntityCollectionBase in the base forms which most other forms inherit from and override with their needed types.
Ok, so you're using selfservicing
Some questions we have are:
a) Would it be better to upgrade to v2.6 first then v3.5 or straight to v3.5?
I think it's wise to first make the move to v2.6 so you have the breaking changes from 1->2 solved. One thing to look out for is the predicatefactory and the sortclausefactory. These classes were deprecated in v2 and are removed in v3. It's possible to add a template for this in v3, but it's not recommended (as the classes produce a lot of code and are replaced with better ways to formulate predicates).
b) How best to upgrade the code? Would a possible recommended upgrade path be:
1) Install version 2.6 in another system.
2) Compile a new ORM
3) Reference the new ORM and Assemblies of 2.6
4) Update all EntityCollectionBase to be EntityCollectionBase(Of EntityBase)
5) Install v3.5
6) Compile the new ORM
7) Reference the new ORM and Assemblies of 3.5
Any assistance is welcome. Thanks.
Generate the code from v2.6 on top of a copy of the v1.0.2005.1 generated code. You can load the .lgp file from v1.0.2005.1 into v2.6 and simply press F7 to generate the new code. Then change the references to the runtime libraries
Then compile the code and see what's breaking.
In step 4, change to IEntityCollection instead.
In v3 we got rid of the binary project file format, so the .lgp file has to be converted (using v2.6) to a v3 xml file. (we have a template for that on the website). In v3 you repeat the steps: generate code in v3 on top of the v2.6 code (copy so you can go back), update references and see what breaks.
If you run into problems upgrading, e.g. you see things break which weren't documented, or you run into the predicatefactory problem as well (if you use that, you'll run into it), please let us know. We recommend refactoring the code to not use the predicate factory but if you must, there's a guide for adding the template back to v3.5: http://www.llblgen.com/tinyforum/GotoMessage.aspx?MessageID=119820&ThreadID=21271 this thread describes what you might into and how to solve it