|
|
|
Screenshots
|
| |
LLBLGen Pro TemplateStudio
The LLBLGen Pro designer (click picture to enlarge) In the picture the four main areas in the LLBLGen Pro designer are marked. Besides these areas, the GUI contains a menu bar with options you can execute, and a status bar showing you information about the current project. Element specific menu options are shown in context menus when you click with the right mouse button (RMB).
Below the screenshot you'll find a short explanation per designer area.
Project explorer. When a project is loaded, it is visualized in the project explorer. It allows you to browse the complete project, all elements in the project and, via context menus which can be visualized by clicking on various elements, you can add new elements, open editors or sort lists of elements. The project explorer can be docked to all sides of the designer window and can be slided to the side of the window by unpinning the window. Tab area. In this area, all editors are opened. Also, the catalog detail viewer is placed in this area. You can easily browse through the various tabs. The tab-area is multi-row, so you will always see all open tabs. Catalog Explorer. This area lets you browse the complete schema set included in the project. If you create a project, the complete schemaset targeted by the project is embedded in the project itself, so you don't need a connection with the database. You can use the catalog explorer to see every element in the schema set loaded. When you click on an element, the catalog detail viewer is opened in the tab area, showing the details about the element you selected. The catalog explorer has a viewing function, and does not take part in the construction of the project and its elements. Application Output. This area is used by several components in the designer to list output to the user. It has a checkbox for Verbose output or not, a setting which can be controlled through a setting in the application preferences. It's easy to minimize this area away at the bottom by clicking its pin button, so you get more room for editors you open in the tab area.
The project explorer (click picture to enlarge) When a project is loaded, it is visualized in the project explorer. It allowes you to browse the complete project, all elements in the project and, via context menus which can be visualized by clicking on various elements, you can add new elements, open editors or sort lists of elements. The project explorer can be docked to all sides of the designer window and can be slided to the side of the window by unpinning the window.
The project explorer is the place where you handle all elements of your project: it lets you add, edit and delete Entities (elements which are mapped on table or view definitions and support type inheritance), Typed Lists (a list of Entity fields from related entities) and Typed Views (a 1:1 map on existing views in your catalog/schema)
The Entity editor (click pictures to enlarge)These are examples of views in the tabbed area: the Entity editor.
Inheritance info sub tab This is the sub tab which contains a full hierarchy view of the entity in the inheritance hierarchy it is in, as well as additional info about the entity being abstract, the discriminator value (if applicable), and the hierarchy type the entity is in. If the entity is not in an inheritance hierarchy, this tab isn't visible.
Fields mapped on database fields sub tab This sub tab contains all entity fields and information about the database fields, their types, sizes etc. An entity's fields are shown in three possible tabs: Mapped entity fields, Unmapped entity fields, and if the entity is in a hierarchy, Inherited entity fields. The entity editor furthermore contains an area to specify custom properties for the selected field. Custom properties are initially derived from Extended Properties (SqlServer) or description fields (Oracle, other databases) of the mapped table field. You can add new ones, delete the initially created custom properties or edit the custom properties. Custom properties are name-value pairs (both strings) which are generated into the code in a static hashtable.
Fields mapped on relations sub tab This is the sub tab where you can edit the fields mapped on the relations of the entity. You can alter the name and/or toggle the hide flag of the field(s) selected. Hiding fields mapped on relations is sometimes necessary as LLBLGen Pro creates all relations for you it can construct from existing foreign key constraints. An entity can have two possible tabs: Fields on relations and Inherited fields on relations. If the entity isn't in an inheritance hierarchy, the tab 'Inherited fields on relations' isn't visible.
Relations sub tab This sub tab contains a detailed listing of all the relations located in the entity. You can click them open to fully visualize the relation. When you select one or more relations (just the top relations are selectable, not the relations inside an m:n relation), the 'Actions on selected relations' button is enabled and you can then select an action to execute on the selected relations. From the Relations sub tab you can create new custom relations using either the 'Add new custom 1:1/1:n/m:1 relation' or 'Add new custom m:n relation' buttons.
Fields mapped on related fields sub tab This sub tab contains the fields mapped on related fields editor for the entity. This tab is not always enabled: it is only enabled if the entity has one or more 1:1 or m:1 relations, defined in the entity or inherited from the entity's supertype. A field mapped onto a related field is a field which represents a field in a related entity. The fields mapped onto related fields are shown in two possible tabs: 'Fields on related fields' and 'Inherited fields on related fields'.
Custom properties sub tab The last sub tab contains the custom property editor for the entity. As with other custom properties (except the project and typed list custom properties), these are initially derived from the mapped table's Extended properties (SqlServer) or description fields (Oracle, other databases). You can add new ones, delete the initially created custom properties or edit the custom properties. Custom properties are name-value pairs (both strings) which are generated into the code in a static hashtable.
All changes you make in the editor will be reflected in the project immediately. Also, everything is kept in sync, so if you change an entity's name, the name is changed everywhere in the GUI directly.
The Typed List editor (click picture to enlarge)Another example of the use of the tabbed area: the Typed List editor. A typed list is a list of entity fields from a set of entities which have 1:1, 1:n or m:1 relations which each other.
Entities selection sub tab The first sub tab is Entities selection. This is the sub tab which allows you to manage the entities in the Typed List, the aliasses used for these entities, the relations used and the join type to use for these relations. You normally first add all the entities you want to include in the Typed List. On the entities selection tab you also see the relations used to form the Typed List. You can view a relation more in detail and also select an alternative, if there is one available. An alternative relation is available when the current relation is removable from the typed list in favor of the alternative and the entities in the typed list will still be related to each other without having one or more entities 'orphaned' from the rest: it has to be possible to navigate from one entity to another in the typed list over the relations in the typed list.
Fields mapped on entity fields sub tab The second tab is the Fields mapped on entity fields sub tab. This sub tab contains the list of fields in all the entities added to the Typed List (the All available fields list) and a list of fields selected from that fields list, which are the fields making the Typed List (the fields in Typed List list). By default, no fields are in the Typed List, you have to select the fields you want in the Typed List from the All available fields list by checking their checkboxes. In a way this is selecting the fields in the SELECT clause of an SQL query with a multi-table join FROM clause. It furthermore contains an area to specify custom properties for the selected field. You can add new ones, delete the existing custom properties or edit the custom properties.
Configuring the generation process (click picture to enlarge) Generating code is the end result of a design process in the designer. It will take your project definition and with the settings you set for the generation process, it will generate source code and/or produce other output, depending on which tasks you have selected to run and for example which templates you've selected to use. The General settings tab is the tab where you start with. It contains various parameters for the code generation process which will influence the contents and options available to you on the other two tabs.
Template bindings tab The Template bindings tab is the tab where you define the precedence of the template bindings to use. LLBLGen Pro uses template files which are bound to a TemplateID. These bindings are defined in so called template bindings files. On the Template bindings tab you'll see all found template bindings files and their contained TemplateID - template file bindings for the target platform you've chosen on the General settings tab and the target database type.
Task queue to execute tab is the tab where you select and define the different tasks which should be executed during code generation. At the top of the Task queue to execute tab, you're able to select your preset of choice. A preset is a definition of a run queue, with tasks and task groups in the right order, with the right values for the task parameters. You can create new presets if you like, by simply clicking the New... button or by changing an existing preset and then by clicking the Save As... button to save it under a different name.
TemplateStudio Main screen (click picture to enlarge) This is a screenshot of the main screen of Template Studio, the free IDE for LLBLGen Pro customers. Template Studio is the ideal application to create / edit / test templates and templatesets for LLBLGen Pro. The screenshot shows the multiple document interface of the IDE, with on the left a loaded LLBLGen Pro project, multiple templates docked in a grouped setting. As you can see, it supports both TDL (our own template language) in the template at the top and C# (but also VB.NET) as the template language at the bottom.
TemplateStudio compiler output (click picture to enlarge) This screenshot shows the feedback visualization of errors in template logic, if that template is written with for example C# as the template language (TDL is interpreted so errors in TDL are shown at runtime). The .lpt template at the bottom clearly has an error which is picked up by the C# compiler and listed in the ApplicationOutput window, docked at the bottom of the screen. Double-clicking the error in red brings you to the actual C# code generated from the template code which will be executed at runtime to generate the actual output. The error is shown with a red marker.
TemplateStudio Run Preset screen (click picture to enlarge) This screenshot shows the interface to configure a preset before running it. LLBLGen Pro's code generator is based on tasks, which can be nested, and each task can generate one file using one template, but can consume one or more project elements. These tasks are configured using presets. This setup gives a powerful engine which is very flexible and Template Studio offers the same UI as the LLBLGen Pro designer does and allows the developer to test the template in the same way as the user of the template will do in the LLBLGen Pro designer. Presents are executed on the currently loaded LLBLGen Pro project.

|
|
|