我正在开发一个使用ASP.NET MVC,Web API和Angular JS的项目。
我正在考虑将项目结构从经典MVC(相同类型的文件夹包装文件 - 控制器等)更改为功能文件夹:
所以这些文件夹可以描述如下:
问题
在博客功能上,我将显示帖子列表。 BlogController调用从API获取帖子的PostService(?)? 每个返回的帖子都有一个标题,正文和要显示的标签。
On Home我显示最近的帖子,但只显示标题。 那么HomeController在Post功能中调用HomeService或PostService?
想象一下我在编辑新帖子时的博客功能。 在Blog控制器中,我调用PostService来获取该帖子。 但我需要用标签填充选择列表。 所以我需要在Blog功能中使用TagsService和TagsController吗?
这两个问题可能看起来很奇怪,但它们帮助我解决了我对这种组织应用程序的疑虑。
有什么建议吗?
答案 0 :(得分:0)
功能文件夹非常棒,特别是从长远来看。
我建议将与某个功能相关的所有内容(包括处理程序)保持在一起。
重新考虑服务。在大多数情况下,他们不需要(除非您为客户公开服务)。
将助手重命名为基础设施。
Checkout MediatR