Solution structure and overview
If you look at solution structure of the application using DWKit, you'll see that different applications have similar structure. For instance, you can download one of the two examples we provide: Downloads - 'Starter Pack' or 'Vacation Request'. Or you can look at more complex DWKit-based projects: DWKit HRM. Structure will be the same in all of them. There are two projects in the solution:
- src/OptimaJet.DWKit.Application - basically it's the main business logic of the application.
- src/OptimaJet.DWKit.StarterApplication - this is an ASP.NET Core MVC project responsible for client interaction with server. It also contains client side of the DWKit application.
OptimaJet.DWKit.Application project
It's the business logic of the application. It also contains DWKit initialization code and WorkflowEngine.NET. Please, pay attention to the following aspects:
- Configurator - DWKit configuration class. It is described in the Server side architecture section.
- WorkflowInit - contains WorkflowEngine.NET initialization. To be
exact,
WorkflowRuntime
class is initialized, which controls workflow processes. - Triggers -
IServerActionsProvider
implementation, in which DWKit application Triggers are implemented. - Filters -
IServerActionsProvider
implementation, in which DWKit application Filters are implemented. - Actions -
IServerActionsProvider
implementation, in which DWKit application Actions are implemented. - ActionProvider - here actions of WorkflowEngine.NET are implemented. Is related to workflow.
- RuleProvider - here authorization rules of WorkflowEngine.NET are implemented. Is related to workflow.
- ClientNotifiers - here methods which notify DWKit client side of application state changes via SignalR are implemented. For example, inbox, outbox and total counters.
OptimaJet.DWKit.StarterApplication project
This is an ASP.NET Core MVC project. We recommend to review its server and client sides separately.