首页 > 解决方案 > 简化 .net core web api 设计复杂度

问题描述

这是一个与设计相关的问题。

我在 asp.net webforms 中有一个遗留应用程序,它有 3 类用户:管理员、客户和提供商,它们访问多个服务,如产品、帐户、销售、购买等。所有这 3 个用户共享相同的服务类库集,逻辑和数据库到现在为止。并且所有 3 个用户的部署都是单一的。

现在我们将其迁移到 .net core web api + angular。我正在考虑选项。到目前为止,我已经发现这对我们的应用程序来说是最好的:

  1. 为管理员、客户和提供商创建单独的 Web api。然后,对于 Admin 中的任何更改,部署都不会影响 Customer。但是这种方法的问题是类库会被复制。一些常用的方法将被复制。

有什么替代/好的方法吗?

标签: asp.net-coreasp.net-web-apidesign-patternsarchitecturesoftware-design

解决方案


在以下情况下,项目的分离可能是有益的:

  1. 更新一个项目不会影响其他项目
  2. 在这种方法中,发布周期可以非常小,这显然会导致更快的开发和部署
  3. 但是如果你只是想分离你的项目并且他们仍然有一个数据存储,这个架构是一个宏服务架构,微之间的通信应该通过API来完成
  4. 对于您的共享代码,您可以定义一个Nuget 包,每个项目都可以将其添加到他们的项目中,以防止重复代码

推荐阅读