DotNetNuke3研究报告二(数据访问)

访问|数据

为了保持DNN对数据访问的通用性,DNN3的开发者们对数据调用进行了精心的设计。下面就让我们一起来领略DNN优异的数据访问方案吧!
DNN的首先数据库是SqlServer,但绝不是局限于使用SqlServer而是适用于所有的存储方案。如:Oracle,Access......等,甚至可以是Xml文件或是一般的文本文件。
Dnn3使用何种数据访问方案,是由web.config中的配置决定的。

数据访问方案配置读取
<sectionGroup name="dotnetnuke">
<section name="data" type="DotNetNuke.Framework.Providers.ProviderConfigurationHandler, DotNetNuke" />
</sectionGroup>
该节配置决定了,Dnn的数据访问方案的配置是通过DotNetNuke命名空间中的DotNetNuke.Framework.Providers.ProviderConfigurationHandler类来处理的。

具体的数据访问方案配置参数
<appSettings>
<add key="SiteSqlServer" value="Server=192.168.0.5;Database=DNN;uid=sa;pwd=good;" />
</appSettings>
该节配置添加了一个Appsetings的选项,一般来说是作为数据库连接的配置,这里你可以根据自己的需要,改成其他的名字和字符串值。

模块使用的数据访问方案配置
在web.config中,你会发现多处类似于以下配置的内容,
<providers>
<add name="DNNSQLRoleProvider"
type="DotNetNuke.Security.Role.DNNSQLRoleProvider, DNNSQLRoleProvider"
connectionStringName="SiteSqlServer"
applicationName="/"
description="Stores and retrieves roles data from the local Microsoft SQL Server database" />
</providers>
这些配置节是DNN用来为每个模块设置数据访问方案的,所以我们甚至可以为DNN的各个模块设置不同的数据访问方案,当然也就可以使用多个不同的数据库了。

系统使用的数据访问方案配置
下面该是最重要的配置节出场了
<dotnetnuke>
<data defaultProvider="SqlDataProvider">
<providers>
<clear />
<add name="SqlDataProvider"
type="DotNetNuke.Data.SqlDataProvider, DotNetNuke.SqlDataProvider"
connectionStringName="SiteSqlServer"
upgradeConnectionString=""
providerPath="~\Providers\DataProviders\SqlDataProvider\"
objectQualifier=""
databaseOwner="dbo" />
</providers>
</data>
</dotnetnuke>

这一节是DNN主程序配置数据访问方案的地方,defaultProvider指明了当没有特殊指定的情况下Dnn内部各模块应该使用的数据访问对象。在<data>节,你可以添加多个数据访问对象。
<clear/>表示清除所有的数据访问对象,
<add >表示添加一个数据访问对象。
type:指明实现该数据访问对象的实际的类,由于DNN使用反射的原理来创建具体的数据访问对象,所以一定要确保实现该类的装配件是可访问的。
connectStringName:配置数据连接方案的配置节的名字
upgradeConnectionString:更新数据库时使用的连接配置节的名字,如果保持为空,表示使用和connectStringName相同的值。
providerPath:实现数据访问对象的装配件的位置
objectQualifier:用于区别数据库中不同对象的标识,这样当包含多个站点时其生成的表和存储过程会自动添加该前缀,以和其他站点区分开来。
databaseOwner:这个就不多说了。

时间: 2024-11-03 03:25:59

DotNetNuke3研究报告二(数据访问)的相关文章

《解剖PetShop》之二:PetShop数据访问层数之据库访问设计_自学过程

二.PetShop数据访问层之数据库访问设计 在系列一中,我从整体上分析了PetShop的架构设计,并提及了分层的概念.从本部分开始,我将依次对各层进行代码级的分析,以求获得更加细致而深入的理解.在PetShop 4.0中,由于引入了ASP.Net 2.0的一些新特色,所以数据层的内容也更加的广泛和复杂,包括:数据库访问.Messaging.MemberShip.Profile四部分.在系列二中,我将介绍有关数据库访问的设计. 在PetShop中,系统需要处理的数据库对象分为两类:一是数据实体,

.NET 数据访问架构指南(二)

访问|架构|数据 使用自动化事务 自动化事务简化了编程模型,因为它们不需要明确地开始新事务处理过程,或明确执行或取消事务.然而,自动化事务的最大优点是它们能与DTC结合起来,这就使单个事务可以扩展到多个分布式数据源中.在大型分布式应用程序中,这个优点是很重要的.尽管通过手工对DTC直接编程来控制分布式事务是可能的,但自动化事务处理极大的简化了工作量,并且它是为基于组件的系统而设计的.例如,可以方便地以说明方式配置多个组件以执行包含了单个事务处理的任务. 自动化事务依赖于COM+提供的分布式事务处

《解剖PetShop》系列之二:PetShop数据访问层之数据库访问设计

在系列一中,我从整体上分析了PetShop的架构设计,并提及了分层的概念.从本部分开始,我将依次对各层进行代码级的分析,以求获得更加细致而深入的理解.在PetShop 4.0中,由于引入了ASP.Net 2.0的一些新特色,所以数据层的内容也更加的广泛和复杂,包括:数据库访问.Messaging.MemberShip.Profile四部分.在系列二中,我将介绍有关数据库访问的设计. 在PetShop中,系统需要处理的数据库对象分为两类:一是数据实体,对应数据库中相应的数据表.它们没有行为,仅用于

Enterprise Library 2.0 Hands On Lab 翻译(2):数据访问程序块(二)

练习2:存储过程和使用程序块更新数据 该练习将示范如何用数据访问应用程序调用存储过程,并使用强类型的DataSet来更新数据. 第一步 打开DataEx2.sln项目,默认的安装路径应该为C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Data Access\exercises\ex02\begin,并编译. 第二步 在QuickStarts数据库中添加Categories数据表 运行批处理文件SetUpEx0

CYQ.Data 轻量数据访问层(二) 构造数据单元(上)

DataTable,你有多丰富: 轻轻的打开Reflector.exe,按下F3搜索,输入DataTable,双击定位,右键,Disassemble之后, 悄悄的点一下最下面的 Expand Methods,再从容的把它copy出来,我们才发现..6000多行的代码 我们常用的DataTable一个类,才用了6000多行代码实现,跟我们以前写的,一个类写到一千多,就觉得有点过了 大巫见小巫啊!     解析: 当然了,不是说一个类代码越多,性能就一定不好.至少我们还是那么多人前拥后挤的在继续使用

我的数据访问函数库的源代码(二)—— SQL语句部分

/* 2008 4 25 更新 */ 我的数据访问函数库的源码.整个类有1400行,原先就是分开来写的,现在更新后还是分开来发一下吧. 第二部分:SQL语句部分.传入SQL语句,执行相关的操作.   1//查询语句部分  2        运行查询语句返回记录(DataSet.DataTable.DataRow.String[].String)#region 运行查询语句返回记录(DataSet.DataTable.DataRow.String[].String)  3      4      

我的数据访问类(第二版)—— for .net2.0 (二)

下面写一下相对来说不变的地方 SQL语句部分,改成了静态函数的形式.   1using System;  2using System.Collections.Generic;  3using System.Text;  4using System.Data;  5using System.Data.Common;  6using System.Data.SqlClient;  7using JYK;  8  9namespace JYK.DataAccessLibrary 10{ 11    /

ADO数据访问模型初学者入门

ado|初学|访问|数据 ADO(ActiveXDataObjects)是Microsoft提供和建议使用的新型的数据访问接口,具体实现为Automation.这样,程序员可以在各种支持Automation的开发环境下方便地访问ADO对象,如VisualBasic.VisualC++.VisualJ++及Delphi等.ADO被实现为OLEDB之上的一个薄层,这使得ADO可以有更快的访问速度,更易使用,同时更节省资源.值得注意的是,对于VisualStudio6.0的用户而言,现在提供的ADO2

数据访问接口体系及数据对象模型探讨--[1]

对象|访问|数据|体系 数据访问接口体系及数据对    数据访问接口体系及数据对象模型探讨(Beat 1.0)                          81_RedStar81@163.com  TomHornson.student@www.sina.com.cn 个人文集: http://www.csdn.net/develop/author/netauthor/RedStar81/       文章索引: 预:概念 序言:回首历史 一. 数据访问接口体系探讨 1.       Op