Never give up - LEO

人 只有在合适的地方 才能体现出最大的价值
  博客园  :: 首页  :: 联系 :: 订阅 订阅  :: 管理

DNN介绍

Posted on 2007-10-31 17:49  lizhiwen  阅读(1892)  评论(1编辑  收藏  举报

一、 DNN介绍
全称DotNetNuke

历史简介:当ASP.NET出来的时候,微软为了展示Asp.NET的强大功能,做了一个门户系统的示范程序,名字叫做IBuySpy,一个虚拟的网上商店系统。这个应用程序有一些关键性的特点去展示ASP.NET的动态模块功能,例如通过添加"模块"到页面上创建内容,基与用户权限来控制功能的可见性,提供一个简单的站点导航(不需要任何手工编辑页面的工作)。
2002年底,Shawn Walker利用这些代码创建了一个增强的VB.NET实现,名字叫做IBuySpyWorkshop。这个项目取得巨大的成功,逐渐发展出了自己的独立产品,并被改名为DotNetNuke。

官方站点:http://www.dotnetnuke.com/
中文DNN站点:http://www.dnnchina.net/
DNN是VB.Net开发的,很多开发者并不习惯VB.Net的风格,所以DNN爱好者创建了个C#版本的项目SharpNuke.NET,官方地址为:http://www.sharpnuke.net/

目前DNN的英文版本已经更新到了 V04.06.02,汉化版本已经更新到V04.05.03,这两种版本都是支持.NET 2.0框架和SQL server2005。版本号为V03开头的是支持.NET 1.0框架和sql 2000的版本,前面提到的DNN爱好者创建的C#版本就是V03开头的。

二、 DNN安装与配置
DNN下载的包有多种:
 DotNetNuke_04.05.05_Source,源代码包
 DotNetNuke_04.05.05_Install,安装包
 DotNetNuke_04.05.05_StarterKit,模版和组件安装

1. 下载,打开程序,进行安装,建立数据库
2. 安装类型选择:customer,typical,auto,选择不同类型的区别
3. 权限设置,NTFS分区文件夹创建方式
4. 数据库的选择和连接,分为2000和2005,可以使用登录用户和sql指定用户,web。Confit的改变,可以指定前缀
5. 运行初始化脚本
6. 初始用户设计
7. 站点名称和模版选择
8. 结束安装,进入站点

三、 站点布置和管理工具使用
站点布局
 控制面板
 页面容器
 其他

功能菜单
 普通菜单
 Admin菜单
 Host菜单
 快捷菜单

管理权限
 站点权限
 Admin和host用户权限
 页面级权限
 模块级权限
 功能级权限
 权限的继承和配置

Host用户可以新建一个web站点

四、 DNN文件系统和结构简要介绍
DNN文件系统中比较重要的文件夹介绍
 两个重要的文件夹:DesktopModules和Portals,
 Portals下面的分站点和skins,containers
模块存放文件夹和模块需要用到的几个基本文件夹

DNN模块也是按照三层结构模型来开发的:
Appication Layer:应用程序层(UI层)
包含用户界面UI,info object:自定义业务对象(Custom Business Object,CBO)
BLL Layer:业务逻辑层
包含业务逻辑访问对象Controller object;数据访问工厂:Data Provider
DAL Layer:数据访问层
包含各种具体数据库访问的Provider,如SQLDataProvider
各层之间的关系:数据存储到自定义业务对象中,UI控件通过自定义业务对象获取传递数据。业务逻辑访问对象通过数据访问工厂所实例化的具体数据访问对象来操作数据库并填充自定义业务对象。


五、 DNN的皮肤技术和模块开发介绍

DNN皮肤,简单来说,就是网站的外观,通过皮肤技术,你可以轻而易举地为你的网站更换外观。皮肤的引入,让你可以无需具备美工知识,也可以建立一个漂亮的站点,因为你可以到一个皮肤网站下载你喜欢的皮肤,然后加载到你的站点,如同买衣服来穿那么方便。

一个网站可以使用多个,甚至多套皮肤,每个网页都可以对应一个皮肤,这个皮肤可以是来自主机或站点的多套皮肤。

DNN容器就是DNN模块的皮肤。

皮肤既可以HTML开发也用ASCX开发。根据我的观察,DNN生成皮肤的机制是这样的,先检查皮肤包里有没有HTML,如果有,对它执行转换,这个转换是把HTML和skin.XML组合,生成ASCX,如果没有,它就提取ASCX,所以最终结果是一样的。DNN实际使用的,都是ASCX。