Skip to content

DotNET client usage

Chronicle uses connection strings to configure the .NET client. You can pass a connection string to ChronicleOptions or provide one when constructing a ChronicleClient.

The ChronicleConnectionString.Development constant provides a pre-configured development connection string. Default constructors also use this value:

public static class ConnectionStringsDevelopmentDefaults
{
public static ChronicleClient Create()
{
var options = new ChronicleOptions();
return new ChronicleClient(options);
}
}

This is equivalent to:

using Cratis.Chronicle.Connections;
public static class ConnectionStringsDevelopmentDefaultsEquivalent
{
public static ChronicleClient CreateFromOptions()
{
var options = ChronicleOptions.FromDevelopmentConnectionString();
return new ChronicleClient(options);
}
public static ChronicleClient CreateFromConnectionString() => new(ChronicleConnectionString.Development);
}

Use explicit configuration for production environments.

public static class ConnectionStringsFromConnectionString
{
public static ChronicleClient Create()
{
var options = ChronicleOptions.FromConnectionString("chronicle://localhost:35000");
return new ChronicleClient(options);
}
}

Use ChronicleConnectionStringBuilder to construct a connection string programmatically:

using Cratis.Chronicle.Connections;
public static class ConnectionStringsFluentBuilder
{
public static ChronicleClient Create()
{
var connectionString = new ChronicleConnectionStringBuilder()
.WithHost("server.example.com")
.WithPort(35000)
.WithCredentials("clientId", "clientSecret")
.Build();
var options = ChronicleOptions.FromConnectionString(connectionString);
return new ChronicleClient(options);
}
}

You cannot specify both client credentials and API key authentication in the same connection string. Doing so throws an AmbiguousAuthenticationMode error.