Start Flexberry Designer and create a new project
Registration and logging in Flexberry Designer Online
To register in Flexberry Designer and log into the portal, you must perform the following steps:
- First need to open the portal flexberry.net.
- Next button
Sign up. Open login page and register. If the check is already there, you can log in.
- Note the checkbox
I am not Robot. To specify a real email address, you will receive an email with activation account. To specify the name and press the register button.
- The system displays a notification that an email is sent. Open the mail to find a letter from
email@example.com there is a link to confirm your entry, also comes an email with a password for authorization.
- Click on the link. Display a notice
Verfication successfully completed. Click
Open start page Flexberry Designer Online, where you can see parts of it.
All Projects. In this section there is a list of all created projects.
My license and Request. This section is a list of licenses and appeals in support. The License is for Flexberry Designer Desktop. The list of complaints is all the questions and answers from the support team of the designer.
Flexberry Designer Desktop. In this section you can download Flexberry Designer Desktop. This is the professional version of Flexberry Designer Online. Necessary for the development of offline and multi-structured or complex applications. Requires a special license. To create an application online a special license is not required.
flexberry.net Portal. Translates into the portal Flexberry Platform where you can find variety of products developed using the platform.
Platform source code. Opening this button opens the GitHab page of the Flexberry Platform. It is possible to participate in the finalization of platform products through a system of pull-requests.
Documentation. The Documentation button opens the website with product documentation of flexberry platform. At the top is a link to the documentation for working with the designer.
Chat. Here is a room where you can ask questions about working with the designer, its development and documentation. The questions are answered by competent specialists who are always ready to help and support.
Create a new project
To create your first project click
All projects on the main page. After pressing menu
All projects page will be displayed with the proposal to create the first draft. Click
New project, it will open the creation form of the project.
Project name, it is advisable to call the project so that it is clear which application you want to create. It should be brief and succinct.
Identifier name is how the project will be called in the team. Perhaps the abbreviation or the purpose of the project. If left blank, the field will be created automatically by the project name. Identifier name of the project should be in English or written in Latin.
Access – who will be able to view and edit the project.
Description – brief description of the project.
The project not only create, but also to import already existing one. For this field to Select a project based on saved file, select project button to Select a file. After all fields are filled in, the project can be sustained. Later this data can be edited. This will open the project page where will be displayed a list of all generated classes. Creating classes is one of the main functions Flexberry Designer Online.
A brief overview of what Flexberry Designer Online
When you create a project, open the
Application model page, which is a list of the classes (essentially, a set of elements) that describe the domain of the application and its functionality. Flexberry Online Designer allows you to create different types of classes from simple entities (application objects) and forms to private types and business servers.
Classes can also be created during creation of the diagram.
Diagrams allow you to not only create classes, but also to establish relationship between them, which in the future will allow to associate different forms in the application. Also, some types of diagrams help to detail the subject area, to describe the processes that must be implemented by the application.
Naviagtion allows you to create a menu of the application to distribute forms groups and/or roles.
Generation allows you to create a working prototype application, which is suitable for the initial demonstration to the customer. On this basis the application is easy to modify in accordance with the wishes of the customer as the main points of the subject area had been introduced.
The app can be
configure in accordance with the needs of your application, specify the path generation for client and server parts of the application, to Supplement the description. Also the settings menu option allows to delete the project.
Project Name, Project identifier name and description are explained above.
- Open – access project of yours.
- Open to entire Internet – the project will have open access.
They can be for the client and server parts, if you need to split them. The server part is usually used for “complex” algorithms, so as not to overload the user interface. The client part is needed for »on the fly« processing.
Login, password for the client part repository and branch for the client part, as well as similar fields for the backend part are used if you need to generate an application in an existing repository.
If you do not have a repository yet, the designer will create a new repository on Githab by the project name (it will generate and bind ssh keys), and generates code in the created repository.
In addition, the project may be published in
It is also possible to change localization (the language which the designer displays) and the theme designer.
To export project need to open the
Settings page and under
Project Action with the project to choose
I want to export project.
You can also make backup project, click the button
I want to do Project backup.
Creating basic types of diagrams. Basics of IC design
Order IC design
The first point of the algorithm for the design of information systems is a problem statement, which should be defined:
- characteristics of the automation object
- define the main task to be implemented by the application
- describe the business processes that will be implemented in the application
Next, you need to create a diagram of the use cases, which is the most common representation of functional requirements to the system. It allows us to describe the main processes that need to be implemented. Then it is useful to make a diagram activities, which is a flowchart that shows the flow of control passes from one activity to another. Once defined the functional requirements for the system and its boundaries, should examine the subject area with the aim of building class diagram. Further, it is useful to describe scenarios that need to be implemented in the application using sequence diagram. Scenarios can be described using chart cooperation, allowing to describe the interaction of objects and focuses primarily on the organization of the objects. State diagram determines the sequence of States of an object caused a sequence of events. This diagram may help to clarify the subject area, supplemented, if necessary, a class diagram. Chart deployment is a physical diagram in the UML. It displays the physical relationship between hardware and software components of the designed system.
The problem statement for the design
Described in the article problem Statement for example.
Create entity relationship diagram
Described in the article building the entity relationship diagram for example.
Described in the article diagram Construction activities for example.
The construction of class diagrams
Described in the article diagram classes for example.
The Model menu of the application
In order to create a new class open the project. The default open menu item
Application Model, which is a list of all classes in the project. Then you press the button
Stereotypes of classes
Entities (implementation) – the class representing the real-world object whose instances will be stored in the application database. Create a pair.
Enumeration (enumeration) data type, which is defined as a set of identifiers. Create a pair.
Business server (businessserver) is a class whose code is invoked in the process of changing instances of related entities.
Type (type) – a complex data type or a real-world object whose instances will be stored in the application database. It is advisable to create, if necessary in code, secondary business objects that do not need to be stored in the database.
Typedef (typedef) is a type of data that can be mapped manually generated to the database or application data types. Need, if you do not have default types.
Interface (interface) contract in the form of a list of public properties and methods that must be implemented in the related entities or types.
External entities (external) – a class that is not explicitly declared in the model but will be available in the source code, including an entity from a different project. When generating code-level means that the Declaration of this class contains the external or system library. In private means that you can specify for an external class reference to the class from another project (stage) in Flexberry Designer. In this particular case means that the class code is declared in another solyushene (addon), which must be connected to the main developers to the project manually (e.g., via a NuGet package is created based on another солюшена; connection of “external” libraries on the level generation is not implied). When it is used: the reference to class from other projects (i.e., stages) is indicated when multiple projects have some shared libraries, and classes from it pericolosa in different projects. Another option is the external class is a class from the system library or any external libraries (add-on). Then at the model level it is possible to put a link to an external class and include it in the view base class, and the code after generating the data type for the corresponding property will be a class that is declared in the “external” library (it needs to connect manually by the developer in проект; if it’s a class from the system Assembly, for example, it is already the first generation of the project can be automatically already connected as an option).
Application (application) class that stores General information about the generated application.
User forms (userform) – class representing» «blank form of application (all markup and logic for it to be done fully manually by the developer), which can also be added to the menu structure (in “container” class with the stereotype “application”). Can be used in the case when the level of the application model required special forms, which are neither list nor edit forms are not (i.e., to look at the model it was obvious what forms in the app).
Geo-server layer (geolayer) class, which configures the layer GIS subsystem.
Geo-server layer styles (geolayerstyle) class, which configures the layer GIS subsystem.
Entities with user stereotypes with user-defined (custom) class with arbitrary semantics, which code is not generated to the application.
The list of diagrams contains automatically created diagrams for each class. In the search field on the
Application Model form enter the name (or part of it) of the class from the list. Select the class (or several classes) that meets the specified condition displayed.
All types field, select any of the created types. Only classes of the selcted type are displayed.
Filtering and searching charts
diagram menu contains all diagrams created within the project. They differ in types and have unique names. If the list is long, it is convenient to use search or filtering. To search for diagrams, enter the name part of the name of the diagram in the
search field. The list will be edited in accordance with the specified condition.
You can also filter the diagram by type. For this drop down list, select the desired diagram type.
The basics of working with class diagrams
Class diagram from» «analyst and after object of design
When communicating with the customer, the analyst uses diagrams to create an idea of the subject area, which is subsequently refined and supplemented by the developer in accordance with the requirements of the architecture and the generation of the future project. A project with diagrams from the analyst usually contains in the title the specification «As it should be,», and the developer’s project - «Implementation».
The developer details the subject area so that:
- there are no many-to-many links (intermediate classes are added),
- there are no aggregation type relationships (only association, composition, and inheritance can be used), as well as one-to-one multiplicity relationships,
- all attributes have been assigned the data type necessary for storage and processing,
- there are no contradictions in the structure of the diagram, which can lead to generation failures,,
- classes have been categorized by type (entity, enumeration, custom type, etc. - more in Module 3 in the «application model» Menu screencast.
- the diagrams were distributed in catalogs specifying the purpose of classes (reference books, description of a specific group of classes, for example, personalities, territories, etc.),
- methods were written for the class, if they are needed at the design and prototyping stage of the application.
The developer also creates forms and representations for the subsequent generation of a prototype of the future application. In the next screencast, we will show about adding and editing classes and relationships on a class diagram.
Add and edit classes and relationships
A class can have different sterotypes: entity, application, enumeration, etc. (More details in the screencast Module 3: Application Model). Relationships are mainly established between »entity« classes (implementation). Also, a relationship can be established between an entity and an interface or an external interface.
The properties of an Association
Description of relation– explanation of communication (e.g. what it was or why exactly this).
Master class role name– the name of the role from the main class, duplicate role name in the diagram.
Publication name for maaster classthis is the name of the main class property in the OData interface (it is a web-oriented API for accessing and manipulating data).
Multiplicity of master class– can be 0..1 (then in the database for the primary class value of the main class may be Null) or 1 (then in the database for the primary class value of the main class can only be Not Null).
Master class access modifieris protected (#),that is, access is restricted to the class or type containing the class; public (+), that is, the property is public; private (-), that is, access to the property is restricted. The connection with the main class is stored – this is a flag for generating a field in the database with a reference to the main class.
Master class role nameis the name that will appear in the main class in the table. For example, for the table Order it will be the Storekeeper.
Publication role name for master classis the name of the properties of the main class in the OData interface.
Multiplicity of Master classthis is
*any value.This option supports only for generation. If you need a specific value that is different from
*, it is necessary to control in code.
Autogenerated TypeUsage– identifier for an attribute that restricts the list of types in the inheritance hierarchy.
TypeUsage- an attribute that restricts the list of types in the inheritance hierarchy to which this relationship applies.When using inheritance, there is a problem of determining the right type when using an association.In other words, if the type master is an inheritance-associated type, it is not clear which particular type of the inheritance hierarchy is the master.Class A has a master M, from which there are at least two heirs: M1 and M2. To resolve the problem, you can use special metadata that allows you to specify that a property M (link to the artisan class) in the class data A, in this particular (practical) case, can take only values of type M, and also M1 and M2. This is done at the level of program code. Accordingly, if a data object (an instance of class A) that his master could be an instance of any of the classes M, M1, M2.
Name of connection to databaseis the name of the field in the database in which to store a reference to the master
Properties of the composition
Connection description- explanation of communication (e.g. what it was or why exactly this).
Aggregator Role name– the name of the role from the beginning of the track that duplicates the role name in the diagram.
Publication role name for aggregatoris the name of the aggregator properties in the OData interface.
- `Detail role name - the name that will appear in the main class in the table. For example, for the Order Status table, this will be an Order..
Detail Publication role nameis the name of the aggregator properties in an OData interface
Multiplicity in aggregatoris always 1, as in the case of compositions in the database for the primary class value of the master can not be Null.
Auto-generated aggregator TypeUsage– similar to the same property of the Association.
Aggregator TypeUsage– similar to the same property of the Association.
Connection name to Databaseis the name of the field in the database in which to store a reference to the master
Autogenerated child TypeUsage– similar to the same property of the Association.
Detail TypeUsage– similar to the same property of the Association.
The attributes and attribute types data classes
Class attributes can be edited from the list of classes in the application model (app Model-group Entities – class click – edit) and charts (Charts-corresponding class diagram-a class is selected-the button edit (icon) – opens the same edit form class).
The attribute has
name (how it will be displayed in DB and code),
caption (as the name will be displayed in the app),
description (for example, for which this attribute) and the type.
The attribute can be
stored and unstored (in this case, its value is calculated in application code and is used for operations in code, without storing in DB).
The attribute type must be specified because it is necessary to store data in the database and operations in the program code. Flexberry Designer Online uses built-in data types (string string, int – integer, double point, bool – logical, etc., also there are types to store null values and the ability to create their own type).
The types of relationships between classes and non-obvious restrictions of the object structure
The class whose multiplicity is equal to 1 (in rare cases 0..1 for an association) is the main, that is
Master. For example, a shelf and a product on a shelf: there may be many products on one shelf, but the same product cannot lie on different shelves (it is the product, not the type, that is, a specific book, pen, jar, etc.). This connection will be
associative, because if the shelf breaks, the product can simply be moved to another. The situation will be quite different with the house and an apartment.There may be many apartments in one house, but a particular apartment always belongs to one house, it cannot be moved to another. Accordingly, if the house disappears, the apartment will also not be. This is referred to as
composition. Accordingly, a class whose multiplicity can range from 0 to n will be subordinate, that is, detail class.
Classes in relations can be assigned a role (set a name for the foreign key of the database). In the example of the Warehouse application (example of building a Class Diagram) such roles have relations from the Employee class (Manager, Storekeeper, Accountant). The name of the role will be used to name the column in the details’s table for the master table. Show in the class diagram
Limitations when constructing class diagrams
1.Detail of any level cannot be the heir of a master class, since in such a case the object of the heir must include itself
2.The heir from the detail class cannot be the detail of the heir of the master class.
3.You cannot do loops in inheritance
4.You cannot inherit a class from more than one class (a class may have many heirs but only one parent).