Aether Framework Documentation
Production-ready .NET SDK for building enterprise applications with Domain-Driven Design and distributed architecture patterns.
// Program.cs
var builder = WebApplication . CreateBuilder ( args ) ;
// Core services
builder . Services . AddAetherCore ( options => options . ApplicationName = "MyApp" ) ;
builder . Services . AddAetherNpgsql < MyDbContext > ( builder . Configuration . GetConnectionString ( "Default" ) ) ;
// Event bus
builder . Services . AddAetherEventBus ( options =>
{
options . PubSubName = "pubsub" ;
options . DefaultSource = "myapp" ;
} ) ;
// Aspects
builder . Services . AddAetherAspects ( ) ;
var app = builder . Build ( ) ;
app . UseAmbientServiceProvider ( ) ;
app . UseUnitOfWorkMiddleware ( ) ;
app . MapControllers ( ) ;
app . Run ( ) ;
Feature
Description
Application Services
CRUD service patterns with auto-mapping
Aspects
[Trace], [Log], [Metric], [UnitOfWork] attributes
BBT.Aether.Core (Base)
├── BBT.Aether.Domain
│ └── BBT.Aether.Infrastructure
│ ├── BBT.Aether.Application
│ └── BBT.Aether.AspNetCore
├── BBT.Aether.Aspects
└── BBT.Aether.HttpClient
Feature
Core
Domain
Infrastructure
AspNetCore
Aspects
Result Pattern
✓
-
-
✓
-
Repository
✓
✓
✓
-
-
Multi-Schema
✓
-
✓
✓
-
Unit of Work
✓
-
✓
✓
✓
DDD Entities
-
✓
-
-
-
Domain Events
✓
✓
✓
-
-
Distributed Events
✓
-
✓
✓
-
Inbox/Outbox
✓
✓
✓
-
-
Cache/Lock
✓
-
✓
-
-
Background Jobs
✓
✓
✓
✓
-
Current User
✓
-
-
✓
-
Telemetry
-
-
-
✓
✓
Tracing/Logging/Metrics
-
-
-
-
✓
public class Order : AuditedAggregateRoot < Guid >
{
public void PlaceOrder ( )
{
Status = OrderStatus . Placed ;
AddDistributedEvent ( new OrderPlacedEvent ( Id ) ) ;
}
}
public class OrderAppService : CrudAppService < Order , OrderDto , Guid >
{
[ Trace ]
[ Log ]
[ UnitOfWork ]
public async Task < OrderDto > PlaceOrderAsync ( Guid id )
{
var order = await Repository . GetAsync ( id ) ;
order . PlaceOrder ( ) ;
await Repository . UpdateAsync ( order ) ;
return await MapToGetOutputDtoAsync ( order ) ;
}
}
Aether
.NET
EF Core
Dapr
1.x
8.0, 9.0
8.x, 9.x
1.13+