終於在這次春節長假開始有時間研究 ASP.NET MVC,雖然我在之前已經將所有 ASP.NET MVC Tutorials 文件看完了,也看懂了,但說實在的,自己開始「動手」寫的時候,還是一樣「很卡」,非常的不順手,文件、範例程式一樣到處翻,好在我平時有整理學習資料的習慣,資料找起來有比較順手一些,建議各位在研發時一定要有做筆記的習慣。
我整理了一下最近的思緒,對於一個全新的 ASP.NET MVC 專案,應該會有以下流程:
- 準備好網站雛形頁面(Prototype)或所有網站之靜態版型頁面
- 透過頁面元素進行資料來源分析
- 分析出所有需要的 Controller, Model, View, MasterPage, UserControl, Html Helpers
- 資料庫必須先準備好
- 需將表格、關連、檢視表、預儲程序都先建立好
- 資料庫中最好包括測試資料,以方便套版測試之用
- 新增 ASP.NET MVC 專案
- 建立 Model ( LINQ to SQL )
- 先透過 LINQ to SQL Designer 介面完成 ORM 物件對應
- 再補充所有表格的 partial class 的撰寫,並將資料驗證與商業邏輯都加上
- 建立 Controller
- 將共用的 Code 寫到 BaseController 去
- 建立共用的 DataContext 物件
- 各 ViewPage / ViewMasterPage / ViewUserControl 共用的 ViewData 物件
- 再將原先規劃的 Controller 全部建立
- 再將所有 Controller 應該出現的 Action 全部建立好
- 適當的套用或自訂 Action Filters,包括 HandleError, OutputCache, Authorize
- 接著開始分工,將不同的 Controller 指派給不同的人進行開發
- 建立 View
- 依照 Controller 的分工,各自將各自的 View 進行套版
- 在套用 ASP.NET 內建的 SiteMap 時,要注意 securityTrimmingEnabled 屬性是不支援的,若選單會依據權限不同而顯示不同的選單項目,需自行修正。
參考文章:Providing Website Navigation with SiteMaps - 盡可能的用 Strong-Typed 的方式開發,降低 Runtime Error 的風險
- 適當的設定 web.config 預設匯入一些在 View 中常用的命名空間,例如:ProjectX.Models
參考文章:ASP.NET 如何預設匯入指定的命名空間(Namespace) - 適當的將在不同頁面中重複出現的元素做成 User Control
- 若輸出的資料包括特殊的表單元素時,建議做成 Html Helper 擴充方法,以簡化頁面邏輯!
這些流程日後應該會再補充,我會更新在同一篇文章內。