微服务 ASP.NET Core 代码库,包含符合 RealWorld 规范和 API 的真实示例(CRUD、身份验证、高级模式等)。
创建此代码库是为了演示使用ASP.NET Core构建的成熟的微服务架构。它包括 gRPC、领域驱动设计、CQRS、中介器、代理以及更多模式。
它完全遵循ASP.NET Core社区风格指南和最佳实践。
有关如何与其他前端/后端配合使用的更多信息,请访问 RealWorld 存储库。
微服务架构 - 提供高度可维护、可测试、松散耦合的服务集合的架构风格,这些服务可独立部署并围绕业务功能进行组织。服务层位于域模型之上。
领域驱动设计——引导我们专注于我们领域的小型、个体、近乎自主的部分,我们的流程和最终的软件更加灵活。我们可以轻松地移动或修改小部件,而不会产生任何副作用。
通过 gRPC 进行通信 - 一种新的、不断发展的跨平台、跨语言连接服务的方式。
远程代理 - 充当本地资源,同时隐藏如何通过网络连接到远程资源的详细信息。它充当客户端和服务之间的 API 网关。
应用函数式原则 - C# 中的函数式编程可以让您深入了解程序的行为方式。这里的具体主题是不可变架构、避免异常、原始痴迷、如何处理故障和输入错误等等。
命令-查询职责分离 (CQRS) - 鼓励您理清单个统一的域模型并创建两个模型:一个用于处理命令,另一个用于处理查询。 CQRS 允许我们对读取和写入做出不同的决策,这反过来又带来三个好处:可扩展性、性能和最大的好处,简单性。 CQRS 将 CQS 扩展到架构级别。
MediatR - 确保消息被路由到适当的位置。因此,您可能会认为它更像是一个内存中消息传递系统。
Docker——容器代表了一种更高密度的“虚拟化”,能够比传统的虚拟机管理程序更好地满足某些场景的需求。
Travis CI - 用于构建和测试项目的持续集成服务。 Travis CI 会自动检测何时进行提交并将其推送到使用 Travis CI 的 GitHub 存储库,每次发生这种情况时,它都会尝试构建项目并运行测试。