本文討論:
模型視圖控制器模式
創建控制器和視圖
構建窗體和回發
控制 器工廠和其他擴展點
本文使用了以下技術:
ASP.NET
我 從事專業開發迄今為止已有 15 年,在此之前,我利用業余時間從事開發至少也有 10 年了。與我這一代的大多數人一樣,我是從 8 位計算機起步,然後轉用 PC 平台的。隨著計算機的復雜性日益增加,我編寫的應用程序涵蓋了從小型游 戲到個人數據管理再到控制外部硬件的各項功能。
不過,在我職業生涯的前半段,我編寫的所有軟件都有一個共同點:即,都是運行在用戶桌面上的本 地應用程序。我最早是在 90 年代初期聽說萬維網這件新生事物。那時我發現,通過構建 Web 應用程序 ,可以讓我輸入我的考勤卡信息而不必再費時費力從工作場所趕回辦公室。
一言以蔽之,我感覺 很是困惑。我當時滿腦子是面向桌面的理念,很難接納這種無狀態的 Web。要添加很多讓人頭疼的調試、 我沒有 UNIX 服務器的超級用戶訪問權限,再加上這個奇怪的角括號,這些因素使年輕時的我止步不前, 又重返桌面開發渡過了幾年時光。
我遠離了 Web 開發領域,雖然這領域顯然很重要,但我並沒有 真正理解其編程模型。然後,Microsoft® .NET Framework 和 ASP.NET 發行了。盡管它與桌面應用 程序編程有許多相似之處,但終於有了可以讓我從事 Web 應用程序編程的框架。我可以構建窗口(頁面 ),將控件與事件掛鉤,而設計器使我不必處理那些討厭的角括號。最妙的是,ASP.NET 會通過查看狀態 自動為我處理 Web 的無狀態性質!我又重新找回了程序員的快樂 ... 至少在一段時間內是如此。
隨著經驗的增加,我的設計內容也隨之豐富。我早已掌握了幾種最佳實踐,並將其應用到桌面應 用程序編程。其中的兩種就是:
分離關注點:不要將 UI 邏輯與基礎行為混合在一起。
自 動單元測試:編寫自動測試以驗證您的代碼是否按預期執行。