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