Hi,
I have a legacy product that I need to modify by adding new columns and tables to the database schema. It includes some LLBL generated code as the data access layer. Here is the header from a sample code file:
//////////////////////////////////////////////////////////////
// Code is generated using LLBLGen Pro version: 1.0.2004.2
// Code is generated on: Thursday, October 27, 2005 1:54:13 PM
// Code is generated using templates: C# template set for SqlServer (1.0.2004.2)
// Templates vendor: Solutions Design.
// Templates version: 1.0.2004.2.042205
//////////////////////////////////////////////////////////////
We no longer have the software or license for this version of LLBLGen, so I need to find a way to update it. I downloaded the trial of version 3.5 and generated a new set of code files based on the updated schema to see how that would work. Before purchasing this version I need to look at these issues:
-There are many broken pieces of our custom code due to changes in the generated code, including missing references to things like
CollectionClasses
and
PredicateFactory
. I did some research and found that you can customize the classes generated to some degree, but at least in the case of
PredicateFactory
, it is not even optional anymore. While the new code looks cleaner and better designed, it requires changes to the existing code base.
-Such a fundamental change would also require extensive regression testing of the application, even though the proposed change is small.
So I'm looking at options for how to approach this:
-suck it up and use the new generated code, modify and test the application as required (this leaves us in the best condition for the future)
-find a template, etc for the latest version of LLBLGen to generate code that is compatible with code generated by version 1.0 (this will never be completely compatible)
-find and install a copy of LLBLGen version 1.0, if that is still possible
-modify the generated code by hand (this seems risky/difficult and leaves us in the same position next time)
I'd like to hear your comments on these options, or others if I've missed a better one.
Thanks!