前面談到了系統的文件,從文件結構中咱們也能夠看出Nop的層次劃分仍是很是清晰,下面我將介紹下Nop的架構層次,並對每一個層作簡要的介紹,先看我畫的層次圖。前端
這個系統基本上按照了ddd的形式作了劃分,我自己對ddd也是新手,可能對更深的研究就比較困難,可是你們能夠看到,數據層被作了很嚴格的隔離,充分的從系統中解耦出來,若是未來換數據庫並非什麼難事,只須要重寫數據層對數據的實現便可。web
一、Data數據層使用了ef的框架,使用了sqlserver數據庫,具體我會在專門的數據庫專題中詳細解釋。sql
二、Nop.Core 層是系統的核心層,或許咱們用ddd的意思叫基礎設施層,或許你們會說裏面不是有了基礎設施嗎? 可是我認爲基礎設施是整個系統的,這裏的core層更多的是扮演了基礎設施的角色,從緩存的實現、配置、模型等等。後續會具體的研究該部分。數據庫
三、Nop.Service層和webframework層,這兩個比較有意思,爲何都叫他們服務層? 前者是整個系統的服務層,提供了對每一個領域的實現,後者更像是web的的領域服務,提供了web的大量的服務措施。整個系統的妙處在於將這兩部分的服務解耦,當我須要切換成其餘的服務模式的時候是很是輕鬆的,你能夠經過winform形式實現,也能夠經過webapi提供接口,等等的這些都是能夠經過 service實現基礎功能。api
四、對於應用層,是很是薄的一層,不涉及到任何領域邏輯的實現,他們只關注前端的整合。緩存
簡要的分析,後續還會繼續對模塊作深刻的專題解析,探討他們的實現路徑。架構