前面谈到了系统的文件,从文件结构中我们也可以看出Nop的层次划分还是非常清晰,下面我将介绍下Nop的架构层次,并对每个层做简要的介绍,先看我画的层次图。
这个系统基本上按照了ddd的形式做了划分,我本身对ddd也是新手,可能对更深的研究就比较困难,但是大家可以看到,数据层被做了很严格的隔离,充分的从系统中解耦出来,如果将来换数据库并不是什么难事,只需要重写数据层对数据的实现即可。
1、Data数据层使用了ef的框架,使用了sqlserver数据库,具体我会在专门的数据库专题中详细解释。
2、Nop.Core 层是系统的核心层,或许我们用ddd的意思叫基础设施层,或许大家会说里面不是有了基础设施吗? 但是我认为基础设施是整个系统的,这里的core层更多的是扮演了基础设施的角色,从缓存的实现、配置、模型等等。后续会具体的研究该部分。
3、Nop.Service层和webframework层,这两个比较有意思,为什么都叫他们服务层? 前者是整个系统的服务层,提供了对每个领域的实现,后者更像是web的的领域服务,提供了web的大量的服务措施。整个系统的妙处在于将这两部分的服务解耦,当我需要切换成其他的服务模式的时候是非常轻松的,你可以通过winform形式实现,也可以通过webapi提供接口,等等的这些都是可以通过 service实现基础功能。
4、对于应用层,是非常薄的一层,不涉及到任何领域逻辑的实现,他们只关注前端的整合。
简要的分析,后续还会继续对模块做深入的专题解析,探讨他们的实现路径。