Galosys.Foundation.Orleans 26.10.29.1

dotnet add package Galosys.Foundation.Orleans --version 26.10.29.1
                    
NuGet\Install-Package Galosys.Foundation.Orleans -Version 26.10.29.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Galosys.Foundation.Orleans" Version="26.10.29.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Galosys.Foundation.Orleans" Version="26.10.29.1" />
                    
Directory.Packages.props
<PackageReference Include="Galosys.Foundation.Orleans" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Galosys.Foundation.Orleans --version 26.10.29.1
                    
#r "nuget: Galosys.Foundation.Orleans, 26.10.29.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Galosys.Foundation.Orleans@26.10.29.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Galosys.Foundation.Orleans&version=26.10.29.1
                    
Install as a Cake Addin
#tool nuget:?package=Galosys.Foundation.Orleans&version=26.10.29.1
                    
Install as a Cake Tool

Galosys.Foundation.Orleans

成熟度: 🟡 可用 — 功能完整,测试或文档可能不完善

Galosys.Foundation Orleans 分布式 Actor 框架集成模块,提供 Orleans 集群配置、存储提供器、仪表板监控及扩展方法。

功能概览

1. Orleans 配置管理

// 配置选项绑定到 appsettings.json
services.Configure<OrleansOptions>(configuration.GetSection("Orleans"));

2. 集群配置

// OrleansOptions 支持的集群配置
public ClusterOptions? Cluster { get; set; } = new ClusterOptions();

// 配置示例
{
  "Orleans": {
    "Cluster": {
      "ServiceId": "MyService",
      "ClusterId": "production"
    }
  }
}

3. ADO.NET 存储配置

// 配置 ADO.NET 存储
public OrleansAdoNetOptions? AdoNet { get; set; } = new OrleansAdoNetOptions
{
    Invariant = "System.Data.SqlClient"
};

// 配置示例
{
  "Orleans": {
    "AdoNet": {
      "ConnectionString": "Server=localhost;Database=Orleans;Trusted_Connection=true;",
      "Invariant": "System.Data.SqlClient"
    }
  }
}

4. 仪表板监控

// 启用仪表板
public bool DashboardEnabled { get; set; } = false;

// 仪表板配置
public OrleansDashboardOptions Dashboard { get; set; } = new OrleansDashboardOptions
{
    Port = 8081,
    Host = "*",
    HostSelf = true,
    BasePath = "/orleans",
    UserName = "orleans",
    Password = "orleans"
};

// 配置示例
{
  "Orleans": {
    "DashboardEnabled": true,
    "Dashboard": {
      "Port": 8081,
      "Host": "*",
      "BasePath": "/orleans",
      "UserName": "admin",
      "Password": "securePassword"
    }
  }
}

5. 字符串扩展方法

// 检查字符串是否为空或默认值
var isEmpty = "".IsEmptyOrDefault(); // true
var isDefault = "default".IsEmptyOrDefault(); // true
var isCustom = "custom".IsEmptyOrDefault(); // false

// 自定义默认值
var isEmpty = "".IsEmptyOrDefault("N/A"); // true
var isDefault = "N/A".IsEmptyOrDefault("N/A"); // true

安装

<PackageReference Include="Galosys.Foundation.Orleans" Version="x.x.x" />

使用

配置 Orleans 服务

// 在 Program.cs 或 Startup.cs 中
builder.Services.AddOrleans(builder =>
{
    builder.UseAzureClustering(options =>
    {
        options.ConnectionString = "your-connection-string";
    });
    // 或使用 ADO.NET 集群
    builder.UseAdoNetClustering(options =>
    {
        options.Invariant = "System.Data.SqlClient";
        options.ConnectionString = "your-connection-string";
    });
});

配置 Orleans 仪表板

// 启用仪表板
builder.Services.AddOrleans(builder =>
{
    builder.UseDashboard(options =>
    {
        options.Port = 8081;
        options.Host = "*";
        options.BasePath = "/orleans";
    });
});

完整配置示例

{
  "Orleans": {
    "Cluster": {
      "ServiceId": "MyService",
      "ClusterId": "production"
    },
    "AdoNet": {
      "ConnectionString": "Server=localhost;Database=Orleans;Trusted_Connection=true;",
      "Invariant": "System.Data.SqlClient"
    },
    "DashboardEnabled": true,
    "Dashboard": {
      "Port": 8081,
      "Host": "*",
      "HostSelf": true,
      "BasePath": "/orleans",
      "UserName": "admin",
      "Password": "securePassword"
    }
  }
}

核心类

分类 类 说明
配置 OrleansOptions Orleans 主配置选项
配置 OrleansAdoNetOptions ADO.NET 存储配置
配置 OrleansDashboardOptions 仪表板配置
扩展 StringExtensions 字符串扩展方法

目录结构

Galosys.Foundation.Orleans/
├── Microsoft/
│   └── Extensions/
│       └── Options/
│           └── OrleansOptions.cs    # 配置选项类
└── System/
    └── StringExtensions.cs          # 字符串扩展方法

依赖

  • Microsoft.Orleans.Sdk
  • Microsoft.Orleans.Transactions
  • Galosys.Foundation.Core

注意事项

  1. 集群配置:生产环境建议使用 Azure Clustering 或 ADO.NET Clustering
  2. 存储配置:确保数据库连接字符串正确配置
  3. 仪表板安全:生产环境应更改默认用户名和密码
  4. 扩展方法:IsEmptyOrDefault 扩展方法适用于验证 Orleans 标识符
Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on Galosys.Foundation.Orleans:

Package Downloads
Galosys.Foundation.Orleans.Client

Galosys.Foundation快速开发库

Galosys.Foundation.Orleans.Server

Galosys.Foundation快速开发库

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
26.10.29.1 128 10/29/2026
26.10.20.1 141 10/20/2026
26.10.16.2 122 10/16/2026
26.10.16.1 114 10/16/2026
26.10.9.1 116 10/9/2026
26.10.8.1 115 10/8/2026
26.9.23.1 130 9/23/2026
26.9.16.1 137 9/16/2026
26.9.15.1 135 9/15/2026
26.9.14.1 134 9/15/2026
26.8.29.1 148 8/31/2026
26.8.26.1 139 8/26/2026
26.8.23.1 147 8/23/2026
26.8.21.1 143 8/21/2026
26.8.20.1 162 8/20/2026
26.8.18.1 138 8/18/2026
26.8.17.1 147 8/17/2026
26.8.13.2 152 8/13/2026
26.8.13.1 140 8/13/2026
26.8.12.2 148 8/12/2026
Loading failed