Register  |   Login
关于本人
Baldwin's Status
Ramblings of a developer for dnn solution...
 Contact Me
随笔档案
Blog搜索
相册库
更多照片请查看相册库
最新评论
Rss Feed
feedsky
抓虾
pageflakes
newsgator
哪吒
我们的服务
  • DotNetNuke 咨询
  • Web设计及其模块开发
  • 免费建站
  • 电子商务
  • 开拓市场
我们致力于开发定制的web 2.0 ,所服务的客户主要包括小中型企业,社区俱乐部及其非盈利机构组织。我们将利用开源的DNN作为我们核心的系统机制,更多相关信息...

剖析DNN架构

剖析DNN底层架构,研究DNN核心框架...

剖析DNN架构-开篇之作

本Blog将新增一个栏目,暂时取名为"剖析DNN架构",名号似乎有些大了,但考虑到这也算是鞭策所写文章质量的一种手段,故最后暂且不做更改了。对于为何出现这一栏目,主要是一直以来跟一些DNN爱好者们的交流所促使的。曾有几位朋友所在公司想利用DNN这一开源平台或开发产品,或与现有系统整合,或优化框架以便满足需求等等,故他们都愿意招聘能真正担当起这一重担的“千里马”,想想这将要求所聘之人具备以下一些条件:
1) 熟悉DNN核心架构和框架脉络。
2) 有一定的架构经验,懂得设计模式相关知识。
3) 精通DNN模块开发流程及其皮肤机制。
等等,“DNN架构师”也就从此诞生了,当时我听到他们的招聘要求之后,唯一的想法是在国内,此等“千里马”实在是凤毛麟角,恐怕他们只能望梅止渴了。因为想想国内研究DNN的氛围,人气之淡,交流之稀,凭何能促进DNN这一开源平台的兴盛呢?
对于DNN入门的门槛,就我个人的观点还是蛮高的,当然你想借助DNN搭建一个网站倒是及其容易的,也就是1-3分钟即可,而目前DNN模块及其皮肤资源还是蛮多的(其中包括免费或商业的),只要你合理利用还是可以满足大部分需求的。但如果你想定制业务或布局修改的话,那就必须得了解一些编程技巧或HTML,CSS布局原理等。对于非专业人员,恐怕是力所不及的。而对于刚入门的开发人员,你需要了解的更多, ...

DNN特性之IMC

何谓IMC, IMC的全称是Inter Module Communication,它主要负责模块之间的通信,我们可以利用IMC在DNN模块开发中完成很多有用的功能,比如和第三方模块的交互等等....

王者归来—再谈CBO

因为DNN 4.6.2引入了接口IHydratable而让CBO更为强大,这让CBO真正成为王者之军,从而我们又可以重归CBO,这是为何,源头是什么呢?再谈一谈CBO...

DNN Object Hydrator -- CBO解析

如果你开发过DNN模块或阅读过模块的代码,你应该会知道模块控制类所经常使用的一个对象CBO,它在DNN里是大名鼎鼎的,几乎所有的模块开发都会涉及并使用这一对象,在DNN数据访问策略白皮书中,你可看到如下的架构图:
从上图我们可一目了然CBO在DNN的核心作用: 在业务逻辑层和表示层处理业务对象数据。
那究竟什么是CBO呢?
CBO的全称是Custom Business Object,翻译过来就是自定义(或定制)业务对象. 它是最初DNN为了最小化移植从数据层传输来到自定义业务逻辑对象信息的代码工作量,创建了一个通用的utility类。就像二十四画生博客提到那样,它是实现从数据库中读取数据并实例化自定义业务对象(Custom Business Object)的类。从另外一个角度来说,自定义业务对象(也可简称CBO)就是保存数据的一种方式,用这种方式能让我们更方便的在业务逻辑层和表示层采用面向对象的方法来处理数据。一般来说这个类里定义的每个属性在Datareader里都有相应的字段对应。这些映射的信息的名称和数据类型都必须是唯一的。

对DNN在国内的影响及其弊端的思考

接触过DNN的国内朋友,我想你都能稍微了解DNN的一些情况。
1) DNN是一个免费、开源、可扩展、几近完美的内容管理系统。可广泛应用于商务网站、企业内网(Intranet)和外网网站、在线内容发布网站。
2) DNN是建立在微软ASP.NET平台之上的一套Web应用框架。
3) DNN是微软第一次向开源说”Yes”的里程碑。
4) DNN是门户网站的未来。
DNN的特色主要表现在:
通用性: 几乎可以用来构建任何Web 2.0应用:商务网站,企业内网/外网,在线内容发布。
用户友好性: 其设计考虑非常周全,借助站点向导,无处不在的帮助图标等等,用户能够很容易的控制项目的各个方面。
多网站支持: 可以支持多个网站。每个网站都有各自的管理员和独特页面布局。
技术支持: DNN有一个核心开发团队和国际化的支持社团。DNN的用户组、论坛、资源网站以及专注与DNN技术的很多公司,全方位的提供支持和帮助。
安装简单: 按照安装指导的步骤,只需要几分钟就可以完成。
本地化: 到目前为止已经有27个语言包,能很轻松的把您的网站转换成几乎任何语言。语言包也是可扩展的,您可以很容易的创建自己的特色语言包。
开放源代码: DNN是免费、开放源代码项目,采用类BSD风格的授权方式。容许任何人按自己的想法,商业和非商业的使用DNN.。BSD开源协议是一个给予使用者很大自由的协议。基本上使用者可以"为所欲为",可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。你只需要源代码中带有原来代码中的BSD协议。
高扩展性: DNN内建的功能已经足够构建一个非常复杂的内容管理系统。DNN提供了全新的在线式功能块扩展,无论是第三方模块还您自己开发的模块,都能很容易的加入到正在运行的网站中。
被广泛认同:DNN已经是一个商标,得到了开源社区的广泛认同和尊重。

解析DNN新生宠儿DAL+

开始先简单交代一下DAL, 所谓DAL, 即是DNN数据访问层(Data Access Layer), 主要负责数据库和业务逻辑的交互, 利用设计模式中的工厂模式来实现数据提供者的分离, 从而可兼容不同数据库.
DNN从4.x版本之后引入一个新生宠儿, 所谓DAL+(Data Access Layer Plus), 顾名思义, DAL+就是对DAL的插件(或补充), 是DAL的一个子集.是一种对数据库访问和交互的替代方式. 当你深入了解DNN核心代码及其机制时, 你会发现DAL+就是对DNN所包含的Microsoft Application Blocks的封装, 你所调用Microsoft Application Blocks可完全用DAL+来操作数据访问.  其操作流程如图:
就如图所展示的,DAL+屏蔽了具体数据访问层,而直接访问抽象数据访问层. DAL+不需具体的数据访问提供者,它主要包含DNN框架默认数据访问的四个方法:
1 ) ExecuteNonQuery: 执行没有返回值的存储过程
2 ) ExecuteReader: 执行返回多个记录值的存储过程
3 ) ExecuteScalar: 执行只有一个返回值的存储过程
4 ) ExecuteSQL: 执行具体的SQL语句
类似下边例子(使用DAL+的ExecuteReader