iT邦幫忙

2022 iThome 鐵人賽

DAY 1
5
Software Development

C# ASP.NET MVC實作: 30天打造屬於你的網站應用程式系列 第 1

(DAY 1)C# ASP .NET MVC實作: 30天打造屬於你的網站應用程式-前言

  • 分享至 

  • xImage
  •  

● 開賽心得

這是我第一次參加it邦幫忙的鐵人賽,參賽的初衷其實也沒什麼,只是想把自己學過的知識有效整理筆記,一方面加深學習的印象,同時又能分享給對文章主題有興趣的人參考。
我自己是半路出家學程式的人,所以少了強大紮實的資工背景。30歲才發現自己對Coding好像有興趣,學了一年的C#後,目前有幸轉職成功在一間小公司擔任軟體工程師,負責公司軟體(人機介面程式)維護,主要是使用Winform與WPF MVVM架構,就這樣從去年中到現在也任職了1年多,還只是個小菜雞呢!
之後也想嘗試找ASP.NET相關的工作,就趁著這次參賽機會來再次學習吧~

● ASP.NET是什麼

維基百科說明 https://zh.wikipedia.org/zh-tw/ASP.NET

ASP.NET是由微軟在.NET Framework框架中所提供,開發Web應用程式的類別庫,封裝在System.Web.dll檔案中,顯露出System.Web命名空間,並提供ASP.NET網頁處理、擴充以及HTTP通道的應用程式與通訊處理等工作,以及Web Service的基礎架構。

很多人都把 ASP.NET 當做是一種程式語言,但它實際上只是一個由 .NET Framework 提供的一種開發平台 (development platform),並非程式語言。也可認為ASP.NET是.NET組件,任何.NET語言,例如C#,可以參照該組件,建立網頁或Web服務。

簡單來說,ASP.NET是一種由 .NET Framework 提供的一種開發平台,可以使用.NET的程式語言(ex: C#、VB)進行開發網站應用程式。ASP.NET支援三種開發模式:

  1. Web Pages(單頁面模型)
  2. Web Forms(事件驅動模型)
  3. MVC(Model View Controller)

另外還有比較新的ASP. NET CORE框架,引用WIKI說明如下:

為了因應雲端化所誘發的多作業平台整合與開發能力,微軟特別開發一個新一代的 ASP.NET,稱為 ASP.NET vNext,並於 2014 年命名為 ASP.NET 5,但隨後於 2016 年將它更名為 ASP.NET Core,由於架構上的差異頗大,因此未來 ASP.NET 與 ASP.NET Core 將是分別發展與維護,Windows 平台的 ASP.NET 4.6 以上版本仍維持 Windows Only,但 ASP.NET Core 則是具有跨平台 (Windows, Mac OSX 與 Linux) 的能力。

. NET CORE的框架與. NET Framework有滿大的差異,雖然. NET CORE也有MVC架構,但寫法是截然不同的,我們這次主題會放在ASP. NET MVC,未來有機會可能也會寫一篇. NET CORE當作自我學習吧~

● MVC架構

MVC架構是將程式碼分成Model、View、Controller三個部分,為什麼要這樣設計?可以先參考下方微軟官方文件說明:
https://docs.microsoft.com/zh-tw/aspnet/core/mvc/overview?view=aspnetcore-6.0

模型檢視控制器 (MVC) 架構模式可將一個應用程式劃分成三組主要元件:模型、檢視和控制器。 此模式有助於 Separation of Concerns (關注點分離)。 透過此模式,使用者要求會路由傳送至控制器,再由其負責使用模型來執行使用者動作及 (或) 擷取查詢結果。 控制器會選擇要向使用者顯示的檢視,並在其中提供任何所需的模型資料。
下圖顯示三個主要元件及彼此的參考關係:

此職責劃分有助於您根據複雜度來調整應用程式,因為如果模型、檢視或控制器只有一項作業,就會更容易撰寫程式碼、進行偵錯及測試。 如果程式碼相依於這三個區域當中兩個以上,就很難進行更新、測試及偵錯。 例如,使用者介面邏輯通常比商務邏輯更常變更。 如果將展示程式碼和商務邏輯結合成一個物件,則每次使用者介面變更時,都必須修改含有商務邏輯的物件。 這通常會導致錯誤,而需要在每次使用者介面微幅變更之後重新測試商務邏輯。

所以簡單來說將Code分成M V C 三個部分,會更容易撰寫與維護的意思。
Model主要負責:business logic、DataBase資料;
View則是UI的呈現,主要透過HTML+CSS+JavaScript語法撰寫;
Controller功能在於取得 Model資料 ,丟給 View 呈現網頁內容。
至於三個區塊詳細彼此是如何互動呢?後面的文章會透過範例逐步說明。

● 30天的文章大綱

這30天內目標是學習ASP. NET MVC的架構,可以完成一個小型的購物車網站,並能夠成功部署至雲端伺服器上。
預計是前10天先介紹網站製作實例時會用到的基本知識,中間10天開始網站實作,最後10天說明如何部署與其他知識補充,不過可能不會抓得這麼準確就是了~

● 建議先具備的知識

撰寫Model與Controller都是用C#語言,View的生成則脫離不了HTML標記與CSS屬性,但如果30天內要從基礎語法開始講就講不完了!下面是建議先具備的基礎知識,至少先有概念才不會被困在記憶熟練語法當中。
另外,開發工具會使用Visual Studio 2022,順便比較看看和2019版有沒有更好用~

  1. C#
    • 變數宣告
    • if 流程控制
    • foreach迴圈
    • List 清單
    • Linq 使用Lambda運算式
    • 類別與物件基本觀念
  2. HTML+CSS
    • 常用標記語法表示方式
    • 如何加入CSS屬性到HTML標記內
  3. Visual Studio
    • 安裝開發工具軟體
    • 快捷鍵使用

● 小結

其實在寫這樣的知識分享文章時,我思考的點在於如何深入淺出地表達一項知識,尤其像ASP .NET MVC這樣的主題在歷屆鐵人賽或技術文章也不少,說實在好像該講的都差不多了。但我仍然想試著以一個「為了初學ASP .NET的人所寫的技術文章」的心情來分享接下來30天的內容。

為了準備這次的主題,除了參考自己上課的筆記以外,也有參考許多網站資料與相關書籍,
個人主要參考的書目為:跟著實務學習ASP .NET MVC 5.x-打下前進ASP .NET Core的基礎(使用C#2019) 不算工商啦,只是我個人有買來閱讀覺得滿適合初學者的。總之,希望30天內可以好好把這個主題內容呈現,如果內容有任何謬誤或問題,也請各位大神多多批評指教~歡迎下方留言討論^^


下一篇
(DAY 2)C# ASP .NET MVC實作: 30天打造屬於你的網站應用程式-建立第一個網站應用程式
系列文
C# ASP.NET MVC實作: 30天打造屬於你的網站應用程式30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言