从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上虚拟文件夹改变即可,不用动任何东西。

时间: 2024-08-05 18:24:16

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

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

当我们用Debug模式运行Discuz!NT项目的时候,我们会发现在页面的最下方有一个数据查询分析工具,非常的方便.当我们运行一个页面的时候,对sql的操作可以一目了然.当然,有些还是无法显示在页面上的,比如多个跳转的时候,最终显示的就只有一个页面的sql.不过也挺方便了. 如图: 这个数据库查询分析工具,只有在Debug模式下才会显示,Release模式不会显示. 这样的做法有两个好处,一是方便调试,第二是每当发布站点的时候,一定是Release模式的,可以确保站点在运行效率上有保证(很多时候

移动端--基于Android Studio的项目文件结构(三)【转】

转自[https://www.cnblogs.com/hwb04160011/p/7994624.html] Android基础--项目的文件结构(三) 代码源文件夹与资源文件夹 [注]此项目文件结构仅限于Android Studio下的Android项目!!! 在一个Android项目中,代码源文件夹有4个,分别是java.jni.aidl.rs,资源文件夹有3个,分别是assets.res.resources.(这里的文件夹名称是在project视图下的名称,如有疑问可参考Android基础

Tomcat服务器本地的搭建,以及在 IDEA软件下的配置,以及项目的测试运行(基于supermvc框架下的web)

一.声明 使用了基于springmvc的supermvc的web框架.实习公司的框架. 二.tomact的下载与安装 1选择适合自己电脑配置的jdk和jre版本(截图来自tomcat的官方网站http://tomcat.apache.org/whichversion.html) 我的电脑是jAVA版本是8,所以我可以选择任意版本的Apache Tomcat version. PS:如果你问我,java版本怎么看.(ー?ー|||)(1)在命令行中输入java -version (2)在高级系统设置

使用 vscode将本地项目上传到github、从github克隆项目以及删除github上的某个文件夹

一.将本地项目上传到github 1.创建本地仓库(文件夹) mkdir study//创建文件夹studycd study //进入study文件夹 2.通过命令git init把这个文件夹变成Git可管理的仓库git init //把这个文件夹变成Git可以管理的仓库 这时可以发现study里面多了个.git文件夹,它是Git用来跟踪和管理版本库的.如果你看不到,是因为它默认是隐藏文件,那你就需要设置一下让隐藏文件可见. 3.把项目粘贴到这个本地Git仓库里面(粘贴后你可以通过git sta

iOS 项目的文件夹结构能看出你的开发经验

近期有师弟去面试iOS开发,他谈论到,面试官既然问他怎么分文件夹结构的,并且还详细问到每一个子文件夹的文件名称. 文件夹结构确实非常重要.面试官问他这些无疑是想窥探他的开发经验.清晰的文件夹结构,可让人一眼知道相应文件夹的职能.这也能体现开发人员的经验和架构能力. 眼下.我接触过的项目中,比較常规的两种结构: 1.主文件夹依照业务分类,内文件夹依照模块分类(主文件夹依照MVC架构分类.内部依据项目模块分类) 长处:能比較快定位相应的业务. 缺点:模块相关类太过分散.须要来回切换文件,不方便开发.

Discuz!NT静态文件缓存(SQUID)

在目前最新版本的产品中,我们提供了缓存静态文件的解决方案,就是使用SQUID做静态前端,将论坛中的大部分静态文件布署或外链到一个新的HTTP链接上,其中可以外链的静态文件包括: 1.Discuz.web/Javascript/ 下所有以‘template_’打头的JS文件以及该文件夹下的部分js文件.     2.模版文件夹下的所有CSS或IMAGE文件(空间相册文件夹除外)     3.前台Image文件夹下的Medal(勋章),Topicidentify(主题鉴定图标)下的所有文件. 同时在

Discuz!NT Flash无法上传头像,点击上传后无任何反应

最近在对一个Discuz!NT论坛的老项目进行维护和二次开发,遇到了论坛无法上传头像的问题.在网上找了相当多的资料,发现解决的方法基本是无效的.虽然有的状况一样,但是没有解决方法,后来自己研究了下也总算是解决了这个问题. 首先说明下出现无法上传头像的具体症状,大概的症状有下面这几点: 使用Flash头像上传时,点击上传图片,然后显示“图片载入中,请稍后的提示信息”和上传进度的百分比,最后却是没有任何的反应. 网上有部分网友说到进度到10%就没有任何反应,其实只是部分情况,如果传大图片的话会显示其

(转)Discuz!NT图文安装教程

不同目录下的安装方法根据目前大家对论坛的使用需求,在安装上面大致有三种情况,站点根目录下安装,站点虚拟目录下安装和站点子目录下安装. 1.根目录安装 根目录安装是最简单也是稳定系数最高的安装和使用方式,为我们的推荐方式.论坛配置项不需要做任何调整,只需要将站点程序(安装包upload_files目录内的所有文件)上传至站点根目录下就可以运行install/index.aspx开始安装了. 2.虚拟目录安装 由于Discuz!NT拥有能大幅优化搜索引擎友好度的页面伪静态功能,所以如果论坛程序不是安

Discuz!NT中的Redis架构设计

在之前的Discuz!NT缓存的架构方案中,曾说过Discuz!NT采用了两级缓存方式,即本地缓存+memcached方式.在近半年多的实际运行环境下,该方案经受住了检验.现在为了提供多样式的解决方案,我在企业版里引入了Redis这个目前炙手可热的缓存架构产品,即将memcached与Redis作为可选插件方式来提供了最终用户,尽管目前测试的结果两者的差异不是很大(毫秒级),但我想多一种选择对用户来说也是好的. 闲话不多说了,开始今天的正文吧.         熟悉我们产品的开发者都知道,我们的