[Asp.Net Core Mvc] Part.2 專案架構及生命週期介紹
接著我們來說明MVC專案中分層目的,及相對比較細項的說明,比較值得一提的部份已經整理如下圖所示;當然,越往後面層次會分越多,到時候會再一一做補充,必免太多資訊消化不良,會覺得MVC怎麼是在搞亂的感覺(實際上是還好,只是學習有先後順序),目前就先看整體專案的感覺,最後會再進一步說明MVC的生命週期。
一、專案架構說明:
二、使用者進入MVC網站生命週期流程:
1、【Routing路由】:第一次建置由系統發出Request顯示首頁時,會先經過Startup.cs裡的UseEndpoints(),再由lamda設定的路由進入預設HomeController的Index(Action)。
2、【Controller控制器】:通常是接口及出口的中繼站,目的是協調Model和View之間的傳遞訊息;如當路由傳來Request指令進行呼叫Model,並且View也要接應Model所傳來的資料。
3、【Model模型】:通常會設定好資料模型,並且若有商業邏輯(Service)處理,將會把資料傳遞過去,甚至,需要資料庫CRUD將從Service注入Repository進行實作CRUD。
4、【View檢視】:處理HTML、CSS、JavaScript、網站佈局(View+Layout)…等,以及若有Model傳遞資料過來,也是一併進行處理畫面結果,最後回傳ViewResult給Controller。
5、【Controller控制器】:經由繼承IActionResult的介面回傳ViewResult封裝成Response至Client端宣染畫面。
我想MVC的生命週期在理解上要比Web Form的架構還要好理解一些(光是沒有PostBack來攪亂就阿密陀佛),只是相對應的要了解新的開發方式,例如EF Core、Linq…等撰寫模式(實際上也不算新),當這些彙總起來才能感受到MVC的精華,相信學習MVC是大內高手的必修課程!