What's new in Intent Architect (October 2024)
Welcome to the October 2024 edition of highlights of What's New in Intent Architect.
We are thrilled to announce the official release of Intent Architect version 4.3! This update brings a range of exciting new features and enhancements, including powerful front-end design capabilities and much more. You can find the full release details here.
To explore the new front-end capabilities in action, don't miss our Front-end automation with Blazor webinar. Plus, get hands-on experience by checking out our sample implementation here.
- Highlights
- Build Blazor front-ends - A new Blazor application template, UI Designers and Blazor modules to model Blazor front-ends.
- Map CQRS Operations and Application Services to Repository Operations - Add bespoke Operations on Repositories in the Domain designer and invoke them from Services using mappings in the Services designer.
- CosmosDB Module Enums stored as String - CosmosDB module now allows Enums to be stored as strings in your documents.
- OpenTelemetry Module Enhanced with Expanded Configurations and New Export Options - The OpenTelemetry module now supports expanded configuration options and introduces a new export option.
- Import Stored Procedures for Repositories - Import definitions of Stored Procedures from SQL Server into your Domain Repository.
- C# code management: Overriding return statements is now easier - Return statements can now be ignored more simply.
- Specify implicit (global) usings for .csproj files - Add custom global usings to projects from the Visual Studio designer.
- XML doc comment generation for repositories - Comments are now generated as XML doc comments.
Update details
Build Blazor front-ends
We have a new Blazor application template to quickly setup and model your front-end Blazor applications.
This will create an Intent Architect application for modeling Blazor applications using the MudBlazor component library.
For a comprehensive overview, check out our Front-end automation with Blazor webinar. Plus, get hands-on experience by checking out our sample implementation here.
Available from:
- Intent Architect 4.3+
- Intent.Blazor 1.0.0-beta.1
Map CQRS Operations and Application Services to Repository Operations
Add Operations on Repositories in the Domain designer and invoke them from Services using mappings in the Services designer.
Example Repository with Operation:
Example Command:
Example invocation from Command to Repository Operation:
Available from:
- Intent.Modelers.Services.DomainInteractions 1.1.4
Ensure you are using at least the versions of the following modules (if you have them installed):
- Intent.Application.MediatR.CRUD 6.0.12
- Intent.Application.ServiceImplementations.Conventions.CRUD 5.0.9
CosmosDB Module Enums stored as String
CosmosDB module now allows Enums to be stored as strings in your documents.
You can switch this on with the "Store enums as string" setting.
The Document's that represent Entities in the Infrastructure layer will then decorate the Enum Properties with a JsonConverter
attribute when the setting is switched on.
[JsonConverter(typeof(EnumJsonConverter))]
public EnumExample EnumExample { get; set; }
This will allow Enums to be persisted in CosmosDB as strings
however it is also durable in that it can also parse Enums in their int
representations allowing for backward compatibility.
Available from:
- Intent.CosmosDB 1.2.4
OpenTelemetry Module Enhanced with Expanded Configurations and New Export Options
The OpenTelemetry module now features expanded configuration options, allowing users to enable metrics alongside the previously available traces and logs. Additional instrumentation has been introduced with Trace or Metric indicators, providing greater flexibility in monitoring applications.
Moreover, a new export option, "Azure Monitor OpenTelemetry Distro," has been added, which offers hybrid capabilities that blend OpenTelemetry and Azure Application Insights' proprietary features, such as "Live Metrics."
Users can also configure the application instance name in conjunction with the application service name for better identification.
"OpenTelemetry": {
"ServiceName": "My Sample Service",
"ServiceInstanceId": "Development"
}
Available from:
- Intent.OpenTelemetry 2.2.0
Import Stored Procedures for Repositories
Import definitions of Stored Procedures from SQL Server into your Domain Repository.
You can right click on a Repository and select Stored Procedure Import
.
Specify names of stored procedures as a comma separated list.
Import Stored Procedures either as Operations or Specialized elements.
Note
Stored Procedure elements will be phased out in favor of using Operations once the Operations variant has reached parity with the specialized elements.
Available from:
- Intent.SqlServerImporter 1.0.6
C# code management: Overriding return statements is now easier
Previously when wanting to "override" a generated return statement in a fully managed method you would need to qualify the // IntentIgnore
with a (Match = "return")
, now only a simple // IntentIgnore
is required:
// Generated:
[IntentFully]
public int Method()
{
return 0;
}
// What was previously required to override the return statement:
[IntentFully]
public int Method()
{
// IntentIgnore(Match = "return")
return 1;
}
// What is now required to override the return statement:
[IntentFully]
public int Method()
{
// IntentIgnore
return 1;
}
Available from:
- Intent.OutputManager.RoslynWeaver 4.7.7
Specify implicit (global) usings for .csproj files
It is now possible to specify implicit usings (global usings) to add to .csproj
files:
The above will then add the following to the .csproj
file:
<ItemGroup>
<Using Include="System.Transactions" />
</ItemGroup>
Available from:
- Intent.VisualStudio.Projects 3.8.1
XML doc comment generation for repositories
- Comments captured on repositories and their operations in the Domain designer will now cause corresponding XML doc comments to also be generated in the output files.