从Discuz!NT项目文件结构看如何给系统框架分层和类库分文件夹

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从Discuz!NT项目文件结构看如何给系统框架分层和类库分文件夹相关的知识,希望对你有一定的参考价值。

以下为Discuz!NT的文件夹根目录:

技术分享

类库图:

技术分享

从上面两个图可以看出:

1、dnt对于类库的分层是通过名称的层级来区分的,如Discuz.Plugn和Discuz.Plugin.Spread

2、在文件夹的分层上也是遵循第1种形式(除了Admin项目,Admin项目使用了子站点的技术,所以是包含在Discuz.Web文件夹里面,参考:http://www.cnblogs.com/EasonJim/archive/2013/05/06/3062571.html)。

从上面可以这样总结:

1、在类库分层上有明显的层级,可以很快区分哪个类库隶属关系,以及排序的的原因能很快归类。

2、文件夹上不采用嵌套形式,统一新建在根目录,命名上也是遵循第1点,这样有个好处就是后期即使项目要分文件夹存放时,只要VS的解决方案用虚拟文件夹代替,随时更改不用影响物理文件夹。

3、在物理文件夹上我也可以很快直到有那些类库,不用在嵌套文件夹上来回查找。

 

 

所以,在我们现有的电商项目上运用以上的方式进行项目的搭建是不错的选择。

比如,以前我们在建立BLL的时候,可以会有BLL.SMS、BLL.EMail...这些业务模块,而我们会为了整洁,把这些业务模块统一建立一个BLL文件夹存放起来,然后在VS上统一引用,再最后在VS上也同样建立一个BLL虚拟文件夹,再归类区分;这样的坏处是:如果哪天我改变了思路,重新定义分层,那又要从物理文件夹上改到VS的虚拟文件夹。

因此,采用dnt的方案,我哪天改变思路要分层时,直接在VS上虚拟文件夹改变即可,不用动任何东西。

 

以上是关于从Discuz!NT项目文件结构看如何给系统框架分层和类库分文件夹的主要内容,如果未能解决你的问题,请参考以下文章

如何系Discuz上载档案10分

高分悬赏:如何将网站的论坛频道用Discuz或phpwind?这二个论坛程序又哪个好?分别怎么用

Discuz!NT中集成Memcached分布式缓存(转)

从阅读Discuz的核心代码并给出注释的经历分析程序员该如何阅读代码?

我是如何给discuz模板做语法高亮的

让MySoft.Data也能有Discuz!NT的数据库查询分析工具