MVC企业领域 - 好还是坏?

Ste*_*ery 14 asp.net-mvc asp.net-mvc-areas asp.net-mvc-3-areas

在单个项目解决方案中,当您拥有大量控制器时引入区域确实可以改善分离,并允许模块轻松地复制到解决方案中或从解决方案中复制出来.但是,在大型企业解决方案中,我倾向于将逻辑拆分为单独的项目.

因此具有单独的UI,Controller,SOA,Model和Repository项目.在这种情况下,区域不再有意义了,而且它们为Url添加了额外的顶层,这通常是不需要的,但我相信如果你保持控制器的独特性,你可以省略Url中的区域,但不是有点臭吗?

区域可能适用于中等复杂度的站点,或者模块代码更好地保存在一个位置,因此可以将其复制到其他站点或删除.

Bra*_*ton 13

我不确定这是不是正确的问题. 对于小型项目而言,区域可能过度,但很难想象一个非平凡的大型项目不使用区域来帮助保持课程的有序性.

我为企业使用MVC区域,并喜欢它的几个方面:

  1. 通常,人们正在处理给定域内的特征(例如,搜索,结账等).如果区域名称与您的业务域相对应,则MVC区域有助于减少实现功能所需的时间,因为相关类很容易找到.
  2. MVC路由为您提供了如何灵活构建URL结构的灵活性.我以前使用动作控制器"模式",但对于非公开的URL,我只是完全接受了区域默认路由,以简化操作.
  3. 区域为您提供样式的独特优势,更重要的是,在站点部分级别封装行为.每个区域都有自己的Web配置,您可以在其中控制基本视图页面或添加托管处理程序.

在一个多个客户端可以访问公共业务功能的环境中,您完全可以将服务放在单独的项目/解决方案中,从而通过存储库抽象数据访问.

但是随着Web项目的发展,MVC领域非常擅长为UI /路由混乱提供一些订单,对我而言,无论上下文如何,这都是非常宝贵的.