![]() |
VOOZH | about |
dotnet add package Microsoft.Orleans.Clustering.AdoNet --version 10.2.0
NuGet\Install-Package Microsoft.Orleans.Clustering.AdoNet -Version 10.2.0
<PackageReference Include="Microsoft.Orleans.Clustering.AdoNet" Version="10.2.0" />
<PackageVersion Include="Microsoft.Orleans.Clustering.AdoNet" Version="10.2.0" />Directory.Packages.props
<PackageReference Include="Microsoft.Orleans.Clustering.AdoNet" />Project file
paket add Microsoft.Orleans.Clustering.AdoNet --version 10.2.0
#r "nuget: Microsoft.Orleans.Clustering.AdoNet, 10.2.0"
#:package Microsoft.Orleans.Clustering.AdoNet@10.2.0
#addin nuget:?package=Microsoft.Orleans.Clustering.AdoNet&version=10.2.0Install as a Cake Addin
#tool nuget:?package=Microsoft.Orleans.Clustering.AdoNet&version=10.2.0Install as a Cake Tool
Microsoft Orleans Clustering Provider for ADO.NET allows Orleans silos to organize themselves as a cluster using relational databases through ADO.NET. This provider enables silos to discover each other, maintain cluster membership, and detect and handle failures.
To use this package, install it via NuGet:
dotnet add package Microsoft.Orleans.Clustering.AdoNet
You will also need to install the appropriate database driver package for your database system:
Microsoft.Data.SqlClientMySql.Data or MySqlConnectorNpgsqlOracle.ManagedDataAccess.CoreMicrosoft.Data.Sqliteusing Microsoft.Extensions.Hosting;
using Orleans.Configuration;
using Orleans.Hosting;
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Threading.Tasks;
// Define a grain interface
public interface IHelloGrain : IGrainWithStringKey
{
Task<string> SayHello(string greeting);
}
// Implement the grain interface
public class HelloGrain : Grain, IHelloGrain
{
public Task<string> SayHello(string greeting)
{
return Task.FromResult($"Hello, {greeting}!");
}
}
var builder = Host.CreateApplicationBuilder(args)
.UseOrleans(siloBuilder =>
{
siloBuilder
// Configure ADO.NET for clustering
.UseAdoNetClustering(options =>
{
options.Invariant = "System.Data.SqlClient"; // Or other providers like "MySql.Data.MySqlClient", "Npgsql", etc.
options.ConnectionString = "Server=localhost;Database=OrleansCluster;User Id=myUsername;******;";
});
});
var host = builder.Build();
await host.StartAsync();
// Get a reference to a grain and call it
var client = host.Services.GetRequiredService<IClusterClient>();
var grain = client.GetGrain<IHelloGrain>("user123");
var response = await grain.SayHello("World");
// Print the result
Console.WriteLine($"Grain response: {response}");
// Keep the host running until the application is shut down
await host.WaitForShutdownAsync();
using Microsoft.Extensions.Hosting;
using Orleans;
using Orleans.Configuration;
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Threading.Tasks;
// Define a grain interface
public interface IHelloGrain : IGrainWithStringKey
{
Task<string> SayHello(string greeting);
}
var clientBuilder = Host.CreateApplicationBuilder(args)
.UseOrleansClient(clientBuilder =>
{
clientBuilder
// Configure the client to use ADO.NET for clustering
.UseAdoNetClustering(options =>
{
options.Invariant = "Microsoft.Data.SqlClient"; // Or other providers like "MySql.Data.MySqlClient", "Npgsql", etc.
options.ConnectionString = "Server=localhost;Database=OrleansCluster;User Id=myUsername;******;";
});
});
var host = clientBuilder.Build();
await host.StartAsync();
var client = host.Services.GetRequiredService<IClusterClient>();
// Get a reference to a grain and call it
var grain = client.GetGrain<IHelloGrain>("user123");
var response = await grain.SayHello("World");
// Print the result
Console.WriteLine($"Grain response: {response}");
// Keep the host running until the application is shut down
await host.WaitForShutdownAsync();
Before using the ADO.NET clustering provider, you need to set up the necessary database tables. Scripts for different database systems are available in the Orleans source repository: namespace ExampleGrains;
For more comprehensive documentation, please refer to:
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 net8.0 is compatible. net8.0-android net8.0-android was computed. net8.0-browser net8.0-browser was computed. net8.0-ios net8.0-ios was computed. net8.0-maccatalyst net8.0-maccatalyst was computed. net8.0-macos net8.0-macos was computed. net8.0-tvos net8.0-tvos was computed. net8.0-windows net8.0-windows was computed. net9.0 net9.0 was computed. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 is compatible. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
Showing the top 5 NuGet packages that depend on Microsoft.Orleans.Clustering.AdoNet:
| Package | Downloads |
|---|---|
|
Microsoft.Orleans.OrleansSqlUtils
Library of utility types for relational storage of Microsoft Orleans |
|
|
Aksio.Cratis.Extensions.Orleans
Package Description |
|
|
KingMetal.Domains.Abstractions
Package Description |
|
|
Mtl.Infrastructures.Workers
主要是封装了下Netty服务器和客户端的方法,提供了简单的方法调用就能启动Netty服务器和客户端,封装了Orleans的服务器和客户端的启动和连接方法,使操作简单,减少重复的代码 |
|
|
Aksio.Cratis.Kernel.Orleans
Package Description |
Showing the top 4 popular GitHub repositories that depend on Microsoft.Orleans.Clustering.AdoNet:
| Repository | Stars |
|---|---|
|
axzxs2001/Asp.NetCoreExperiment
原来所有项目都移动到**OleVersion**目录下进行保留。新的案例装以.net 5.0为主,一部分对以前案例进行升级,一部分将以前的工作经验总结出来,以供大家参考!
|
|
|
J-Tech-Japan/Sekiban
Sekiban - an Opinionated Event Sourcing and CQRS Framework using C#. It can store data into Azure Cosmos DB, AWS Dynamo DB or Postgres
|
|
|
shinyorg/templates
dotnet CLI & Visual Studio Templates
|
|
|
usnistgov/ACVP-Server
A repository tracking releases of NIST's ACVP server. See www.github.com/usnistgov/ACVP for the protocol.
|
| Version | Downloads | Last Updated |
|---|---|---|
| 10.2.0 | 914 | 6/12/2026 |
| 10.1.1-preview.1 | 97 | 5/13/2026 |
| 10.1.0 | 37,336 | 4/14/2026 |
| 10.0.1 | 59,123 | 2/7/2026 |
| 10.0.0 | 16,748 | 1/20/2026 |
| 10.0.0-rc.2 | 694 | 12/31/2025 |
| 9.2.1 | 150,684 | 7/16/2025 |
| 9.2.0 | 2,083 | 7/14/2025 |
| 9.2.0-preview3 | 635 | 6/10/2025 |
| 9.2.0-preview2 | 306 | 6/4/2025 |
| 9.2.0-preview1 | 475 | 4/4/2025 |
| 9.1.2 | 97,475 | 2/13/2025 |
| 3.8.1 | 16,877 | 4/24/2026 |
| 3.8.0 | 77,894 | 5/6/2025 |
| 3.8.0-preview5 | 335 | 5/12/2025 |
| 3.8.0-preview3 | 288 | 4/8/2025 |
| 3.8.0-preview2 | 238 | 4/4/2025 |
| 3.8.0-preview1 | 306 | 3/31/2025 |