close

好像有點久沒寫寫東西了

最近好景不常,到新東家半年就被說要換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而已

 

結果好像也沒講到什麼...

總之細節太多了,建議照著範例去做一次,可以大概有些觀念

當然很多用法什麼的還可以去探究,不過個人認為照著範例用一次就可以做個小網站了

很多東西其實都幫你包好了,比較沒有那麼難入門

那這篇就先到這邊啦,有新的東西再上來補充~

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 頁頁頁六滴 的頭像
    頁頁頁六滴

    人森很精彩,所以要把所有事情都記起來=ˇ=

    頁頁頁六滴 發表在 痞客邦 留言(0) 人氣()