...
A package consists of a manifest file and it's related physical files for one or more modules. For example, the package for the WinGate Data plugin consists of modules for both the UI and Engine side modules.
Module
A module is a set of functionality you wish to group together and provide as a single unit. Each module needs at least one DLL as it's entry point but can contain any number of supporting files . EG The such as help, data and other DLLs. For instance, the WinGate HTTP Cache has a module for the its engine side functionality and the its UI side functionality.
Component
A conceptual set of functionality that you register with WinGate. For example, Data, Logging, Persistence, Permissions and Notifications all register themselves as components. The UI side and Engine side are considered different components.Each module can register as many components as it wishesAlthough in practical terms there is typically one component registered for each module (UI and Engine side being separate components), a module can register more than one component if it wishes such as the Schema module which houses the components for both the engine and UI.
Interface
One or more groups of functionality that your components register registers with WinGate, often to make it available for others to use. For instance the Data UI module registers individual interfaces for managing data values and managing dashboards. Client code can then bind to the interfaces if they which wish to use and gain access their to the functionality provided.