对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模块--如何创建测试项目

posted on 2011-03-20 22:39  m2land  阅读(1341)  评论(0编辑  收藏  举报

导航