MVC文件夹结构 - 主要由业务模块而不是M / V / C构成?

时间:2014-02-10 21:21:56

标签: asp.net-mvc architecture directory-structure

我正在设计一个复杂的基于Web的业务解决方案。我的域,报告和流程项目围绕业务模块(3-4级深度)构建,例如:

\Franchises
   \Regionals
      \Billing
         \Monthly
         \...
         \...
      \...
      \...
   \...
   \...
\...
\...

传统的MVC文件夹结构突出了一个疼痛的拇指,最多2级。因此,我打算改为实现这个结构:

\Franchises\Regionals\Billing\Monthly\RegionalMonthlyBillingController.cs
\Franchises\Regionals\Billing\Monthly\Views\...
\Franchises\Regionals\Billing\Monthly\ViewModels\...

\Franchises\Divisionals\Allocation\DivisionalAllocationController.cs
\Franchises\Divisionals\Allocation\Views\...
\Franchises\Divisionals\Allocation\ViewModels\...
...

请注意,我们的域模型保存在Domain中,而WebUI只需要包含ViewModels。

除了自定义MVC路由/映射的问题之外,您能看到这种方法有任何问题吗?

鉴于会有很多视图文件夹,MVC是否需要搜索500多个文件夹来查找相关视图?

1 个答案:

答案 0 :(得分:3)

  

除了自定义MVC路由/映射的问题之外,还可以   看到这种方法有什么问题吗?

可能会导致一些非常大的项目,并且可能很难为新手进行导航。您可以考虑将单独的程序集中的某些逻辑外部化,以避免使用单个整体应用程序。考虑ASP.NET MVC区域。

  

鉴于会有很多视图文件夹,可能会有性能   关注MVC必须搜索500多个文件夹才能找到相关内容   查看?

不,当在发布模式下运行时(debug =" false"),ASP.NET MVC会缓存视图的位置,查找速度非常快。