最近博客园出现了一篇文章《微服务时代之2017年五军之战:Net PHP谁先死》,掀起了一波撕逼,作者只是从一个使用者的角度来指点江山,这个姿势是不对的。.NET Core就是专门针对模块化的微服务架构而设计,在微服务架构这方面Java的Spring Cloud具有非常高的人气,这个正是这篇文章作者的立脚点。然后他没有看到蓬勃发展的.NET 社区的微服务的相关框架,本文主要梳理下当前.NET社区微服务的相关项目的汇集。
微软作为.NET的主战场,自然在当前的微服务框架上有着丰富的经验,这一领域的代表作就是Azure Service Fabric,在Azure上的众多云服务都是基于Servie Fabric构建,而且微软已经明确表态了Service Fabric将开源,Runtime还没开源,说有计划开源,但目前因为依赖于很多内部工具、组件,在逐步推进runtime的开源进程,具体可以看下我写的一篇博客《期待微软平台即服务技术Service Fabric 开源》。如果你是基于Azure平台来开发,你完全可以使用Service Fabric 做应用开发。当然你如果是在你私有云里用他,也是完全可以的,具体案例我举一个就是腾讯游戏:https://customers.microsoft.com/en-us/story/tencent-telecommunications-azure-service-fabric-windows-server-en
这里列出1个Github 以Service Fabric 开发微服务的项目:
https://github.com/danielmarbach/Microservices.ServiceFabric
在微服务架构这方面Spring Cloud具有非常高的人气,如果你在使用Spring Cloud,可以使用开源项目https://github.com/steeltoeoss 开发.NET Core应用,具体可以参考这篇文章Enabling .NET Core Microservices with Steeltoe and Pivotal Cloud Foundry .
https://github.com/gigya/microdot,这是一个4月份才开源的.NET微服务框架,让您专注于编写定义服务逻辑的代码,无需解决开发分布式系统的无数挑战,可以很好的Microsoft Orleans的集成。
.NET China Foundation 也组织整合了系列国内社区开源项目,里面有多个项目都是以微服务为方向,欢迎大家加入一起来把.NET Core的微服务玩好。
https://github.com/dotnetcore/CAP
https://github.com/dotnetcore/surging
https://github.com/dotnetcore/Util
.NET社区里还有很多微服务的项目,下面我就简要列出他们在Github上的地址:
https://github.com/xigadee/Microservice
https://github.com/daxnet/apworks-core
https://github.com/daxnet/apworks-examples
https://github.com/Elders/Cronus
https://github.com/Cimpress-MCP/Cimpress.Nancy
https://github.com/pchalamet/GrpcConsul
https://github.com/TomPallister/Ocelot ,Ocelot是一个使用.NET Core平台上的一个API Gateway,这个项目的目标是在.NET上面运行微服务架构,我在年初基于Ocelot做了一个POC项目 https://github.com/geffzhang/NanoFabric ,目前已经上线运行。同时也在不断的丰富Ocelot的功能。
简要的列了一下.NET 平台上的微服务开发的相关类库,欢迎大家推荐你用过的微服务的相关类库,在最后推荐一个.NET上归属与.NET 基金会下面的开源项目:https://dotnetfoundation.org/projects?type=project 这里可以找到你想要的项目。