Server side - Hermanoid/Lucasweb GitHub Wiki

Server-Side Code

The server-side system used involves managers, engines, accessors, and contracts, all in separate projects

Managers

  • The first step in the process, managers are called by the controllers (see here )
  • Do not do any processing or actions.
  • Call Accessors and Engines and generally do any necessary routing and organizing.

Accessors

  • One of the secondary steps in the process, accessors are called by Managers.
  • Perform actions, but are not intended to do much data processing.
  • Do not call Engines, Managers, or other Accessors.
  • Don't really care where they came from or how they are used. They do their action (like sending an email) and nothing more.

Engines

  • One of the secondary steps in the process, Engines are called by Managers.
  • Process Data, but are not intended to do any actions.
  • Do not call Managers, Accessors, or other Engines.

Contracts

  • Two types: Data and normal.
  • Data contracts are similar to models (see here )
  • └── They are used as types that transport data throughout projects.
  • Normal Contracts are interfaces that allow projects to use other project's stuff.
  • └── They are used a lot in managers to call Accessors and Engines.

To make all of those things above work together, DontPanic.Helpers provides a class named ProxyFactory that uses interfaces to make a proxy (or copy) of code from somewhere so it can be used elsewhere, like a proxy of an Engine so it can be called in a Manager