What You’ll Find Here
This documentation covers the extensive collection of .NET modules available in Intent Architect, including:Web APIs
Build RESTful APIs with ASP.NET Core, Controllers, and more
Data Access
Entity Framework Core, repositories, and database patterns
CQRS & MediatR
Command and Query patterns with MediatR middleware
Messaging
Event-driven architecture with Azure Service Bus, MassTransit, Kafka
Key Features
Intent Architect modules provide pre-built patterns that generate production-ready code based on your visual models, dramatically reducing development time while maintaining consistency and best practices.
Code Generation Patterns
Each module provides:- Templates: Code generation templates for specific patterns (Controllers, Handlers, Repositories, etc.)
- Factory Extensions: Hooks into the software factory for dependency injection, configuration, and more
- Modelers: Visual designers for specific domains (Domain, Services, Eventing)
- Metadata: Stereotypes and additional modeling capabilities
Architecture Support
The modules support various architectural patterns:- Clean Architecture
- CQRS (Command Query Responsibility Segregation)
- Domain-Driven Design (DDD)
- Microservices
- Modular Monoliths
- Serverless (Azure Functions, AWS Lambda)
Module Categories
Application Layer
- Intent.Application.MediatR - CQRS with MediatR middleware
- Intent.Application.Contracts - Service contract patterns
- Intent.Application.DependencyInjection - DI configuration
- Intent.Application.FluentValidation - Request validation
Presentation Layer
- Intent.AspNetCore - ASP.NET Core hosting
- Intent.AspNetCore.Controllers - RESTful API controllers
- Intent.FastEndpoints - FastEndpoints alternative
- Intent.HotChocolate.GraphQL - GraphQL APIs
- Intent.AzureFunctions - Serverless functions
- Intent.Blazor - Blazor WebAssembly applications
Domain Layer
- Intent.Entities - Domain entity generation
- Intent.DomainEvents - Domain event patterns
- Intent.DomainServices - Domain service patterns
- Intent.ValueObjects - Value object patterns
Infrastructure Layer
- Intent.EntityFrameworkCore - EF Core data access
- Intent.EntityFrameworkCore.Repositories - Repository pattern
- Intent.MongoDb - MongoDB integration
- Intent.Dapper - Dapper micro-ORM
- Intent.CosmosDB - Azure Cosmos DB
Messaging & Integration
- Intent.Eventing.MassTransit - MassTransit messaging
- Intent.Eventing.AzureServiceBus - Azure Service Bus
- Intent.Eventing.Kafka - Apache Kafka
- Intent.Integration.HttpClients - HTTP client generation
Cross-Cutting Concerns
- Intent.Security.JWT - JWT authentication
- Intent.Security.MSAL - Microsoft Authentication Library
- Intent.OpenTelemetry - Observability and tracing
- Intent.Hangfire - Background job processing
- Intent.Azure.KeyVault - Azure Key Vault integration
Module Installation
Modules are installed through Intent Architect’s Module Manager. Each module:- Declares its dependencies (automatically installed)
- Detects interoperability needs (suggests related modules)
- Provides configuration through Module Settings
- Generates code through the Software Factory
Modules follow Semantic Versioning and declare supported Intent Architect client versions for compatibility.
How Modules Work
Modules interact with Intent Architect in several ways:Model Your Application
Use visual designers (Domain Designer, Services Designer) to model your application’s structure
Install Modules
Install modules that provide the patterns you need (e.g., ASP.NET Core, Entity Framework Core, MediatR)
Getting Started
What is Intent Architect?
Learn about the platform and its capabilities
Installation
Install Intent Architect and set up your environment
Quickstart
Build your first application in minutes
Module Reference
Browse the complete module catalog
Support & Contributing
We welcome contributions! Check out the repository’s contribution guidelines:- Follow Semantic Versioning for module version updates
- Ensure modules compile and install successfully
- Add test cases to the Tests Intent Architect solution
- Run
run-pre-commit-checks.ps1before submitting
