Browse Source

upgrade dapr from 1.3.0 to 1.4.0

pull/306/head
cKey 4 years ago
parent
commit
03f9ebf80b
  1. 2
      aspnet-core/modules/dapr/LINGYUN.Abp.Dapr.Actors.AspNetCore/LINGYUN.Abp.Dapr.Actors.AspNetCore.csproj
  2. 2
      aspnet-core/modules/dapr/LINGYUN.Abp.Dapr.Actors/LINGYUN.Abp.Dapr.Actors.csproj
  3. 2
      aspnet-core/modules/dapr/LINGYUN.Abp.Dapr.Client/LINGYUN.Abp.Dapr.Client.csproj
  4. 342
      aspnet-core/modules/dapr/LINGYUN.Abp.Dapr.Client/README.md
  5. 248
      aspnet-core/modules/dapr/README.md

2
aspnet-core/modules/dapr/LINGYUN.Abp.Dapr.Actors.AspNetCore/LINGYUN.Abp.Dapr.Actors.AspNetCore.csproj

@ -8,7 +8,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Dapr.Actors.AspNetCore" Version="1.3.0" /> <PackageReference Include="Dapr.Actors.AspNetCore" Version="1.4.0" />
<PackageReference Include="Volo.Abp.AspNetCore" Version="4.4.0" /> <PackageReference Include="Volo.Abp.AspNetCore" Version="4.4.0" />
</ItemGroup> </ItemGroup>

2
aspnet-core/modules/dapr/LINGYUN.Abp.Dapr.Actors/LINGYUN.Abp.Dapr.Actors.csproj

@ -8,7 +8,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Dapr.Actors" Version="1.3.0" /> <PackageReference Include="Dapr.Actors" Version="1.4.0" />
<PackageReference Include="Volo.Abp.Http.Client" Version="4.4.0" /> <PackageReference Include="Volo.Abp.Http.Client" Version="4.4.0" />
</ItemGroup> </ItemGroup>
</Project> </Project>

2
aspnet-core/modules/dapr/LINGYUN.Abp.Dapr.Client/LINGYUN.Abp.Dapr.Client.csproj

@ -6,7 +6,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Dapr.Client" Version="1.3.0" /> <PackageReference Include="Dapr.Client" Version="1.4.0" />
<PackageReference Include="Volo.Abp.Http.Client" Version="4.4.0" /> <PackageReference Include="Volo.Abp.Http.Client" Version="4.4.0" />
</ItemGroup> </ItemGroup>

342
aspnet-core/modules/dapr/LINGYUN.Abp.Dapr.Client/README.md

@ -1,171 +1,171 @@
[Actors](../README.md) | Dapr.Actors 文档 [Actors](../README.md) | Dapr.Client 文档
# LINGYUN.Abp.Dapr.Client # LINGYUN.Abp.Dapr.Client
实现了Dapr文档中的服务间调用,项目设计与Volo.Abp.Http.Client一致,通过配置文件即可无缝替代Volo.Abp.Http.Client 实现了Dapr文档中的服务间调用,项目设计与Volo.Abp.Http.Client一致,通过配置文件即可无缝替代Volo.Abp.Http.Client
配置参考 [AbpRemoteServiceOptions](https://docs.abp.io/zh-Hans/abp/latest/API/Dynamic-CSharp-API-Clients#abpremoteserviceoptions) 配置参考 [AbpRemoteServiceOptions](https://docs.abp.io/zh-Hans/abp/latest/API/Dynamic-CSharp-API-Clients#abpremoteserviceoptions)
## 配置使用 ## 配置使用
模块按需引用 模块按需引用
```csharp ```csharp
[DependsOn(typeof(AbpDaprClientModule))] [DependsOn(typeof(AbpDaprClientModule))]
public class YouProjectModule : AbpModule public class YouProjectModule : AbpModule
{ {
public override void ConfigureServices(ServiceConfigurationContext context) public override void ConfigureServices(ServiceConfigurationContext context)
{ {
// 注册代理类似于 Volo.Abp.Http.Client 模块 // 注册代理类似于 Volo.Abp.Http.Client 模块
context.Services.AddDaprClientProxies( context.Services.AddDaprClientProxies(
typeof(YouProjectInterfaceModule).Assembly, // 搜索 YouProjectInterfaceModule 模块下的远程服务定义 typeof(YouProjectInterfaceModule).Assembly, // 搜索 YouProjectInterfaceModule 模块下的远程服务定义
RemoteServiceName RemoteServiceName
); );
} }
} }
``` ```
### 1、接口定义 ### 1、接口定义
```c# ```c#
// IApplicationService 实现了 IRemoteService // IApplicationService 实现了 IRemoteService
public interface ISystemAppService : IApplicationService public interface ISystemAppService : IApplicationService
{ {
Task<string> GetAsync(); Task<string> GetAsync();
} }
public class SystemInterfaceModule : AbpModule public class SystemInterfaceModule : AbpModule
{ {
} }
``` ```
### 2、服务端 ### 2、服务端
引用 Volo.Abp.AspNetCore.Mvc 引用 Volo.Abp.AspNetCore.Mvc
* 实现接口 * 实现接口
```c# ```c#
public class SystemAppService : ApplicationService, ISystemAppService public class SystemAppService : ApplicationService, ISystemAppService
{ {
public Task<string> GetAsync() public Task<string> GetAsync()
{ {
retuen Task.FromResult("System"); retuen Task.FromResult("System");
} }
} }
``` ```
* 创建模块 * 创建模块
```c# ```c#
[DependsOn( [DependsOn(
typeof(SystemInterfaceModule), typeof(SystemInterfaceModule),
typeof(AbpAspNetCoreMvcModule))] typeof(AbpAspNetCoreMvcModule))]
public class SystemServerModule : AbpModule public class SystemServerModule : AbpModule
{ {
public override void PreConfigureServices(ServiceConfigurationContext context) public override void PreConfigureServices(ServiceConfigurationContext context)
{ {
PreConfigure<IMvcBuilder>(mvcBuilder => PreConfigure<IMvcBuilder>(mvcBuilder =>
{ {
mvcBuilder.AddApplicationPartIfNotExists(typeof(SystemServerModule).Assembly); mvcBuilder.AddApplicationPartIfNotExists(typeof(SystemServerModule).Assembly);
}); });
} }
} }
``` ```
* 发布到Dapr * 发布到Dapr
```shell ```shell
# --app-port .net程序映射端口 # --app-port .net程序映射端口
# -H 对外暴露 http 监听端口 # -H 对外暴露 http 监听端口
# -G 对外暴露 grpc 监听端口 # -G 对外暴露 grpc 监听端口
dapr run --app-id myapp --app-port 5000 -H 50000 -G 40001 -- dotnet run dapr run --app-id myapp --app-port 5000 -H 50000 -G 40001 -- dotnet run
``` ```
### 3、客户端 ### 3、客户端
引用 LINGYUN.Abp.Dapr.Client 引用 LINGYUN.Abp.Dapr.Client
* 配置文件 **appsettings.json** * 配置文件 **appsettings.json**
```json ```json
{ {
"RemoteServices": { "RemoteServices": {
"System": { "System": {
"AppId": "myapp", "AppId": "myapp",
"BaseUrl": "http://127.0.0.1:50000" "BaseUrl": "http://127.0.0.1:50000"
} }
} }
} }
``` ```
* 客户端代码 * 客户端代码
```c# ```c#
// 模块依赖 // 模块依赖
[DependsOn( [DependsOn(
typeof(AbpDaprClientModule))] typeof(AbpDaprClientModule))]
public class SystemActorClientModule : AbpModule public class SystemActorClientModule : AbpModule
{ {
private const string RemoteServiceName = "System"; private const string RemoteServiceName = "System";
public override void ConfigureServices(ServiceConfigurationContext context) public override void ConfigureServices(ServiceConfigurationContext context)
{ {
// 注册代理类似于 Volo.Abp.Http.Client 模块 // 注册代理类似于 Volo.Abp.Http.Client 模块
context.Services.AddDaprClientProxies( context.Services.AddDaprClientProxies(
typeof(SystemInterfaceModule).Assembly, // 搜索 SystemInterfaceModule 模块下的IRemoteService定义创建代理 typeof(SystemInterfaceModule).Assembly, // 搜索 SystemInterfaceModule 模块下的IRemoteService定义创建代理
RemoteServiceName RemoteServiceName
); );
} }
} }
// 调用方法,直接依赖注入即可 // 调用方法,直接依赖注入即可
public class InvokeClass public class InvokeClass
{ {
private readonly ISystemAppService _systemAppService; private readonly ISystemAppService _systemAppService;
public InvokeClass(ISystemAppService systemAppService) public InvokeClass(ISystemAppService systemAppService)
{ {
_systemAppService = systemAppService; _systemAppService = systemAppService;
} }
public async Task InvokeAsync() public async Task InvokeAsync()
{ {
await _systemAppService.GetAsync(); await _systemAppService.GetAsync();
} }
} }
``` ```
## 配置项说明 ## 配置项说明
* AbpDaprRemoteServiceOptions.RemoteServices 配置Dapr.AppId * AbpDaprRemoteServiceOptions.RemoteServices 配置Dapr.AppId
```json ```json
{ {
"RemoteServices": { "RemoteServices": {
"System": { "System": {
"AppId": "myapp", "AppId": "myapp",
"BaserUrl": ""http://127.0.0.1:50000"" "BaserUrl": "http://127.0.0.1:50000"
} }
} }
} }
``` ```
## 其他 ## 其他

248
aspnet-core/modules/dapr/README.md

@ -1,124 +1,124 @@
[Client](./LINGYUN.Abp.Dapr.Client/README.md) | Dapr.Client 文档 [Client](./LINGYUN.Abp.Dapr.Client/README.md) | Dapr.Actors 文档
# Dapr.Actors 集成 # Dapr.Actors 集成
## 配置使用 ## 配置使用
项目设计与 **Volo.Abp.Http.Client** 类似 项目设计与 **Volo.Abp.Http.Client** 类似
### 1、接口定义 ### 1、接口定义
```c# ```c#
// 定义在接口上的RemoteService.Name会被作为Actor的名称注册到Dapr // 定义在接口上的RemoteService.Name会被作为Actor的名称注册到Dapr
[RemoteService(Name = "System")] [RemoteService(Name = "System")]
public interface ISystemActor : IActor public interface ISystemActor : IActor
{ {
Task<string> GetAsync(); Task<string> GetAsync();
} }
public class SystemActorInterfaceModule : AbpModule public class SystemActorInterfaceModule : AbpModule
{ {
} }
``` ```
### 2、服务端 ### 2、服务端
引用 LINGYUN.Abp.Dapr.Actors.AspNetCore 引用 LINGYUN.Abp.Dapr.Actors.AspNetCore
* 实现接口 * 实现接口
```c# ```c#
public class SystemActor : Actor, ISystemActor public class SystemActor : Actor, ISystemActor
{ {
public Task<string> GetAsync() public Task<string> GetAsync()
{ {
retuen Task.FromResult("System"); retuen Task.FromResult("System");
} }
} }
``` ```
* 创建模块 * 创建模块
```c# ```c#
// 模块会自动搜索实现了IActor的服务,注册为Dapr的Actors // 模块会自动搜索实现了IActor的服务,注册为Dapr的Actors
[DependsOn( [DependsOn(
typeof(AbpDaprActorsAspNetCoreModule))] typeof(AbpDaprActorsAspNetCoreModule))]
public class SystemActorServerModule : AbpModule public class SystemActorServerModule : AbpModule
{ {
} }
``` ```
* 发布到Dapr * 发布到Dapr
```shell ```shell
# --app-port .net程序映射端口 # --app-port .net程序映射端口
# -H 对外暴露 http 监听端口 # -H 对外暴露 http 监听端口
# -G 对外暴露 grpc 监听端口 # -G 对外暴露 grpc 监听端口
dapr run --app-id myapp --app-port 5000 -H 50000 -G 40001 -- dotnet run dapr run --app-id myapp --app-port 5000 -H 50000 -G 40001 -- dotnet run
``` ```
### 3、客户端 ### 3、客户端
引用 LINGYUN.Abp.Dapr.Actors 引用 LINGYUN.Abp.Dapr.Actors
* 配置文件 **appsettings.json** * 配置文件 **appsettings.json**
```json ```json
{ {
"RemoteServices": { "RemoteServices": {
"Shop": { "Shop": {
"BaseUrl": "http://127.0.0.1:50000" "BaseUrl": "http://127.0.0.1:50000"
} }
} }
} }
``` ```
* 客户端代码 * 客户端代码
```c# ```c#
// 模块依赖 // 模块依赖
[DependsOn( [DependsOn(
typeof(AbpDaprActorsModule))] typeof(AbpDaprActorsModule))]
public class SystemActorClientModule : AbpModule public class SystemActorClientModule : AbpModule
{ {
public override void ConfigureServices(ServiceConfigurationContext context) public override void ConfigureServices(ServiceConfigurationContext context)
{ {
// 注册代理类似于 Volo.Abp.Http.Client 模块 // 注册代理类似于 Volo.Abp.Http.Client 模块
context.Services.AddDaprActorProxies( context.Services.AddDaprActorProxies(
typeof(SystemActorInterfaceModule).Assembly, // 搜索 SystemActorInterfaceModule 模块下的IActor定义 typeof(SystemActorInterfaceModule).Assembly, // 搜索 SystemActorInterfaceModule 模块下的IActor定义
"Shop" "Shop"
); );
} }
} }
// 调用方法,直接依赖注入即可 // 调用方法,直接依赖注入即可
public class InvokeClass public class InvokeClass
{ {
private readonly ISystemActor _systemActor; private readonly ISystemActor _systemActor;
public InvokeClass(ISystemActor systemActor) public InvokeClass(ISystemActor systemActor)
{ {
_systemActor = systemActor; _systemActor = systemActor;
} }
public async Task InvokeAsync() public async Task InvokeAsync()
{ {
await _systemActor.GetAsync(); await _systemActor.GetAsync();
} }
} }
``` ```
## 其他 ## 其他

Loading…
Cancel
Save