以下为Discuz!NT的文件夹根目录:
类库图:
从上面两个图可以看出:
1、dnt对于类库的分层是通过名称的层级来区分的,如Discuz.Plugn和Discuz.Plugin.Spread
2、在文件夹的分层上也是遵循第1种形式(除了Admin项目,Admin项目使用了子站点的技术,所以是包含在Discuz.Web文件夹里面,参考:)。
从上面可以这样总结:
1、在类库分层上有明显的层级,可以很快区分哪个类库隶属关系,以及排序的的原因能很快归类。
2、文件夹上不采用嵌套形式,统一新建在根目录,命名上也是遵循第1点,这样有个好处就是后期即使项目要分文件夹存放时,只要VS的解决方案用虚拟文件夹代替,随时更改不用影响物理文件夹。
3、在物理文件夹上我也可以很快直到有那些类库,不用在嵌套文件夹上来回查找。
所以,在我们现有的电商项目上运用以上的方式进行项目的搭建是不错的选择。
比如,以前我们在建立BLL的时候,可以会有BLL.SMS、BLL.EMail...这些业务模块,而我们会为了整洁,把这些业务模块统一建立一个BLL文件夹存放起来,然后在VS上统一引用,再最后在VS上也同样建立一个BLL虚拟文件夹,再归类区分;这样的坏处是:如果哪天我改变了思路,重新定义分层,那又要从物理文件夹上改到VS的虚拟文件夹。
因此,采用dnt的方案,我哪天改变思路要分层时,直接在VS上虚拟文件夹改变即可,不用动任何东西。