好像有點久沒寫寫東西了
最近好景不常,到新東家半年就被說要換team,所以本來寫C++小module的我就被抓去寫C#了
然後因為新的team大概是寫server的,架構是用ASP.net,我完全是0基礎,所以就想說看看官網的範例,看能不能先打一點基本概念...
那麼這篇呢基本上就只是記錄一下我的小心得,要學的話直接去官網照做一次會比較快啦
當然這種架構微軟有提供很多種作法,這邊先看MVC的部分
那就開始吧~
基本上在這個架構裡,可以視為在server裡寫一個應用程式來處理所有的事情,而我們要做的就是寫這個程式讓他在server上跑
那麼首先是MVC的概念,MVC是Module、View和Controller的縮寫,這個應用程式就是由這三個部分駔成的
以下一個一個介紹他們負責什麼:
1. Module
代表應用程式資料裡的類別,也就是你要在server裡存放的資料型態都是叫module,比如說你要建一個查詢電影資料的web,那麼可能你就要定義一module叫做movie,裏面包含了movie相關的資料這樣。
2. View
web用來顯示UI的元件,簡單說就是顯示在web上的內容,大部分都是cshtml檔,裡面可能會包含排版啦,一些顯示的邏輯等等之類的東西
3. Controller
負責處理request的類別,比如說今天有個browser發了一個get的request上來的時候,Controller就會去做對應的處理,比如從request裡面擷取資料去查詢資料庫,送對應的資料給view去讓它顯示在web上,簡單說就是一個處理邏輯的元件
講道理只要知道這三個就可以寫個小網頁了,那麼接下來稍微看一下官網的範例吧
官網的範例是以建立一個電影查詢網頁為範例,首先是建一個MVC專案,我們先來看一下專案的結構吧
除了剛剛提到的那三個folder,還會有一些檔案,這邊簡單講講:
1. Program.cs:基本上就是這個程式的進入點
2. Startup.cs:設定一些程式的服務和處理需求的東西
3. appsetting.json:裡面包含一些設定,在執行時會載入
其實如果是開範例的話上面都有註解啦,自己看一看大概可以知道他是在做什麼的
那就從Controller開始吧:
前面提到Controller是用來處理request用的,具體的情況是怎樣呢?
以範例來看,假設叫做MoviesController好了,首先裡面會有個方法叫做Index()
當對 "(ip)/Movies" 發出 "get" 請求的時候,預設就是會進到IIndex()這個方法裡面進行處理
(裡面這個ip就是這台server的ip)
那麼裡面的其他方法... 比如說加了一個Create()的方法好了
當對 "(ip)/Movies/Create" 發出 "get" 請求的時候,就會進到這個方法裡面進行處理
感覺好像有點方便啊
如果想要用別種的request,比如說post好了
可以再方法前面加上[HttpPost]的屬性,這樣這個方法就會變成處理post的方法了
View的話裡面就是cshtml檔,其實就可以當成對應Controller裡面方法顯示的頁面
比如說前面提到MovieController的Index()方法就會對應到Movies資料夾中的Index.cshtml
在Index方法中最後回傳的也是View(),也可以當成是處理後的結果
最後是Module,這個就比較沒什麼特別的,就是一些資料的type而已
結果好像也沒講到什麼...
總之細節太多了,建議照著範例去做一次,可以大概有些觀念
當然很多用法什麼的還可以去探究,不過個人認為照著範例用一次就可以做個小網站了
很多東西其實都幫你包好了,比較沒有那麼難入門
那這篇就先到這邊啦,有新的東西再上來補充~