这是一个与设计相关的问题。
我在asp.net网络表单中有一个遗留应用程序,它有三种用户:Admin、Customer和Provider,它们访问多种服务,如Product、Account、Sale、Purchase等。到目前为止,所有这三个用户都共享同一组服务、逻辑和数据库类库。对于所有3个用户,部署都是单一的。
现在我们正在将其迁移到.net核心web api+angular中。我正在考虑各种选择。到目前为止,我已经发现这对我们的应用程序来说是最好的:
- 为Admin、Customer和Provider创建单独的web api。然后,对于Admin中的任何更改,部署都不会影响Customer。但是这种方法的问题是类库会被复制。一些常见的方法将被复制
有什么替代/好的方法吗?
我的答案太大,所以我决定添加另一个答案。要将您的单片应用程序迁移到微服务或宏服务
在以下情况下,项目分离可能是有益的:
- 更新一个项目不会影响其他项目
- 发布周期在这种方法中可能非常小,这显然会加快开发和部署
- 但是,如果您只想分离您的项目,而它们仍然有一个数据存储,则该体系结构是宏服务体系结构,并且微型之间的通信应该通过API来完成
- 对于共享代码,您可以定义Nuget包并且每个项目都可以将其添加到其项目中,以防止重复代码