您的位置:首页 > 运维架构 > 网站架构

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的定义就会是:

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: