ASP.NET Core微服务最佳实践eShopOnContainers

为了推广.Net Core,微软为我们提供了一个开源Demo-eShopOnContainers,这是一个使用Net Core框架开发的,跨平台(几乎涵盖了所有平台,windows、mac、linux、android、ios)的,基于微服务架构的,运行在容器中的小型应用。

从名字上可以看出,这是一个运行在容器上的电子店铺应用,利用Docker的跨平台性,使我们可以“build once, run anywhere”。

简介

eShopOnContainers已更新为.NET 5技术浪潮。不仅有编译,而且还有EF Core,ASP.NET Core和其他新的相关版本中的新推荐代码,并进行了一些重大更改。

Demo实现了电商平台的一些基本功能,如:列出商品目录、 按类型过滤商品、按品牌过滤商品、将商品添加到购物车、编辑或删除购物车中的物品、支付、注册账号、登录、登出、订单审核。

首页:

源码:

架构

由于可以在Linux或Windows容器上运行(取决于您的Docker主机)的.NET 5服务,以及在Android,iOS或Windows / UWP plus上运行的移动应用程序的Xamarin,因此该参考应用程序在服务器和客户端都是跨平台的客户端Web应用程序的任何浏览器。该架构提出了一种面向微服务的架构实现,该实现具有多个自主微服务(每个微服务都拥有自己的数据/数据库),并使用Http作为客户端应用之间的通信协议,在每个微服务内实现不同的方法(简单的CRUD与DDD / CQRS模式)。

在Demo中,微软根据不同功能分别搭建了多个service,而且在设计这几个service的时候,微软又使用了不同的方式来实现,如下图所示:

以上是微软在Demo中展示的四种services,你还可以使用不同的框架,不同的数据库完成你的微服务搭建,这就是微服务为何如此流行的原因了。

Github

https://github.com/dotnet-architecture/eShopOnContainers

目前在Github标星高达17.3k,.NET项目标星超过10k本身不多,能达到这一成就,说明该项目推动.NET Core的发展功不可没。

(0)

相关推荐