To edit the various project properties and other related settings, you use the Project Properties Editor, which is described in detail below. To open the Project Properties Editor, load an LLBLGen Pro project, and use the menu option Project -> Properties, or right-click the Project node in the Project Explorer and select Properties from the context menu. This brings up the following dialog:
The Project Properties Editor
This tab contains the following elements
LLBLGen Pro v3 supports various O/R mapper frameworks and a project can have one of them selected as its Target framework. Each framework has its own specific settings, which are used during code generation. The Output Setting Values Tab isn't the only tab where these settings are editable: LLBLGen Pro supports Project Level settings, which are edited in the Project Properties Editor, and Element Level settings, which are edited in the Code Generation Info tab on the element's editor, e.g. the Entity Editor. The Project Level settings are grouped in two groups: the Defaults and the Project wide settings. The Defaults are settings which control the initial value of the Element Level settings. This greatly reduces the time spend for setting each individual element's setting values, as the setting in the Defaults group can be used to set the value for each element it is meant for. You can then still override this value on a per element basis.
The Output Setting Values Tab allows you to edit the settings of the two groups: the Defaults and the Project wide settings, for the Target framework chosen for the project.
LLBLGen Pro supports the automatic conversion of abbreviation fragments in names into full name fragments using abbreviation-full word pairs defined per project. You can specify these
abbreviation-full word pairs in the 3rd tab of the Project Properties.
For example a field called 'Addr' or fields with 'Addr' in the name can be updated with 'Addr' being replaced with 'Address' so CustAddr will then become CustAddress, and if 'Cust' is also added to the abbreviations to become Customer, it will convert CustAddr into CustomerAddress. Abbreviations are stored inside the project file so everyone using the same
project file has the same abbreviations. They're simple Abbreviation - FullWord pairs
and don't use regular expression syntaxis. They're matched with fragments found during name processing. Fragments are elements separated by non-usable characters, space, underscore, a full word, or where an Uppercase/Lowercase change appears. So the string AaBb_CCC Ddd has 4 fragments: Aa, Bb, CCC and Ddd.
The following rules apply:
Custom properties are name-value pairs (name and value are both strings) which can be used in templates to generate project specific information. They can be used to drive custom-made templates, be used as additional output in templates. They don't have a logical function inside the designer. The templates shipped with LLBLGen Pro emit the custom property value pairs in XML DOC fragments into the code, so you can use them to add additional documentation to the various elements. Besides the Project, all major project elements, like entity definitions, value type definitions etc. allow the user to specify additional custom property value pairs. When reverse engineering entities and other elements from the meta-data, LLBLGen Pro will, if available, add the description / additional properties read from the relational model data as custom property value pairs.
The Custom Properties Tab allows you to specify the value pairs for the project itself.
LLBLGen Pro allows the user to specify per-element additional information which is used for code generation, like additional attribute definitions, interface definitions and additional namespaces. Not every information group is available for every element, for example you can't define an additional interface for an entity field.
The Code gen. meta-data defaults tab allows you to specify the defaults for Additional Attributes, Additional Interfaces and Additional Namespaces for the various element types found in the project. These defaults are then inherited by every instance of these types. At the element level you can then decide (by editing the element in its own editor, on the Code gen. info tab of that element's editor) whether you want to inherit the default, ignore it for that element, or add new definitions only for that element.
This allows you for example to specify on the Code gen. meta-data defaults Tab the attribute definition 'Serializable' for the element type 'Entity', which is then inherited by every entity definition in the project. If you don't want this attribute definition to be specified on a particular entity, you can open that entity's editor, go to the Code gen. info tab and uncheck the checkbox for the inherited 'Serializable' attribute. When code is generated for the project, every class representing an entity definition will then have the 'Serializable' attribute applied to it, except the entity you have unchecked the checkbox for, as that entity didn't 'inherit' the project default.