Architecture 当决定将我们的单片Web应用程序分为DDD的独立Web应用程序时,我应该考虑什么?

Architecture 当决定将我们的单片Web应用程序分为DDD的独立Web应用程序时,我应该考虑什么?,architecture,domain-driven-design,n-tier-architecture,Architecture,Domain Driven Design,N Tier Architecture,背景 我们使用Microsoft(.NET)技术堆栈 我们目前有一个大型整体式web应用程序。我们正在计划如何实施领域驱动设计。 我们计划在一些有界上下文上实现微服务,但不是全部。因为它是一块巨石, 大多数有界上下文都位于同一个数据库中,因此我们必须确保在 代码级别 从中,有两种方法可以实现有界上下文 <bc 1> |_ domain |_ application |_ presentation |_ infrastructure <bc 2> |_ domai

背景

我们使用Microsoft(.NET)技术堆栈

我们目前有一个大型整体式web应用程序。我们正在计划如何实施领域驱动设计。
我们计划在一些有界上下文上实现微服务,但不是全部。因为它是一块巨石, 大多数有界上下文都位于同一个数据库中,因此我们必须确保在 代码级别

从中,有两种方法可以实现有界上下文

<bc 1>
 |_ domain
 |_ application
 |_ presentation
 |_ infrastructure
<bc 2>
 |_ domain
 |_ application
 |_ presentation
 |_ infrastructure
当用户处于特定区域时,他/她通常不需要关于其他区域的信息


欢迎提出所有想法和建议。我们正试图获得尽可能多的理解。

微服务的一个基本基础是,所以我肯定会选择方法1

在这种情况下,微服务的“表示层”没有前端UI那么远,它通常只是一个RESTAPI。有几种方法可以设计使用微服务的前端,但是如果
产品
客户端
系统
前端具有不同的生命周期,我建议为它们提供单独的web应用程序

关于该主题的有用文章:

投票结束:意见太广泛/主要是Based@drizzen您是否将第一种方法视为一种给定方法,并想知道前端是否应该分开,还是仍然不确定方法1与方法2之间的关系?我们正在尝试决定是采用方法1还是方法2。在方法一中,我们将把单独的有界上下文分解成不同的web应用程序。在方法2中,我们将web应用程序作为一个整体,并在域级别打破有界上下文。我们的部分领域将需要通过不同的应用程序(移动、网络等)进行访问。
domain
 |_ <bc 1>
 |_ <bc 2>
application
presentation
infrastructure
Products
Client Administration
System Administration