深入一门语言去编程

现在重新审视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模块--如何创建测试项目

转载于:https://www.cnblogs.com/DotNetNuke/archive/2011/03/20/1989773.html

对DNN的一些高层架构设想相关推荐

  1. 基于PostgreSQL流复制的容灾库架构设想及实现

    点击上方"蓝字" 关注我们,享更多干货! 一.前言 这几天在对PostgreSQL流复制的架构进行深入研究,其中一个关键的参数:recovery_min_apply_delay引起 ...

  2. 12306网站架构设想

    我的公众号「码农之屋」(id: Spider1818) ,分享的内容包括但不限于 Linux.网络.云计算虚拟化.容器Docker.OpenStack.Kubernetes.SDN.OVS.DPDK. ...

  3. Z1:第一台祖思机的架构与算法

    本文是对论文<The Z1: Architecture and Algorithms of Konrad Zuse's First Computer>的中文翻译,已征得原作者Raul Ro ...

  4. 架构设计的本质:系统与子系统、模块与组件、框架与架构

    点击关注公众号,Java干货及时送达 -     前言     - 在软件研发这个领域,程序员的终极目标都是想成为一名合格的架构师.然而梦想很美好,但现实却很曲折. 在实际工作中,程序员会分很多种,有 ...

  5. 架构设计本质:系统与子系统、模块与组件、框架与架构

    在软件研发这个领域,程序员的终极目标都是想成为一名合格的架构师.然而梦想很美好,但现实却很曲折. 在实际工作中,程序员会分很多种,有的擅长编码实现,有的擅长底层原理,有的擅长逻辑实现等等,在各自的领域 ...

  6. 架构设计的真谛:系统与子系统、模块与组件、框架与架构

    -     前言     - 在软件研发这个领域,程序员的终极目标都是想成为一名合格的架构师.然而梦想很美好,但现实却很曲折. 在实际工作中,程序员会分很多种,有的擅长编码实现,有的擅长底层原理,有的 ...

  7. 一文说透架构设计的本质

    作者 | 猿码架构 来源 | 云时代架构 头图 | 下载于视觉中国 前言: 在软件研发领域,程序员的终极目标都是想成为一名合格的架构师.然而梦想很美好,但现实却很曲折. 在实际工作中,程序员会分很多种 ...

  8. 整洁架构设计分析--架构设计的本质是什么?

    整洁架构算是计算机领域里必读的经典书籍之一啦,网上零零散散有些相关的阅读笔记和经验总结.最近Go 招聘的号主卷神博大也在开始分享这方面的内容,还分析各个大佬的阅读笔记.关于书中一直在提到的架构设计的本 ...

  9. 值得借鉴:360推荐系统架构演进

    " 推荐系统的核心排序算法已经从传统的 LR.GBDT 等模型进化到了 Deep&Wide.DeepFM.PNN 等若干深度模型和传统模型相结合的阶段. 如何结合各个业务数据的特点, ...

最新文章

  1. 自己的mongodb的CRUD封装
  2. 【深度思考】javaweb框架技术心得
  3. YII 测试环境搭建
  4. R语言实战应用精讲50篇(一)-万字长文干货R语言ggplot2包图形绘制
  5. python的dir()和__dict__属性的区别
  6. uploadhandler.php,多个WordPress主题’upload-handler.php’任意文件上传漏洞
  7. LeetCode: Merge k Sorted Lists
  8. TFS(Team Foundation Server)敏捷使用教程
  9. Android 自定义View以及ValueAnimator学习
  10. erlang有前途吗_带有示例的Erlang概述
  11. Linux下能访问Nginx,本地无法访问
  12. ssh系统环境搭建步骤
  13. 晨会分享 知识点二〇一六年五月二十五日
  14. 错误:created a ThreadLocal with key of type ……but failed to remove it when the web application was sto
  15. 小步快跑 快速迭代(整理)
  16. 组策略 禁止用户策略下发到指定计算机,Win7 64位旗舰版下利用组策略禁止程序运行的设置技巧...
  17. linux opencv调用笔记本摄像头,Linux下利用Opencv打开笔记本摄像头问题
  18. 物联网linux系统设计,Ostro:面向物联网优化的基于 Linux的开源操作系统
  19. 三步解决Tomcat假死状态
  20. 【揭秘】CSDN博客上,超过百万访问量的Android牛人都是谁?

热门文章

  1. 触发器_PLCDCS组态中SR触发器介绍
  2. 95-910-142-源码-FlinkSQL-FlinkSQL追加模式与缩进模式区别
  3. 【Flink】ValidationException: Could not find any factory for identifier json
  4. Mac下IDEA安装Protobuf插件
  5. GC调优在Spark应用中的实践
  6. Doker : Docker 容器与宿主机共享文件
  7. 【janino】CompileException Closing single quote missing
  8. 10-300-020-简介-架构-简介
  9. drools 7.x执行指定的drl文件
  10. IntelliJ IDEA 配置Tomcat 运行Web项目