Angular和MVC / Web API应用程序中的特征文件夹

时间:2015-01-30 18:11:45

标签: asp.net-mvc angularjs asp.net-web-api

我正在开发一个使用ASP.NET MVC,Web API和Angular JS的项目。

我正在考虑将项目结构从经典MVC(相同类型的文件夹包装文件 - 控制器等)更改为功能文件夹:

Feature Folders Organization

所以这些文件夹可以描述如下:

  1. 资产:图片,字体......
  2. 功能:功能列表(博客,家庭,共享,...)
    共享保存所有功能的公共文件;功能可能包含:
    A)角度控制器和服务;
    B)ASP.MVC控制器,模型,模型验证器; C)功能中使用的特定CSS样式。
  3. 处理程序:处理消息(命令等)的服务层处理程序;
  4. 助手:基础架构文件;
  5. 消息:服务层消息(命令等);
  6. 脚本:供应商脚本(Angular,Jquery等);
  7. 样式:全局样式(reset.css等);
  8. 问题

    1. 在博客功能上,我将显示帖子列表。 BlogController调用从API获取帖子的PostService(?)? 每个返回的帖子都有一个标题,正文和要显示的标签。

      On Home我显示最近的帖子,但只显示标题。 那么HomeController在Post功能中调用HomeService或PostService?

    2. 想象一下我在编辑新帖子时的博客功能。 在Blog控制器中,我调用PostService来获取该帖子。 但我需要用标签填充选择列表。 所以我需要在Blog功能中使用TagsService和TagsController吗?

    3. 这两个问题可能看起来很奇怪,但它们帮助我解决了我对这种组织应用程序的疑虑。

      有什么建议吗?

1 个答案:

答案 0 :(得分:0)

功能文件夹非常棒,特别是从长远来看。

我建议将与某个功能相关的所有内容(包括处理程序)保持在一起。

重新考虑服务。在大多数情况下,他们不需要(除非您为客户公开服务)。

将助手重命名为基础设施。

Checkout MediatR