Important information that you should review as you start to use Evoke.

Generator repository setup work
Creating your app's data model, menu system and page UI is all handled by the Evoke designer. When the time comes for you to generate Visual Studio code, you will need to spend a short amount of time making sure that the Evoke generator has enough information about your back-end database (repository) in order for it to create the correct C# code within the generated Visual Studio solution.
There are 3 main pieces of information that you need to enter about your backend repository.
Define data repositories
When you create a new app, some example data repositories will be created within the Evoke app's "Generator -> Repositories" page. You can amend these definitions as required or create new ones if you prefer.
Define data mappings
For each repository that you define, you are able to create a set of data mappings that describe how the entities and properties within your app data model are mapped onto the repository. There are a number of video snippets that guide you through this mapping process.
Define the mappings to be used during code generation
The "Generator -> Web" menu option allows you to initiate Visual Studio code generation of your web app. On this page, you are able to define which repository is hosting each of your data entities. It is very likely that all of your entities will be hosted in the same, single repository. However, it is possible to access multiple repositories within a single app if required.
Generating code with no backend database
If you wish to view the UI of your running app without having a backend repository in place, you are able to supply a special connection string ("{NoDatabase}") within your repository definition that indicates to Evoke that no repository connection is to be established when the app runs. This can be useful in the initial phases of app development. Obviously, if you use the {NoDatabase} connection string no repository data will be available to your app, plus, the login page will accept any login name and password.
Note, even if you do use the {NoDatabase} connection string, you will still need to enter data mapping details. If you don't know the mapping details yet, simply enter dummy ones for the time being.
Creating the EVLU table/file
The licensing terms of Evoke require that you create a very small table/file within your database called "EVLU". This file/table is used by Evoke licensing and users of your app will not be able to log into your app if it does not exist or correct entries in the table/file do not exist. You do not need to include it in your app Entities or complete the data mappings for this table/file BUT the table/file must exist in your database and, in a SQL database, have columns named as below.
For each valid user of your app (usually these are AppUser records) then an EVLU file entry must exist and contain, in the key field, the username in lowercase. If you add AppUser records through your Evoke App then a corresponding EVLU record will be created with the correct key.
For SQL databases, you need to create a table called EVLU with 2 columns, specifically named as below:
Column name: EVLUID     data type: string (primary key)
Column name: INFO         data type: string
The EVLU table on MultiValue databases
For MultiValue databases, you need to create a file called EVLU. No dictionary items need creating.


Mandatory Entities
Evoke Apps require certain Entities and Selections as mandatory for an app to be generated and run. There are many options for these mandatory entities and mandatory selections in order for you can set up your App exactly as you want. The following describes the simplest option/scenario and all of these and more complex options are described in detail in the following short video(s). The AppUser, AppUserGroup and Classification Entities are mandatory and cannot be deleted from an Apps Entity model.
AppUser Entity
The AppUser Entity is primarity used for the User Groups, User Name, Password and Login Information. This either needs to be mapped onto a user file/table in the backend database or CRUD needs to be created that maps properties in the AppUser Entity onto appropriate properties in the backend database and retrieves these.
The UserGroups property of the AppUser Entity is used in the User Group Access Control part of Evoke. The LoginName, LoginNameReminder, Password and PasswordRemindre properties are used by the Login.
AppUserGroup
This Entity is used to hold the User Groups used in Evoke's Access Control system.
Classifications
The Classifications Entity is used for the drop-down lists of pre-defined options for selection. This either needs to be mapped onto a user file/table in the backend database or CRUD needs to be created that maps properties in the AppUser Entity onto appropriate properties in the backend database and retrieve these.
Mandatory Selections
It is expected that your App will use a number of Selections, however, the SelectByName Selection that is defined with the AppUser Entity, is Mandatory as it is used by the App Login process.
SelectByName Selection
First, this does not have to be called SelectByName, this is the default name and can be changed in the App Startup section of Evoke for each App. In its simplest form, this selection will access an AppUser File/Table in the backend database and run a simple selection e.g. SELECT WITH LOGINNAME = "[{LoginName}]", where LoginName is the filter argument defined in the Entity Selection definition. More complex options are described in the video.

Mandatory Entities and Selections.
Mapping to MultiValue Databases.
Mapping to SQL Databases.
Classifications.
Evoke MultiValue DataBase Utilities
If you are using a MultiValue Database with your App then, you need to download Evoke utilities, from the Repositories section of Evoke, using the option in the elypsis in the repository definition.
These utilities, when downloaded and compiled, will allow Evoke to generate CRUD for your Database