风讯dotNETCMS源码分析—数据存取篇

本文分析了风讯dotNETCMS v1.0sp5的架构特点,该系统采用基于抽象工厂模式的三层架构,支持多种数据库配置,通过简单的Web.config修改即可切换数据库类型。

        前几天突然对CMS感兴趣,就去下载了风讯dotNETCMS源码。当前版本是dotnetcms1.0 sp5免费版,风讯的官方主页上可以下载。

        用Visual Studio 2008打开后,初步分析了它的数据存取技术。风讯dotNETCMS采取的是基于抽象工厂模式的三层架构。
        Foosun.Model是数据实体层,用于在各层之间传递数据,Foosun.Web是表示层,Foosun.CMS是业务逻辑层,数据访问层有多个:Foosun.AccessDAL、Foosun.SQLServerDAL,分别用于支持Access、SQL Server数据库。
        具体支持哪种数据库,只需在表示层的Web.config文件中进行配置,配置字符串如下:
        <appSettings>
            <add key="WebDAL" value="Foosun.SQLServerDAL"/>
        </appSettings>
       Foosun.DALFactory是接口层,定义了Foosun.AccessDAL、Foosun.SQLServerDAL都要实现的接口,如public interface IAdmin,示意图

如下:

2011012520414995.png

 

       Foosun.DALFactory接口层同时还包含实现抽象工厂模式的类DataAccess。在DataAccess类中创建对象通过配置文件和反射技术来实现。通过配置文件(即上面提到的Web.config)的程序集名,决定加载具体的哪个DAL的程序集,并通过动态组合类名来动态创建DAL对象,并返回接口对象。

DataAccess类图如下:

2011012520392084.png

       示例代码如下:
        public static IAdmin CreateAdmin()
        {
                    string className = path + ".Admin";  //类名
                    return (IAdmin)Assembly.Load(path).CreateInstance(className);//反射,并进行类型转换。
        }
      而path的定义如下:
       private static readonly string path =Foosun.Config.UIConfig.WebDAL;
      Foosun.Config.UIConfig.WebDAL的定义如下:
       public static string WebDAL = ConfigurationManager.AppSettings["WebDAL"];的确是读取了Web.config文件中的WebDAL配置。
      事实上,微软的PetShop的数据访问也是采用了基于抽象工厂模式的三层架构。通过使用基于抽象工厂模式的三层架构,很好的实现了系统的重用性、灵活性和扩展性。

转载于:https://www.cnblogs.com/zhouhb/archive/2011/01/25/1944913.html

风讯 v2.0源代码 风讯网站内容管理系统是国内首家开源的CMS,系统基于模板标签生成网页的理念,拥有丰富的模板建站技术,用户自由更换网页模板更换前台网页格。用户使用我产品不需要学习复杂的建站技术,不需要掌握太多复杂的HTML语言,就能利用系统构建出一套优秀的网站,其功能强大、内容展示专业。 风讯CMS的功能并不限于文本编辑,也可以进行图片录入、Flash动画、视频、附件编辑,系统内置内容模型、会员模型、可视化编辑,集新闻、图片、下载、信息、采集、问卷调查、统计、Ftp同步、Meta关键字等常用模型。系统在现有数据库字段上,配套扩展的自定义字段、自定义表单功能,将系统灵活度发挥到极致,用户使用该系统可以不用编程,就实现各种信息发布和检索,是一款优秀的建站软件系统。 风讯网站内容管理系统v2.0RC1具备以下系统特点: 在线HTML编辑 后台导航运用贴瓷效果,界面简洁大方,操作方便、更人性化、更自由化。独创业界Windows菜单操作系统,实现了文件的单选、多选功能,真正满足用户的操作习惯,而这一切,系统的整体性能不会影响速度,让您得心应手,操作自如。同时,我们为传统用户设置了传统的右键操作习惯,供用用户选择。 静态生成 系统支持全静态网页生成,所有前台的文件,可以完全根据用户的设置生成静态文件,并能按照用户的设置规则生成目录文件,即方便搜索引擎收录,又能提高用户浏览网站的速度。其次前台静态网页浏览,服务器的同时在线人数不受限制、更有利于网站的安全。 开放源代码 风讯网站内容管理系统CMS实行源代码开放理念,提供完备的数据库设计文档、开发文档,方便用户在产品现有基础模块功能上,更灵活的扩展功能,减少新功能开发成本,大大节省功能的开发周期与开发成本。 模板自由设计 系统支持模板自定义,用户完全可以自行设计模板,自由自在,可以更好的体现用户的个性和特色,从前台根本看不出网站是以什么建设的。 应用程序智能发布 系统发布运用WebServirce接口调用,支持用户客户端应用程序请求模式,支持用户定时发布、选择性发布,将静态发布完全智能化。 扩展功能强 风讯网站内容管理系统在系统现有数据库字段的基础上,用户可以使用自定义字段、自定义表单功能,扩展需要使用的字段、以及数据库表、制作如留言簿、在线咨询等其他模块,具备良好的扩展性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值