在洋葱架构中,我在哪里保存文件上传和计算的逻辑?
Where do I keep logic for file upload and calculations in onion architecture?
所以..我最近在研究洋葱架构,也阅读了很多关于它的文章,这是大多数博客 posts/guide/etc 唯一关注的内容。没有解释的是,我在哪里保存图像上传或一些计算等逻辑?
现在我得到了这样的东西
-app.core
<-- 通过简单的添加、更新、删除、获取、getAll things
为存储库保留域模型和接口
-app.infrastructure
<-- 实现我的 app.core
存储库并且还有服务,包含 IoC 模块和映射器设置
-app.application
<- 用户向控制器发出请求,控制器从 app.infrastructure
调用服务并取回 DTO 模型
所以..我把这两件事放在哪里?因为我觉得洋葱所做的就是添加、更新、删除、获取、获取所有
我在哪里保存更复杂的代码……比如文件上传?半响
如果此功能在
层之间共享,我会把它放在 app.core 中
您的域(或核心)不必是无逻辑的。事实上,我会说您的业务逻辑应该在您的域中,因为您的业务逻辑是您应用程序的核心。这才是真正赋予您的商业价值的东西。我会把那个逻辑放在那里。在编写该逻辑时,您可能会注意到您需要某些基础结构调用才能保存到文件系统或发送电子邮件。然后,您只需将接口添加到您的核心,并假设它将由外层实现(并注入)。
所以..我最近在研究洋葱架构,也阅读了很多关于它的文章,这是大多数博客 posts/guide/etc 唯一关注的内容。没有解释的是,我在哪里保存图像上传或一些计算等逻辑?
现在我得到了这样的东西
-app.core
<-- 通过简单的添加、更新、删除、获取、getAll things
-app.infrastructure
<-- 实现我的 app.core
存储库并且还有服务,包含 IoC 模块和映射器设置
-app.application
<- 用户向控制器发出请求,控制器从 app.infrastructure
调用服务并取回 DTO 模型
所以..我把这两件事放在哪里?因为我觉得洋葱所做的就是添加、更新、删除、获取、获取所有
我在哪里保存更复杂的代码……比如文件上传?半响
如果此功能在
层之间共享,我会把它放在 app.core 中您的域(或核心)不必是无逻辑的。事实上,我会说您的业务逻辑应该在您的域中,因为您的业务逻辑是您应用程序的核心。这才是真正赋予您的商业价值的东西。我会把那个逻辑放在那里。在编写该逻辑时,您可能会注意到您需要某些基础结构调用才能保存到文件系统或发送电子邮件。然后,您只需将接口添加到您的核心,并假设它将由外层实现(并注入)。