天天看點

對DNN的一些高層架構設想

深入一門語言去程式設計

現在重新審視Web Form的架構,感觸頗多。Rick Strahl 2007年的一篇文章已近談到了很多分層和單元測試的問題:

What's Ailing ASP.NET Web Forms

看來,要解決這些問題,就是需要深入一門語言去程式設計了。

DNN單元測試

目前DNN的業務邏輯層和DAL層都無法進行單元測試。

  1. 給DNN 項目增加Service層,把業務邏輯放入其中,這樣就可以對其進行單元測試,當然,架構也更明确了。
  2. 對于DAL層,有一篇文章介紹了一個單元測試架構,不過目前無法使用了: Unit Testing a DotNetNuke Private Assembly Module

現在的問題是,Web Form使用的事件響應機制使業務邏輯代碼和UI操作代碼很難分開。Web Form使用partial 的類把一個UI的頁面分成三份: xxx.aspx; xxx.aspx.cs; xxx.aspx.design,因為是partial的類,是以這三個部分中的變量都是可以在任何一個部分中直接通路的,這帶來的一個問題就是在aspx.cs檔案中對事件響應的代碼中,因為可以直接通路aspx.design頁面中全局控件變量,比如textField, dropdownList之類的東西,事件響應代碼變得跟UI緊耦合,進而無法進行單元測試。對上面的這些問題,這篇文章有一定的價值:

Testing ASP.NET WebForms

學習計劃:

  1. 研究DNN官方項目的單元測試方法
  2. 研究使用MSBuilder打包子產品的方法

To Do:

可測試的DNN子產品-- 如何建立可測試的DNN子產品

可測試的DNN子產品--如何建立測試項目

繼續閱讀