diff --git a/aspnet-core/LINGYUN.MicroService.Common.sln b/aspnet-core/LINGYUN.MicroService.Common.sln index dda43482f..e0823510b 100644 --- a/aspnet-core/LINGYUN.MicroService.Common.sln +++ b/aspnet-core/LINGYUN.MicroService.Common.sln @@ -128,6 +128,9 @@ EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Localization.Json.Tests", "tests\LINGYUN.Abp.Localization.Json.Tests\LINGYUN.Abp.Localization.Json.Tests.csproj", "{BA2F4EC9-BC2C-482A-9123-BDACB8B15295}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dapr", "dapr", "{7FDFB22F-1BFF-4E05-9427-78B7A8461D50}" + ProjectSection(SolutionItems) = preProject + modules\dapr\README.md = modules\dapr\README.md + EndProjectSection EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr.Actors", "modules\dapr\LINGYUN.Abp.Dapr.Actors\LINGYUN.Abp.Dapr.Actors.csproj", "{C72E0407-06FE-4CAA-86E5-30FF216A7B82}" EndProject @@ -135,7 +138,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr.Actors.Ide EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr.Actors.IdentityModel.Web", "modules\dapr\LINGYUN.Abp.Dapr.Actors.IdentityModel.Web\LINGYUN.Abp.Dapr.Actors.IdentityModel.Web.csproj", "{E263A9ED-D5DB-4495-A0C7-6268ED92EB92}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LINGYUN.Abp.Dapr.Actors.AspNetCore", "modules\dapr\LINGYUN.Abp.Dapr.Actors.AspNetCore\LINGYUN.Abp.Dapr.Actors.AspNetCore.csproj", "{E74FF671-6E5E-430C-9211-ED910634DDBE}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LINGYUN.Abp.Dapr.Actors.AspNetCore", "modules\dapr\LINGYUN.Abp.Dapr.Actors.AspNetCore\LINGYUN.Abp.Dapr.Actors.AspNetCore.csproj", "{E74FF671-6E5E-430C-9211-ED910634DDBE}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/aspnet-core/modules/dapr/LINGYUN.Abp.Dapr.Actors.IdentityModel.Web/Properties/launchSettings.json b/aspnet-core/modules/dapr/LINGYUN.Abp.Dapr.Actors.IdentityModel.Web/Properties/launchSettings.json deleted file mode 100644 index 89ce41cf2..000000000 --- a/aspnet-core/modules/dapr/LINGYUN.Abp.Dapr.Actors.IdentityModel.Web/Properties/launchSettings.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "iisSettings": { - "windowsAuthentication": false, - "anonymousAuthentication": true, - "iisExpress": { - "applicationUrl": "http://localhost:51684/", - "sslPort": 44331 - } - }, - "profiles": { - "IIS Express": { - "commandName": "IISExpress", - "launchBrowser": true, - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - }, - "LINGYUN.Abp.Dapr.Actors.IdentityModel.Web": { - "commandName": "Project", - "launchBrowser": true, - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - }, - "applicationUrl": "https://localhost:5001;http://localhost:5000" - } - } -} \ No newline at end of file diff --git a/aspnet-core/modules/dapr/LINGYUN.Abp.Dapr.Actors/README.md b/aspnet-core/modules/dapr/LINGYUN.Abp.Dapr.Actors/README.md index b0c63535d..1baa45e79 100644 --- a/aspnet-core/modules/dapr/LINGYUN.Abp.Dapr.Actors/README.md +++ b/aspnet-core/modules/dapr/LINGYUN.Abp.Dapr.Actors/README.md @@ -1,125 +1,26 @@ # LINGYUN.Abp.Dapr.Actors -Abp Dapr.Actors 集成 +Dapr.IActor客户端代理 ## 配置使用 -项目设计与 **Volo.Abp.Http.Client** 类似 +模块按需引用 -### 1、接口定义 - -```c# - -// 定义在接口上的RemoteService.Name会被作为Actor的名称注册到Dapr -[RemoteService(Name = "System")] -public interface ISystemActor : IActor -{ - Task GetAsync(); -} - -public class SystemActorInterfaceModule : AbpModule -{ - -} - -``` - -### 2、服务端 - -引用 LINGYUN.Abp.Dapr.Actors.AspNetCore - -* 实现接口 - -```c# - -public class SystemActor : Actor +```csharp +[DependsOn(typeof(AbpDaprActorsModule))] +public class YouProjectModule : AbpModule { - public Task GetAsync() - { - retuen Task.CompletedTask; - } -} - -``` - -* 创建模块 - -```c# - -// 模块会自动搜索实现了IActor的服务,注册为Dapr的Actors -[DependsOn( - typeof(AbpDaprActorsAspNetCoreModule))] -public class SystemActorServerModule : AbpModule -{ - -} - -``` - -* 发布到Dapr - -```shell -# --app-port .net程序映射端口 -# -H 对外暴露 http 监听端口 -# -G 对外暴露 grpc 监听端口 -dapr run --app-id ufsoft --app-port 5000 -H 50000 -G 40001 -- dotnet run - -``` - -### 3、客户端 - -引用 LINGYUN.Abp.Dapr.Actors - -* 配置文件 **appsettings.json** - -```json - -{ - "RemoteActors": { - "System": { - "ActorId": "1", - "BaseUrl": "http://127.0.0.1:50000" - } - } -} - -``` - -* 客户端代码 - -```c# - -// 模块依赖 -[DependsOn( - typeof(AbpDaprActorsModule))] -public class SystemActorClientModule : AbpModule -{ - public override void ConfigureServices(ServiceConfigurationContext context) + public override void ConfigureServices(ServiceConfigurationContext context) { // 注册代理类似于 Volo.Abp.Http.Client 模块 context.Services.AddDaprActorProxies( - typeof(SystemActorInterfaceModule).Assembly, // 搜索 SystemActorInterfaceModule 模块下的IActor定义 + typeof(YouProjectActorInterfaceModule).Assembly, // 搜索 YouProjectActorInterfaceModule 模块下的IActor定义 RemoteServiceName ); } } - -// 调用方法,直接依赖注入即可 -public class InvokeClass -{ - private readonly ISystemActor _systemActor; - - public InvokeClass(ISystemActor systemActor) - { - _systemActor = systemActor; - } - - public async Task InvokeAsync() - { - await _systemActor.GetAsync(); - } -} - ``` +## 配置项说明 + ## 其他 diff --git a/aspnet-core/modules/dapr/README.md b/aspnet-core/modules/dapr/README.md new file mode 100644 index 000000000..751de7037 --- /dev/null +++ b/aspnet-core/modules/dapr/README.md @@ -0,0 +1,123 @@ +# Dapr.Actors 集成 + +## 配置使用 + +项目设计与 **Volo.Abp.Http.Client** 类似 + +### 1、接口定义 + +```c# + +// 定义在接口上的RemoteService.Name会被作为Actor的名称注册到Dapr +[RemoteService(Name = "System")] +public interface ISystemActor : IActor +{ + Task GetAsync(); +} + +public class SystemActorInterfaceModule : AbpModule +{ + +} + +``` + +### 2、服务端 + +引用 LINGYUN.Abp.Dapr.Actors.AspNetCore + +* 实现接口 + +```c# + +public class SystemActor : Actor +{ + public Task GetAsync() + { + retuen Task.FromResult("System"); + } +} + +``` + +* 创建模块 + +```c# + +// 模块会自动搜索实现了IActor的服务,注册为Dapr的Actors +[DependsOn( + typeof(AbpDaprActorsAspNetCoreModule))] +public class SystemActorServerModule : AbpModule +{ + +} + +``` + +* 发布到Dapr + +```shell +# --app-port .net程序映射端口 +# -H 对外暴露 http 监听端口 +# -G 对外暴露 grpc 监听端口 +dapr run --app-id myapp --app-port 5000 -H 50000 -G 40001 -- dotnet run + +``` + +### 3、客户端 + +引用 LINGYUN.Abp.Dapr.Actors + +* 配置文件 **appsettings.json** + +```json + +{ + "RemoteActors": { + "System": { + "ActorId": "1", + "BaseUrl": "http://127.0.0.1:50000" + } + } +} + +``` + +* 客户端代码 + +```c# + +// 模块依赖 +[DependsOn( + typeof(AbpDaprActorsModule))] +public class SystemActorClientModule : AbpModule +{ + public override void ConfigureServices(ServiceConfigurationContext context) + { + // 注册代理类似于 Volo.Abp.Http.Client 模块 + context.Services.AddDaprActorProxies( + typeof(SystemActorInterfaceModule).Assembly, // 搜索 SystemActorInterfaceModule 模块下的IActor定义 + RemoteServiceName + ); + } +} + +// 调用方法,直接依赖注入即可 +public class InvokeClass +{ + private readonly ISystemActor _systemActor; + + public InvokeClass(ISystemActor systemActor) + { + _systemActor = systemActor; + } + + public async Task InvokeAsync() + { + await _systemActor.GetAsync(); + } +} + +``` + +## 其他