加入收藏 | 设为首页 | 会员中心 | 我要投稿 甘孜站长网 (https://www.0836zz.com.cn/)- 运维、物联设备、数据计算、智能推荐、云管理!
当前位置: 首页 > 站长资讯 > 评论 > 正文

Dotnet洋葱架构实践

发布时间:2021-03-25 14:33:14 所属栏目:评论 来源:互联网
导读:分解释了它为什么叫洋葱架构。 不过,这不是重点。这个架构最重要的是里面的代码依赖原则:从外向内,并且只有这一个方向。处于内环的代码,不应该知道外环的任何东西。 从上面图也可以看到,洋葱架构,也使用层的概念。不过,它不同于我们习惯的三层或N层。

分解释了它为什么叫洋葱架构。

不过,这不是重点。这个架构最重要的是里面的代码依赖原则:从外向内,并且只有这一个方向。处于内环的代码,不应该知道外环的任何东西。

从上面图也可以看到,洋葱架构,也使用层的概念。不过,它不同于我们习惯的三层或N层。我们来看看每个层的情况:

  • 数据层(Domain Layer)

存在于架构的中心部分,由所有业务数据的实体组成。大多数情况下,就是我们的数据模型。后面的实践代码中,我是用EF(Entity Framework)来操作的数据库。

  • 存储层(Repository Layer)

存储层在架构中充当服务层和数据模型之间的纽带,并且在这一层将保持所有数据库操作和应用数据的上下文。通常的做法是接口,用接口来描述数据访问所涉及的读写操作。

  • 服务层(Services Layer)

服务层用于实现存储层和项目之间的通信,同时,还可以保存实体的业务逻辑。在这一层,服务接口与实现分离,以实现解耦和焦点分离。

  • 用户界面层(UI Layer)

这个不解释了。项目最终对外的一层。注意,这儿可能是网站,也可能是API。不需要纠结有没有实际的界面。咱们的实践代码中,我用的是API。

二、实践

好,现在直接进入代码。

 

Swagger的设置不是本文的重点,略过。需要的同学可以去看源代码。

下面,我们在工程中建三个目录:

  • DomainLayer
  • RepositoryLayer
  • ServicesLayer

这三个目录对应上面的三个层。UI在这个项目里其实就是控制器Controller,已经存在了。

建这三个目录的目的,是为了放置三个层的代码。后面编码的时候,你会看到这三个层之间的关系。另外,这三个层在实际应用时,可以独立为三个类库,这样会更清晰。

前边说了,我会用EF操作数据库。所以,这儿还需要引入三个库:

(编辑:甘孜站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读