对DNN的一些高层架构设想
深入一门语言去编程
现在重新审视Web Form的架构,感触颇多。Rick Strahl 2007年的一篇文章已近谈到了很多分层和单元测试的问题:What's Ailing ASP.NET Web Forms 看来,要解决这些问题,就是需要深入一门语言去编程了。
DNN单元测试
目前DNN的业务逻辑层和DAL层都无法进行单元测试。
- 给DNN 项目增加Service层,把业务逻辑放入其中,这样就可以对其进行单元测试,当然,架构也更明确了。
- 对于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
学习计划:
- 研究DNN官方项目的单元测试方法
- 研究使用MSBuilder打包模块的方法
To Do:
可测试的DNN模块-- 如何创建可测试的DNN模块
可测试的DNN模块--如何创建测试项目
转载于:https://www.cnblogs.com/DotNetNuke/archive/2011/03/20/1989773.html
对DNN的一些高层架构设想相关推荐
- 基于PostgreSQL流复制的容灾库架构设想及实现
点击上方"蓝字" 关注我们,享更多干货! 一.前言 这几天在对PostgreSQL流复制的架构进行深入研究,其中一个关键的参数:recovery_min_apply_delay引起 ...
- 12306网站架构设想
我的公众号「码农之屋」(id: Spider1818) ,分享的内容包括但不限于 Linux.网络.云计算虚拟化.容器Docker.OpenStack.Kubernetes.SDN.OVS.DPDK. ...
- Z1:第一台祖思机的架构与算法
本文是对论文<The Z1: Architecture and Algorithms of Konrad Zuse's First Computer>的中文翻译,已征得原作者Raul Ro ...
- 架构设计的本质:系统与子系统、模块与组件、框架与架构
点击关注公众号,Java干货及时送达 - 前言 - 在软件研发这个领域,程序员的终极目标都是想成为一名合格的架构师.然而梦想很美好,但现实却很曲折. 在实际工作中,程序员会分很多种,有 ...
- 架构设计本质:系统与子系统、模块与组件、框架与架构
在软件研发这个领域,程序员的终极目标都是想成为一名合格的架构师.然而梦想很美好,但现实却很曲折. 在实际工作中,程序员会分很多种,有的擅长编码实现,有的擅长底层原理,有的擅长逻辑实现等等,在各自的领域 ...
- 架构设计的真谛:系统与子系统、模块与组件、框架与架构
- 前言 - 在软件研发这个领域,程序员的终极目标都是想成为一名合格的架构师.然而梦想很美好,但现实却很曲折. 在实际工作中,程序员会分很多种,有的擅长编码实现,有的擅长底层原理,有的 ...
- 一文说透架构设计的本质
作者 | 猿码架构 来源 | 云时代架构 头图 | 下载于视觉中国 前言: 在软件研发领域,程序员的终极目标都是想成为一名合格的架构师.然而梦想很美好,但现实却很曲折. 在实际工作中,程序员会分很多种 ...
- 整洁架构设计分析--架构设计的本质是什么?
整洁架构算是计算机领域里必读的经典书籍之一啦,网上零零散散有些相关的阅读笔记和经验总结.最近Go 招聘的号主卷神博大也在开始分享这方面的内容,还分析各个大佬的阅读笔记.关于书中一直在提到的架构设计的本 ...
- 值得借鉴:360推荐系统架构演进
" 推荐系统的核心排序算法已经从传统的 LR.GBDT 等模型进化到了 Deep&Wide.DeepFM.PNN 等若干深度模型和传统模型相结合的阶段. 如何结合各个业务数据的特点, ...
最新文章
- 自己的mongodb的CRUD封装
- 【深度思考】javaweb框架技术心得
- YII 测试环境搭建
- R语言实战应用精讲50篇(一)-万字长文干货R语言ggplot2包图形绘制
- python的dir()和__dict__属性的区别
- uploadhandler.php,多个WordPress主题’upload-handler.php’任意文件上传漏洞
- LeetCode: Merge k Sorted Lists
- TFS(Team Foundation Server)敏捷使用教程
- Android 自定义View以及ValueAnimator学习
- erlang有前途吗_带有示例的Erlang概述
- Linux下能访问Nginx,本地无法访问
- ssh系统环境搭建步骤
- 晨会分享 知识点二〇一六年五月二十五日
- 错误:created a ThreadLocal with key of type ……but failed to remove it when the web application was sto
- 小步快跑 快速迭代(整理)
- 组策略 禁止用户策略下发到指定计算机,Win7 64位旗舰版下利用组策略禁止程序运行的设置技巧...
- linux opencv调用笔记本摄像头,Linux下利用Opencv打开笔记本摄像头问题
- 物联网linux系统设计,Ostro:面向物联网优化的基于 Linux的开源操作系统
- 三步解决Tomcat假死状态
- 【揭秘】CSDN博客上,超过百万访问量的Android牛人都是谁?
热门文章
- 触发器_PLCDCS组态中SR触发器介绍
- 95-910-142-源码-FlinkSQL-FlinkSQL追加模式与缩进模式区别
- 【Flink】ValidationException: Could not find any factory for identifier json
- Mac下IDEA安装Protobuf插件
- GC调优在Spark应用中的实践
- Doker : Docker 容器与宿主机共享文件
- 【janino】CompileException Closing single quote missing
- 10-300-020-简介-架构-简介
- drools 7.x执行指定的drl文件
- IntelliJ IDEA 配置Tomcat 运行Web项目