AddIns View

AddIns allow you to define each .net core dll you would like loaded as part of the AddIn Module [more info]. AddIn Modules are normally seperated into at least two dlls, one which holds all the entities and algorithms, and another that holds the UI components.

AddIn Features

AddIns hold the .net core dll to be loaded into the system which contains all your proprietary code. By using the LemonEdge platform you can concentrate on just creating your entities, algorithms, and views while the platform takes care of everything else for you.

Each AddIn also has some flags to specify how the system should load the dll. Whether it should always be loaded (contains core code such as entities) or only for certain UI applications (for instance you may have custom specific xamarin controls in one dll only).


AddIn Properties

Each AddIn has the following properties:

NameDescription
[Key]
[Required]
Name
The unique friendly name of this add in
DescriptionA user friendly description of this add in
ActiveIndicates whether or not this AddIn is active and should be loaded by the LemonEdge platform. Inactive AddIns are ignored.
IsCore

Indicates this AddIn should always be loaded by all LemonEdge processes, which can include:

Typically these dlls will contain your entities and algorithms.

Is Core UIIndicates this AddIn only need be loaded by client applications. The back end processes (such as web and task servcies) don't need to load these dlls.
These dlls typically only contain code using core LemonEdge views [more info]. They don't contain any client specific views such as xamarin forms or xaml views, etc as they won't be able to be loaded by all client applications.
Is Console Only UIIndicates this contains UI code that can only be shown by the console application and thus will only be loaded by that client application. If you create a custom view you'll need to create that custom view for all client applications that will need to access it.
Is WPF Only UIIndicates this contains UI code that can only be shown by the WPF Windows only application and thus will only be loaded by that client application. If you create a custom view you'll need to create that custom view for all client applications that will need to access it.
Is Xamarin Only UIIndicates this contains UI code that can only be shown by the mobile xamarin application and thus will only be loaded by that client application. If you create a custom view you'll need to create that custom view for all client applications that will need to access it.
SequenceThe sequence this AddIn is loaded in to the system relative to other addin within this AddIn Module.
AddInThe AddIn dll itself which can be changed or downloaded through the view commands.
Shared KeyThis shared key can be changed through the view commands.
A shared key is required if you have the same AddIn in multiple LemonEdge databases that are serviced through the same web service or task service. This ensures those services don't see the AddIns as containing different entities even when they are precisely the same. This way the platform only loads one of those dlls into the service as the others should all be the same anyway.

Commands

An AddIn has the standard set of commands and functions when being viewed from a grid. See our standard grid functionality.

As an AddIn has a sequence the standard grid allows you to move the items up and down changing their order.

When viewed from the grid an AddIn has the following custom commands:

  • Change AddIn DLL:
    This allows you to select your .net core compiled dll and upload it into the LemonEdge platform.
  • Save AddIn DLL:
    This allows you to download the current .net core dll for this addin into your local system.
  • Shared Key: 
    This allows you to view or modify the shared key for this addin. Having a shared key ensures any service connecting to multiple databases with the same addin can identify the dlls as being the same and avoid any collisions/conflicts.

Change AddIn DLL Note: If you change the dll and it includes schema changes to your entities the system will detect this and initiate an automatic upgrade of your backend database whenever the next LemonEdge process makes a first time connection to the database. This may not happen for a while, or could happen quickly if running in a serverless environment that is spinning up new service instances. You can also initiate the upgrade manually [more info]. The upgrade process will lock all other connections out until the process is complete. You can avoid this automatic behaviour by having Active = false for the AddIns until you are ready for the changes to be committed to the database.