【发布时间】:2019-08-02 22:23:49
【问题描述】:
我有一个巨大的单体应用程序,一个 ASP.NET MVC 框架服务,提供约 50 个不同的不相关数据“组”,分为 50 个不同的控制器/业务逻辑。我的任务是把这个单体分解成 50 个微服务(每个都托管在 Docker 容器中)。
我打算做的是使用 ASP.NET Core 创建一个“模板应用程序”作为参考项目,对于这 50 个应用程序中的每一个,我都会fork这个“模板”项目,添加相应的具有必要业务逻辑的控制器,可能需要或不需要自定义此模板以添加一些特定的功能。
例如,一个应用程序可能需要使用 CSV 格式而不是 JSON 来响应请求,JSON 是大约 45 个应用程序的标准。因此,我将修改“模板项目”以包含此“CSV 响应”功能,并且它将被其他 ~4 个使用它的项目使用。
我目前能看到的:
优点
- 开发 ASP.NET Core 应用程序很容易,但它需要一些已经定义到“我的公司模板”项目中的配置和自定义(CORS、缓存、路由等)。
缺点
- 分叉和合并模板项目可能很麻烦。如果我们在模板中发现安全问题,则需要手动更新所有 50 个项目并修复一些潜在的合并冲突。
在 ASP.NET Core 中是否有其他选项可以使这个“模板”项目更易于更新和维护?或者为此的设计模式?
【问题讨论】:
标签: asp.net asp.net-mvc asp.net-core microservices