Discuz!NT前台模型架构(MVC)
2008-01-02 18:00
302 查看
声明:本文内容纯属个人观点,官方保留最终解释
通过前几个月的“外围清剿”,我介绍了一些在项目中边边角角的类和项目。当然这种介绍只是前期热身准备。
因为从这篇文章开始,本人将跟大家聊一聊关于这个产品架构上面的东西,以备大家对这个产品有一个总体上的认识,
从而为后面的文章做一下铺垫。费话少说,开始正文吧:)
首先请大家看一下官方提供的“前台页面层次图”如下: http://nt.discuz.net/doc/Default.aspx?cid=4
interface ISpaceDataProvider
2
6 interface IForumDataProvider
7
interface IAlbumDataProvider
而最后的IDataProvider的定义就会是:
而IDataProvider 中相应添加一个字段,形如:
这样就可以把第三方新加的功能函数与系统本身的数据访问操作方法解耦,同时也提供了统一的接口调用方式,形如:
当然这些只是我私下的设想,我会在适当的时候将这个意见反映给开发小组。如果大家有什么别的建议或意见不妨在回
复中交流一下。
另外要说的一个项目就是 discuz.common了,当然这个项目的活最杂也最底层,相当于“打零工”。里面基本上都是整
个产品所要使用的基础类。当然还有一部分是对.net框架自身函数的“再度封装”,目的就是为了优化代码结构,减少“因
不了解.net函数”而造成的使用上的错误等等。
如discuz.common项目下的Xml文件夹里XmlDocumentExtender.cs,XmlVisitor.cs类就是这样的东东。
同时我还继承了 Generic.List,Generic.Queue等几个泛型类(Generic目录下),并用“访问类模式”封装了几个
常用的访问操作。如:计数,累加等。
而在相应的泛型类中调用如下(摘自DiscuzList.cs):
目前除了discuz.web.dll, discuz.space.dll, discuz.web.ui.dll之外,我们基本上了解了大多数dll文件的作用。
而这几个.dll的主要任务就是负责前台显示和后台设置的。如果大家觉得有必要的话,我会在后面的文章中做一下介绍。而有关
数据库(字段)的解释,我想在介绍 discuz.entity.dll时顺便作一下说明,请关心这个话题的朋友留意下周的文章。
好了,今天就先到这了。
如果有问题,欢迎与我交流。
EMail: daizhj@discuz.com, daizhj617595@126.com, daizhj@gmail.com
关键字: 模型,discuznt,discuz,mvc,架构
作者: 代震军,daizhj
参考: http://www.uidesign.net/Articles/Papers/UsingMVCPatterninWebInter.html
通过前几个月的“外围清剿”,我介绍了一些在项目中边边角角的类和项目。当然这种介绍只是前期热身准备。
因为从这篇文章开始,本人将跟大家聊一聊关于这个产品架构上面的东西,以备大家对这个产品有一个总体上的认识,
从而为后面的文章做一下铺垫。费话少说,开始正文吧:)
首先请大家看一下官方提供的“前台页面层次图”如下: http://nt.discuz.net/doc/Default.aspx?cid=4
interface ISpaceDataProvider
2
6 interface IForumDataProvider
7
interface IAlbumDataProvider
而最后的IDataProvider的定义就会是:
1 public interface IDataProvider : ISpaceDataProvider, IForumDataProvider, IAlbumDataProvider public interface IThirdParty
而IDataProvider 中相应添加一个字段,形如:
1 public interface IDataProvider
这样就可以把第三方新加的功能函数与系统本身的数据访问操作方法解耦,同时也提供了统一的接口调用方式,形如:
1DatabaseProvider.GetInstance().IThirdParty.自定义的数据操作方法
当然这些只是我私下的设想,我会在适当的时候将这个意见反映给开发小组。如果大家有什么别的建议或意见不妨在回
复中交流一下。
另外要说的一个项目就是 discuz.common了,当然这个项目的活最杂也最底层,相当于“打零工”。里面基本上都是整
个产品所要使用的基础类。当然还有一部分是对.net框架自身函数的“再度封装”,目的就是为了优化代码结构,减少“因
不了解.net函数”而造成的使用上的错误等等。
如discuz.common项目下的Xml文件夹里XmlDocumentExtender.cs,XmlVisitor.cs类就是这样的东东。
同时我还继承了 Generic.List,Generic.Queue等几个泛型类(Generic目录下),并用“访问类模式”封装了几个
常用的访问操作。如:计数,累加等。
1public interface IDiscuzVisitor 2 public sealed class SumVisitor : IDiscuzVisitor
而在相应的泛型类中调用如下(摘自DiscuzList.cs):
1 public void Accept(IDiscuzVisitor visitor) 7
目前除了discuz.web.dll, discuz.space.dll, discuz.web.ui.dll之外,我们基本上了解了大多数dll文件的作用。
而这几个.dll的主要任务就是负责前台显示和后台设置的。如果大家觉得有必要的话,我会在后面的文章中做一下介绍。而有关
数据库(字段)的解释,我想在介绍 discuz.entity.dll时顺便作一下说明,请关心这个话题的朋友留意下周的文章。
好了,今天就先到这了。
如果有问题,欢迎与我交流。
EMail: daizhj@discuz.com, daizhj617595@126.com, daizhj@gmail.com
关键字: 模型,discuznt,discuz,mvc,架构
作者: 代震军,daizhj
参考: http://www.uidesign.net/Articles/Papers/UsingMVCPatterninWebInter.html
相关文章推荐
- 表现层系列:Discuz!NT前台模型架构(MVC)
- Discuz!NT前台模型架构(MVC)
- Discuz!NT前台模型架构(MVC)
- Discuz!NT前台模型架构(MVC)
- 转:Discuz!NT前台模型架构(MVC)
- Discuz!NT中的Redis架构设计
- Discuz!NT 聚合功能页面程序架构(重构到Facade与Observer模式)
- Discuz!NT 系统架构分析
- Discuz!NT 系统架构分析
- Discuz!NT 系统架构分析
- Discuz!NT中的Redis架构设计
- Discuz!NT 聚合功能页面程序架构(重构到Facade与Observer模式)
- Spring.NET企业架构实践之 Nhibernate + WCF + ASP.NET MVC + NVelocity 对PetShop4.0重构(二)——领域模型
- Discuz!NT中的Redis架构设计
- Discuz!NT 论坛架构到其他服务器上数据库访问不了
- 亲密接触Discuz!NT之架构篇:优良架构 方便网站整合与二次开发
- Discuz!NT中的Redis架构设计
- [导入]亲密接触Discuz!NT之架构篇:优良架构 方便网站整合与二次开发
- mvc架构下的五层包模型
- Discuz!NT 系统架构分析