ASP.NET MVC 框架學習心得註記

這幾天利用撰寫一個 Web.NET 小專案的機會,打算使用 ASP.NET MVC 5,藉此順便學習下 Web MVC 的框架技術。

花了快兩天的時間研讀一些文章,總算對 ASP.NET MVC 框架有了全貌的認識;先註記下基本的心得:

  • ASP.NET 源自於 Java Struts MVC,本質完全沒變。
  • ASP.NET MVC 僅是位於系統 3層(3-tier)架構的 Presentation 層,完全沒有涵蓋系統的控制 (Control)與邏輯 (Logic, or Model)層。
    {P.S. 關於這個觀念,個人已在課堂上論述許久;後續再撰寫該篇專文討論。}
  • ASP.NET 的 MVC 中的 Model,係指 Data Model,也就是屬於資料傳遞類型的物件 (DTO, Data Transfer Object),並未涉及到邏輯運算。
  • 微軟的企圖心,利用 EF (Entity Framework) O-R (Object-Relation) Mapping 技術,實現 Model (Data Model)與資料庫的無縫式對應,讓開發人員對於撈取資料庫的程序更是簡化不少。
  • ASP.NET Model 透過 EF 直接對應資料庫,本質上就是 Client/Server 架構;好像重回到 10 年來前 Windows Form 的 4GL,雖然實作變得更簡單 (不需自行控制 Web 表單的狀態與資料庫連結問題),但會導致系統本質上的混亂-沒有確實隔離問題領域 (problem domain) 的功能控制 (functional control)與業務邏輯 (business logic)層。
  • ASP.NET MVC 的頁面 (Page)係以所謂的 Razor 語法 (把它想成 PHP 就好了),以 "@" 為語法的頭尾標記,來實現 UI 邏輯控制的部位。
  • 至於 Web Page 的呈現,則係利用最為普遍的開源專案-Bootstrap,綜合了 HTML/CSS/Javascript 框架技術,來呈現 Web Page 的動態呈現與彈性 Layout 控制 (有些意外,微軟竟然也採用了開源專案)。
軟體思維顧問

專職軟體輔導與教育訓練的獨立顧問。輔導企業資訊單位如何有效組織系統開發與維護;輔導開發人員達成有效的專業分工。傳授如何把軟體作軟 (Keeping Software Soft)的技能,得以提昇系統的彈性/延展,並進而創造系統的再利用價值。

Personal