About Modules
What is a Module
Modules are the building blocks and artifacts of pattern reuse in Intent Architect.
Typically, the purpose of a Module is to generate and manage a set of code files in a codebase, usually around a particula-r architectural pattern. This could for example be the entities in a domain, simple bootstrapping files, ORM mappings, controllers in an Api, etc.
Modules have similarities with package systems such as NuGet, NPM, and Maven. However, where the primary objective of these system is to make code-reuse easier, the primary objective of Modules is pattern-reuse.
Modules have versions and dependencies, and don't directly introduce any runtime dependencies. They can, however, be configured to introduce package dependencies if the designer of the Module so chooses.
An example showing the list of Installed Modules in a sample application. The Intent.Application.MediatR
module has been selected, with its details displayed in the pane on the right.
Note
When you select an installed Module, Intent Architect gives a view into the internals of that module (i.e. the Templates, Decorators, and Factory Extensions it is made up of).
Installation Settings
When (re)installing a module you can expand the "Installation Settings" drop down.
These settings are generally only of interest to those building modules who may want modules installed without all their capabilities enabled.
- Enable Factory Extensions - Controls whether the Software Factory will load any kind of extensions (templates, factory extensions, etc) from the module to execute.
- Install Application Settings - Controls whether settings from the module should be added to the Application Settings screen.
- Install Designer Metadata - Controls whether designer metadata embedded in the module is installed into designers on the initial installation of the module.
- Install Designers - Controls whether designers are installed into the application.
- Install Template Outputs - Controls whether template outputs are installed.