CommunityToolkit.Aspire.EventStore
9.1.0-beta.112
Prefix Reserved
See the version list below for details.
dotnet add package CommunityToolkit.Aspire.EventStore --version 9.1.0-beta.112
NuGet\Install-Package CommunityToolkit.Aspire.EventStore -Version 9.1.0-beta.112
<PackageReference Include="CommunityToolkit.Aspire.EventStore" Version="9.1.0-beta.112" />
paket add CommunityToolkit.Aspire.EventStore --version 9.1.0-beta.112
#r "nuget: CommunityToolkit.Aspire.EventStore, 9.1.0-beta.112"
// Install CommunityToolkit.Aspire.EventStore as a Cake Addin #addin nuget:?package=CommunityToolkit.Aspire.EventStore&version=9.1.0-beta.112&prerelease // Install CommunityToolkit.Aspire.EventStore as a Cake Tool #tool nuget:?package=CommunityToolkit.Aspire.EventStore&version=9.1.0-beta.112&prerelease
CommunityToolkit.Aspire.EventStore
Registers an EventStoreClient in the DI container for connecting to an EventStore.
Getting started
Prerequisites
- EventStore cluster.
Install the package
Install the .NET Aspire EventStore Client library with NuGet:
dotnet add package CommunityToolkit.Aspire.EventStore
Usage example
In the Program.cs file of your project, call the AddEventStoreClient
extension method to register an EventStoreClient
for use via the dependency injection container. The method takes a connection name parameter.
builder.AddEventStoreClient("eventstore");
Configuration
The .NET Aspire EventStore Client integration provides multiple options to configure the server connection based on the requirements and conventions of your project.
Use a connection string
When using a connection string from the ConnectionStrings
configuration section, you can provide the name of the connection string when calling builder.AddEventStoreClient()
:
builder.AddEventStoreClient("eventstore");
And then the connection string will be retrieved from the ConnectionStrings
configuration section:
{
"ConnectionStrings": {
"eventstore": "esdb://localhost:22113?tls=false"
}
}
Use configuration providers
The .NET Aspire EventStore Client integration supports Microsoft.Extensions.Configuration. It loads the EventStoreSettings
from configuration by using the Aspire:EventStore:Client
key. Example appsettings.json
that configures some of the options:
{
"Aspire": {
"EventStore": {
"Client": {
"ConnectionString": "esdb://localhost:22113?tls=false",
"DisableHealthChecks": true
}
}
}
}
Use inline delegates
Also you can pass the Action<EventStoreClientSettings> configureSettings
delegate to set up some or all the options inline, for example to set the API key from code:
builder.AddEventStoreClient("eventstore", settings => settings.DisableHealthChecks = true);
AppHost extensions
In your AppHost project, install the CommunityToolkit.Aspire.Hosting.EventStore
library with NuGet:
dotnet add package CommunityToolkit.Aspire.Hosting.EventStore
Then, in the Program.cs file of AppHost
, register EventStore and consume the connection using the following methods:
var eventstore = builder.AddEventStore("eventstore");
var myService = builder.AddProject<Projects.MyService>()
.WithReference(eventstore);
The WithReference
method configures a connection in the MyService
project named eventstore
. In the Program.cs file of MyService
, the EventStore connection can be consumed using:
builder.AddEventStoreClient("eventstore");
Then, in your service, inject EventStoreClient
and use it to interact with the EventStore API:
public class MyService(EventStoreClient eventStoreClient)
{
// ...
}
Additional documentation
- https://github.com/EventStore/EventStore-Client-Dotnet
- https://learn.microsoft.com/dotnet/aspire/community-toolkit/hosting-eventstore
Feedback & contributing
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. |
-
net8.0
- Aspire.Hosting (>= 9.0.0)
- AspNetCore.HealthChecks.EventStore.gRPC (>= 8.0.1)
- EventStore.Client.Extensions.OpenTelemetry (>= 23.3.7)
- EventStore.Client.Grpc.Streams (>= 23.3.7)
- OpenTelemetry.Extensions.Hosting (>= 1.10.0)
-
net9.0
- Aspire.Hosting (>= 9.0.0)
- AspNetCore.HealthChecks.EventStore.gRPC (>= 8.0.1)
- EventStore.Client.Extensions.OpenTelemetry (>= 23.3.7)
- EventStore.Client.Grpc.Streams (>= 23.3.7)
- OpenTelemetry.Extensions.Hosting (>= 1.10.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
9.1.0 | 91 | 12/12/2024 |
9.1.0-beta.112 | 38 | 12/18/2024 |
9.1.0-beta.110 | 37 | 12/16/2024 |
9.1.0-beta.109 | 37 | 12/12/2024 |
9.0.1-beta.108 | 34 | 12/12/2024 |
9.0.1-beta.107 | 35 | 12/11/2024 |
9.0.1-beta.106 | 38 | 12/12/2024 |
9.0.1-beta.104 | 40 | 12/11/2024 |
9.0.1-beta.102 | 50 | 12/6/2024 |
9.0.1-beta.99 | 43 | 12/6/2024 |
9.0.1-beta.98 | 41 | 12/6/2024 |
9.0.1-beta.95 | 41 | 12/5/2024 |
9.0.1-beta.94 | 46 | 12/5/2024 |