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