這系列文章是參考了.NET Core文檔和源碼,可能有人要問,直接看官方的英文文檔不就可以了嗎,為什么還要寫這些文章呢?
原因如下:
- 官方文檔涉及的內(nèi)容相當(dāng)全面,屬于那種大而全的知識(shí)倉庫,不太適合初學(xué)者,很容易讓人失去重要,讓人掉入到具體的細(xì)節(jié)之中。
- 對(duì)于大多數(shù)人來講開發(fā)語言只是工具,程序員都有一個(gè)通病,就是死磕工具,把工具學(xué)深。我認(rèn)為在工具上沒有必要投入太多時(shí)間,以能高效地完成日常的工作項(xiàng)目為準(zhǔn)即可。要需求驅(qū)動(dòng)學(xué)習(xí),你需要什么學(xué)什么。如果你學(xué)的新技術(shù)新特性只是屠龍之技或者只需要用到的時(shí)候去查一下即可的話,這種死磕這又有什么用。沒有必要花120%的時(shí)間去學(xué)100%的知識(shí),你只需要花20%的時(shí)間去學(xué)習(xí)80%的知識(shí)就可以了,剩下的等實(shí)際的項(xiàng)目中用到的時(shí)候去查就可以了,工具只是工具,不是工作本身。
- 目前基本所有的文章都是基于Windows平臺(tái)的Visual Studio IDE來介紹的。而我用的是一臺(tái)Mac,所以我將基于Mac平臺(tái)的Visual Studio Code講解適合我們實(shí)際項(xiàng)目中遇到的知識(shí)。
- 還有一點(diǎn),就是這是我個(gè)人的學(xué)習(xí)總結(jié)。
這系列文章就是讓你去花20%的時(shí)間去學(xué)80%的東西,剩下的20%再去看官方文檔。
之前介紹了《如何在Mac下運(yùn)行ASP.NET Core應(yīng)用程序》,主要是講解了如何在Mac下把ASP.NET Core跑起來,在這一篇中將進(jìn)一步分析如何添加Controller、View、Model等。
Model-View-Controller (MVC)架構(gòu)模式將一個(gè)應(yīng)用程序分成了三大塊:Model、View、Controller。
- Models: 用于表示應(yīng)用程序數(shù)據(jù)的類,并使用驗(yàn)證邏輯來約束數(shù)據(jù)的業(yè)務(wù)規(guī)則。通常模型對(duì)象用來從數(shù)據(jù)庫獲取和存儲(chǔ)實(shí)體模型數(shù)據(jù)。比如User Model 從數(shù)據(jù)庫獲取用戶數(shù)據(jù),并將它交給View來顯示或者直接更新,更新后的數(shù)據(jù)再寫入到數(shù)據(jù)庫中。
- Views: 用來顯示應(yīng)用程序UI的組件,該UI會(huì)顯示Model數(shù)據(jù)。
- Controllers: 是Models和Views的一個(gè)橋梁。用來處理瀏覽器請(qǐng)求,獲取Model數(shù)據(jù),并將指定視圖模板作為響應(yīng)返回給瀏覽器。視圖(View)僅僅用于顯示信息,控制器(Controller)用于處理并響應(yīng)用戶的輸入和交互。比如,Controller處理路由數(shù)據(jù)查詢字符串值,并將這些值傳遞給Model,Model再去使用這些值去查詢數(shù)據(jù)庫。
MVC模式幫助你創(chuàng)建一個(gè)關(guān)注分離的應(yīng)用程序(輸入邏輯、業(yè)務(wù)邏輯、UI邏輯),同時(shí)這個(gè)模塊之間是松耦合的。UI邏輯屬于View,輸入邏輯屬于Controller,業(yè)務(wù)邏輯屬于Model。
添加Controller
namespace M