Areas区域
ASP.NET MVC Areas 區(qū)域
使用 ASP.NET MVC 的區(qū)域(Areas)實(shí)現(xiàn)分部開(kāi)發(fā)和集中部署
1、 什么是 Areas
Areas是 ASP.NET MVC 用來(lái)將相關(guān)功能組織成一組單獨(dú)命名空間(路由)和文件夾結(jié) 構(gòu)(視圖)的功能
新建的MVC工程是沒(méi)有區(qū)域的。
2、 Areas 的使用MVC本身提倡的就是關(guān)注點(diǎn)分離。區(qū)域的創(chuàng)建可以協(xié)助你在架構(gòu)較大的項(xiàng)目中,讓獨(dú)立性較高的部分功能作為一個(gè)單獨(dú)的子MVC系統(tǒng),降低網(wǎng)站與網(wǎng)站之間的耦合度,也可以通過(guò)area切割,讓多個(gè)開(kāi)發(fā)人員開(kāi)發(fā)同一個(gè)項(xiàng)目時(shí),減少?zèng)_突。
隨著項(xiàng)目規(guī)模的不斷擴(kuò)大,Controller控制器也隨之不斷增多。如果在Controllers文件夾下面有超過(guò)兩位數(shù)controller,即便采用良好的命名規(guī)范,或者用子文件夾的形式區(qū)分不同功能的控制器,還是會(huì)影響項(xiàng)目的可閱讀性和可維護(hù)性。因此,在一些場(chǎng)景下,如果能把與某功能相關(guān)的文件分離到一個(gè)獨(dú)立的項(xiàng)目中是非常有用的。Asp.Net MVC提供了Areas(區(qū)域)的概念達(dá)到這一目的。
但是當(dāng)項(xiàng)目本身的業(yè)務(wù)邏輯足夠復(fù)雜,如果所有的業(yè)務(wù)邏輯都寫個(gè)Controller文件夾下面的時(shí)候,你會(huì)看到非常龐大的各種命名的Controller, 這個(gè)時(shí)候區(qū)域的作用就非常明顯了,將不同的模塊通過(guò)區(qū)域加以區(qū)分,簡(jiǎn)單明了。
Areas 是 ASP.NET MVC 用來(lái)將相關(guān)功能組織成一組單獨(dú)命名空間(路由)和文件夾結(jié)構(gòu)(視圖)的功能。使用 Areas 創(chuàng)建層次結(jié)構(gòu)的路由,是通過(guò)添加另一個(gè)路由參數(shù) area 到 Controller 和action。
Areas 提供了一種把大型 ASP.NET Core MVC Web 應(yīng)用程序分為較小的功能分組的方法。Area 是應(yīng)用程序內(nèi)部一個(gè)有效的 MVC 結(jié)構(gòu)。
在 MVC 項(xiàng)目中,像 Model,Controller 和 View 的邏輯組件放在不同的文件夾中, MVC 用命名約定來(lái)創(chuàng)建這些組件間的關(guān)系。 對(duì)于大型應(yīng)用,它有利于把應(yīng)用分割成獨(dú)立高級(jí)功能的 Areas。例如,一個(gè)多業(yè)務(wù)單元的電子商務(wù)應(yīng)用,如結(jié)賬,計(jì)費(fèi)和搜索等。
每個(gè)單元都有自己的邏輯組件:視圖、控制器和模型。在這種情況下,你可以用Areas 在同一項(xiàng)目中物理分割業(yè)務(wù)組件。
在 ASP.NET Core MVC 項(xiàng)目中 Area 被定義成為有自己的一套 controller,view 和 model 的較小的功能單元。
當(dāng)有下列情況時(shí)應(yīng)當(dāng)考慮在 MVC 項(xiàng)目中用 Areas:
應(yīng)用程序應(yīng)該從邏輯上分隔成多個(gè)高級(jí)功能組件的
想要分隔MVC 項(xiàng)目,使每一個(gè)功能 area 可以獨(dú)立工作 Area 特性: ?
? 一個(gè) ASP.NET Core MVC 應(yīng)用可以有任意數(shù)量的 area ?
? 每一個(gè) area 都有自己的控制器、模型和視圖 ?
? 允許把大型 MVC 項(xiàng)目組織成多個(gè)高級(jí)組件以便可以獨(dú)立工作 ?
? 支持具有相同名稱的多個(gè)控制器 - 只要它們有不同的 areas
總結(jié)
- 上一篇: InfiniBand技术和架构
- 下一篇: aiff 文件格式简述