一直以来都想实现一个简单的RPC框架。.net core不断完善之后借助其自身的便利实现一个RPC框架。框架分Server端和Client端两部分。Client端可在Console或Web端等,能运行.net core的host上运行。Server端依赖Asp.Net Core,接下来介绍大致使用,详细介绍请参阅 https://www.cnblogs.com/wucy/p/13096515.html
- visual studio 2022
- 核心库
DotNetCoreRpc.Core目标.netstandard2.1 - 客户端/服务端库多目标
netcoreapp3.1;net5.0;net6.0;net7.0;net8.0;net9.0 - 服务端依赖 asp.net core 6.0 及以上(推荐 asp.net core 8.0/9.0 LTS)
- 默认使用 MessagePack 二进制序列化(
TypelessContractlessStandardResolver,自动携带类型标记以还原object多态参数/返回值)。 - 核心库仅依赖
MessagePack,已与System.Text.Json解耦;System.Text.Json仅用于 demo 层日志与控制台的中文 JSON 打印。 - 协议升级需 客户端与服务端同步部署,原有 JSON 负载与之不兼容。
- 单元测试:
dotnet test(tests/DotNetCoreRpc.Core.Tests)。 - 集成测试:
tests/DotNetCoreRpc.Tests.Integration——基于WebApplicationFactory的进程内宿主 + 真实RpcClient走完整 HTTP 管道。 - 端到端冒烟脚本:
pwsh ./e2e-smoke.ps1——真实进程 + 真实端口的服务端/客户端联调。
由于v1.1.3之后版本优化了一下client和server端的注册方式,所以分两个文档介绍。