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 centered around a particular architectural pattern. This could include domain entities, bootstrapping files, ORM mappings, API controllers, etc.
Modules share similarities with package systems such as NuGet, NPM, and Maven. However, while those systems primarily focus on code reuse, the primary objective of Modules is pattern reuse.
Modules have versions and dependencies and do not directly introduce any runtime dependencies. However, they can be configured to introduce package dependencies if the Module designer chooses to do so.
An example showing the list of installed Modules in a sample application. The Intent.Application.MediatR
module is selected, with its details displayed in the pane on the right.
Note
When you select an installed Module, Intent Architect provides a view into its internals (i.e., the Templates, Decorators, and Factory Extensions that comprise it).
Module Management
Modules can be managed at either the Solution level (affecting all applications) or the Application level. To access the Module Management screen:
- Right-click on your application or solution in the Solution Explorer.
- Select
Manage Modules...
.
The Module Management screen includes three tabs:
- Browse – Discover and install new modules from this tab.
- Installed – View the list of currently installed modules.
- Updates – See installed modules with updates available.
Note
By default, this screen only displays official releases. To access pre-releases or betas, enable the Include Prereleases
option.
Documentation for modules is available on our website in the respective module sections.
Updating Modules
It is recommended to be on a clean checkout when updating modules. The nature of the update is indicated by the color of the update indicator icon and aligns with semantic versioning:
- Green – Patch update. Should be seamless; typically includes bug fixes or small enhancements.
- Blue – Minor update. Should be seamless; may impact unmanaged code (e.g., upgrading a NuGet package to a new major version).
- Yellow – Major update. Check the module's release notes for important information about the changes.
The module pane includes release notes containing a complete list of changes in each version, along with any upgrade notes (e.g., for major releases).
Installation Settings
When (re)installing a module, you can expand the Installation Settings dropdown.
These settings are generally only relevant to those building modules who may want modules installed with selective capabilities enabled:
- Enable Factory Extensions – Controls whether the Software Factory will load any kind of extensions (templates, factory extensions, etc.) from the module.
- 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 during initial installation.
- Install Designers – Controls whether designers are installed into the application.
- Install Template Outputs – Controls whether template outputs are installed.