ASP.NET Portal Starter Kit
将网站所需的配置信息都存储在一个
XML
配置文件(
PortalCfg.xml
)中。这些配置信息控制门户内容的布局(如:显示哪些门户的标签,每个标签上显示哪些门户模块)以及安全设置(如:用户类别,访问权限等)。网络管理员通过修改配置文件就可以达到修改网站布局和调配各模块用户访问权限。将网站的配置信息存储在
XML
配置文件中而不存储在数据库中的好处有:
1
、减少对数据库的
I/O
操作(因为配置一旦设置好,就很少改动。在初始化
Application
时将配置文件信息一次性读入内存就能大大提高性能);
2
、将相对固定的配置信息放到
XML
配置文件中可以简化数据库的结构,将数据库主要用来存储用户模块信息,这样也利于以后的扩展。
先看看网站的框架布局是怎样的,然后再看看是如何利用用户配置文件实现框架布局的,框架布局图如下:
![](https://i-blog.csdnimg.cn/blog_migrate/3e61913b8ee0099b0bf44be6b7f6245a.gif)
整个网站由顶部导航栏和左中右三个放置用户功能模块的框架组成,并默认给出了十个功能模板:公告
(Announcements)
、联系方式
(Contacts)
、讨论
(Discussion)
、事件
(Events)
、
HTML
文档
(Html Document)
、图片
(Image )
、链接
(Links)
、快速链接
(QuickLinks)
、
XML/XSL
、文档
(Documents)
;五个管理模板:模块类型
(Module Types)
、角色
(Roles)
、标签
(Tabs)
、网站设置
(Site Settings)
、管理用户
(Manage Users)
。
配置文件中的表:
Global:
站点信息配置表
字段 | 备注 |
PortalId | 站点ID(可架设多个门户站点而共用一个数据库,通过PortalID区分) |
PortalName | 站点名称 |
AlwaysShowEditButton | 是否总是显示编辑按钮 |
Tab:
导航栏标签信息表
字段 | 备注 |
TabId | 标签ID |
TabName | 标签名称 |
AccessRoles | 可访问该标签的角色 |
TabOrder | 标签排序号 |
ShowMobile | 该标签是否在“移动设备浏览器”上显示 |
MobileTabName | 在“移动设备浏览器”上显示的名称 |
Module:
用户模块表(显示在网站上的各个功能模块;如:快速链接,公告等)
字段 | 备注 |
ModuleId | 模块ID |
ModuleTitle | 模块名称 |
EditRoles | 可编辑该模块的角色 |
ModuleDefId | 关联用户模块定义表的Id,指明该用户模块是有那个模板实现 |
PaneName | 标注显示在“左中右”那个框架中 |
CacheTimeout | 缓存时间 |
ModuleOrder | 显示的顺序 |
ShowMobile | 是否在“移动设备浏览器”上显示 |
ModuleDefinition:
用户模板定义表(设置用户模板,由那个用户控件实现,系统默认给出了十个用户模板和五个管理模板,可以在扩充)
字段 | 备注 |
ModuleDefId | 模板ID |
FriendlyName | 模板名称 |
DesktopSourceFile | “桌面浏览器”上显示的用户控件源文件地址 |
MobileSourceFile | “移动设备浏览器”上显示的用户控件源文件地址 |
Settings和Setting:
当为
XML/XSL
模板和图片模板时设置
XML/XSL
文件和图片的地址。
各表之间的关系:
![](https://i-blog.csdnimg.cn/blog_migrate/a1d083ffb31d1d809952bbfa4ffa26b6.gif)
实现方式:
调用时,通过使用配置事务组件,从门户应用程序的
Global.asax
文件中获取并加载配置信息。接下来,配置信息被应用到门户的
DesktopDefault.aspx
页面中(如果进行访问的浏览器是一个
HTML
桌面设备)或门户的
MobileDefault.aspx
页面中(如果进行访问的计算机是一个移动设备)来提供一个门户的标签视图。在相应页面显示时根据当前页面的
TabID
找到当前页面显示页面的模块,根据
PaneName
分别显示在不同的框中。具体的代码可看:
Global.asax
,
DesktopDefault.aspx
和
DesktopPortalBanner.ascx
这几个文件。