ASP.NET MVC Areas 区域
使用 ASP.NET MVC 的区域(Areas)实现分部开发和集中部署
1、 什么是 Areas
Areas是 ASP.NET MVC 用来将相关功能组织成一组单独命名空间(路由)和文件夹结 构(视图)的功能
新建的MVC工程是没有区域的。
2、 Areas 的使用MVC本身提倡的就是关注点分离。区域的创建可以协助你在架构较大的项目中,让独立性较高的部分功能作为一个单独的子MVC系统,降低网站与网站之间的耦合度,也可以通过area切割,让多个开发人员开发同一个项目时,减少冲突。
随着项目规模的不断扩大,Controller控制器也随之不断增多。如果在Controllers文件夹下面有超过两位数controller,即便采用良好的命名规范,或者用子文件夹的形式区分不同功能的控制器,还是会影响项目的可阅读性和可维护性。因此,在一些场景下,如果能把与某功能相关的文件分离到一个独立的项目中是非常有用的。Asp.Net MVC提供了Areas(区域)的概念达到这一目的。
但是当项目本身的业务逻辑足够复杂,如果所有的业务逻辑都写个Controller文件夹下面的时候,你会看到非常庞大的各种命名的Controller, 这个时候区域的作用就非常明显了,将不同的模块通过区域加以区分,简单明了。
Areas 是 ASP.NET MVC 用来将相关功能组织成一组单独命名空间(路由)和文件夹结构(视图)的功能。使用 Areas 创建层次结构的路由,是通过添加另一个路由参数 area 到 Controller 和action。
Areas 提供了一种把大型 ASP.NET Core MVC Web 应用程序分为较小的功能分组的方法。Area 是应用程序内部一个有效的 MVC 结构。
在 MVC 项目中,像 Model,Controller 和 View 的逻辑组件放在不同的文件夹中, MVC 用命名约定来创建这些组件间的关系。 对于大型应用,它有利于把应用分割成独立高级功能的 Areas。例如,一个多业务单元的电子商务应用,如结账,计费和搜索等。
每个单元都有自己的逻辑组件:视图、控制器和模型。在这种情况下,你可以用Areas 在同一项目中物理分割业务组件。
在 ASP.NET Core MVC 项目中 Area 被定义成为有自己的一套 controller,view 和 model 的较小的功能单元。
当有下列情况时应当考虑在 MVC 项目中用 Areas:
应用程序应该从逻辑上分隔成多个高级功能组件的
想要分隔MVC 项目,使每一个功能 area 可以独立工作 Area 特性:
一个 ASP.NET Core MVC 应用可以有任意数量的 area
每一个 area 都有自己的控制器、模型和视图
允许把大型 MVC 项目组织成多个高级组件以便可以独立工作
支持具有相同名称的多个控制器 - 只要它们有不同的 areas