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