寫在開始學習 ASP.NET MVC 之前

ASP.NET MVC 牽涉前端與後端兩個部份,如果只是要建立簡單的 Web 應用,要瞭解的技術項目其實並不算太過複雜,以下列舉至其中必須瞭解的基礎技術項目。
  • 前端:HTML/JavaScript/CSS
  • 後端:C#物件導向技術/LINQ/Entity Framework
  • 資料庫技術:SQL語法,關聯式資料庫系統(SQL Server)
ASP.NET MVC 入門階段需搭配的前端技術比較單純,只需瞭解上述列舉的HTML、CSS與JavaScript即可,甚至在限制功能的情形下,我們可以僅利用 ASP.NET MVC Razor 功能語法建構網頁內容,不需太深入的前端基礎。

HTML/JavaScript/CSS 的部份,歡迎參考《前端開發完全入門》與 HTML5完美風暴-第三版(目錄)

當Web應用朝向大規模商業應用發展,功能需求會變得相當複雜,沒有具備良好的前端技術要想順利建構這一類的應用幾乎是不可能的事,因此在進入開發實作之前,具備足夠的前端技術基礎非常重要。

除此之外,瞭解網路的 Client-Server 架構,具備 Request-Response 運作概念是必要的。

後端的部份,基本上就是 ASP.NET MVC 整個開發系統,真正的根基無非就是 C# 這個程式語言,學好 C#,接下來運用 ASP.NET MVC 幾乎就不會有太大的障礙。

C#發展到目前已經相當龐大,除了必備的基本語法,至少必須瞭解物件導向設計理論的封裝、繼承與多型,另外亦須熟悉支援資料物件集合查詢操作的LINQ,這是 C# 內建語法非常重要的一部份。

C# 歡迎參考 精簡免費文字版 以及 C# 物件導向程式設計 。

LINQ

C#為了支援集合物件的資料查詢操作導入了LINQ,成為其內建語法的一部份,LINQ發展得相當成功,ASP.NET MVC的網頁構成的過程中,運用了大量的LINQ 語法,不熟悉LINQ將會為進入 ASP.NET MVC 最大的障礙之一。以下列舉 LINQ 相較於基本 C#  最重要的幾項特性:
  • 匿名型別(Anonymous Type)
    啟用即時建立未命名結構型別,此種類型的型別,透過關鍵字var直接加入至集合中以進行存取。
  • 擴充方法(Extension Methods)
    一種靜態方法,允許以執行個體進行呼叫,以擴充現有的方法。
  • 隱含區域變數(Implicit Local Variable)以var關鍵字宣告變數,編譯器會自動從初始化陳述式右側的運算式推斷變數的型別。
  • 查詢運算式(Query Expressions)包含構成LINQ運算式所需的關鍵字,select、from、where、group、join等等。
  • Lambda 運算式(Expressions)一種新型態的內嵌運算式,可以直接繫結至委派或是LINQ查詢樹狀結構中。

LINQ 的更進一步討論,我們的書以及「LINQ 快速入門」線上課程,目前均已絕版或是過期不再提供,後續將另外釋出精簡免費文字版。

Entity Framework

Entity Framework 是ASP.NET MVC 串接底層資料來源最重要的技術之一,由於ASP.NET MVC的彈性相當大,雖然我們並不一定要使用 Entity Framework 取代 ADO.NET,但如此一來便無法獲得 Entity Framework 帶來的好處,例如強型別資料模型處理,精簡資料模型設計等等,這對於應付大型網站開發相當有用,相較於 ADO.NET 更適於在網路開發環境整合。

Entity Framework是個龐大的主題,必須將其視為單一主題進行良好的學習與理解(請參考Entity Framework 實務入門),後續 ASP.NET MVC 的學習會相較比較順利。

關於 Entity Frameowk 的部份,由於《Entity Framework 實務精要》已經絕版,後續我們將上傳精簡的免費文字版,提供自學之用,敬請期待。

最後你還需瞭解資料庫技術,至少一種關聯式資料庫,比較單純的就直接採用Visual Studio內建的 SQL Server 即可,而要操作資料庫,不可省的就是SQL語法,學會基礎的SQL非常重要。

ASP.NET MVC 是一個發展Web應用的技術框架,套用它的框架規則,利用 C# 撰寫程式邏輯,結合 LINQ 與 Entity Framework 等技術,就能開發以MVC架構為基礎的網站。

本系列的學習課程,將專注在ASP.NET MVC的討論,針對上述提及的技術項目預設讀者已具備足夠的基礎,不再個別解說。

ASP.NET MVC - M/V/C

C#、物件導向設計、LINQ 與 Entity Framework 是架構 ASP.NET MVC 所需的技術,這些技術都可以獨立學習,甚至我們建議逐一建立這些技術的基礎之後再實際導入 ASP.NET MVC ,如此一來可以大幅降低進入的門檻。

ASP.NET MVC 主要在於將網站架構分解成模型(M)、檢視(V)以及控制器(C)等三個種檔案群組,模型的部份由封裝成 C# 類別的檔案組成,透過 Entity Framework 對映至底層資料來源以支援資料的存取操作,控制器則是一群封裝各種邏輯程式碼的 C# 類別,負責進行模型與檢視的溝通,而檢視則是最後轉換成為HTML網頁內容的的專屬檔案。

商業級 ASP.NET MVC 開發

對於簡單的電子商務網站而言,或許只需要上述的知識就足以進行開發,然而當網站的規模開始膨脹,很快的我們就需要進一步的補充其它的附加知識與技能,分層架構可以進一步切割模型功能,簡化網站的維護,而另外一項經常被提及的技術「相依性注入」,則能讓整個系統架構以更彈性的方式進行開發。

最後,因應雲端科技的與行動優先概念的盛行,網頁技術正在進一步蛻變,單頁型式的APP類型應用開始崛起,Ajax 技術正式建立此種類型網站必須具備的入門技能,而對於更複雜的應用,則有賴 Web API 。

關於進階商業級 ASP.NET MVC 技術,歡迎參考《商業級 ASP.NET MVC 樣式與架構實務》

沒有留言: