第三章 項目結構

源代碼GitHub:https://github.com/ZhaoRd/Zrd_0001_AuthorityManagement html

1.介紹

      中秋節先後回了一趟老家,擱置了博客的更新,回到無錫後補了補工做上的事情,今天擠點時間來謝謝博客。 前端

      本篇主要介紹本Demo的分層結構、項目組織以及引用關係的內容。該demo是使用DDD推薦的分層結構,主要包括基礎設施層、領域層、應用層和展現層;項目組織經過解決方案文件夾進行組織,經過解決方案文件夾,能夠對項目進行分門別類的進行管理;在引用關係上,依據依賴倒轉原則,上層類庫不依賴底層實現類庫,底層實現類庫依賴上層類庫接口。 git

2.DDD分層結構(參考 http://www.cnblogs.com/mienreal/p/4534598.html)

        2.1  基礎設施層(Infrastructure) angularjs

               基礎設施層主要包括兩個程序集,一個是項目中須要依賴的公共資源,必須加密解密等等一些工具;另外一個是實現數據持久化的項目,實現領域層定義的倉儲接口,能夠使用ORM工具,例如EntityFramework. github

        2.2  領域層(Core) web

               項目的核心層,全部與項目有關的核心算法和實現放在這一層,主要包括領域對象、值對象、倉儲、領域服務、領域事件等內容 算法

        2.3  應用層(Application) c#

               協調領域層資源,提供服務方法供展現層調用,不包含業務邏輯。 架構

               使用dto和automapper mvc

        2.4  展現層(Presentation)

               使用不一樣的展現技術提供用戶操做界面,實現用戶交互操做。

               該demo主要使用mvc4,前端使用angularjs

3.項目組織結構

   該demo改用的結構以下,參考郭明峯博客

d0cf8357-277b-455b-8d64-31d3edb85a1a

   1-Infrastructure 主要放基礎設施層的程序集

   2-Core 主要是放和項目有關的的程序集

   3-Applicatgion 主要是實現展現層定義的接口,依賴Core

   4-Presentation 主要包括展現層使用的接口和一個web項目

4.引用關係

54ffa437-d6b6-4e9f-9289-029f3ca90c57

引用關係圖如上所示,其中青色的線表示程序集實現依賴另外一個程序集,粉紅色的是依賴。

1-Infrastructure裏的Data.dll是數據持久層的實現,依賴Core.Domain.dll,倉儲接口定義在Core.Domain.dll

展現層使用的接口定義在 Presentations.dll裏,Applications.dll實現Persentations.dll定義的接口,在Applications.dll裏配置automapper的初始化

依賴倒轉主要是使用IOC容器實現的,本案例採用autofac實現IOC

 

 

推薦QQ羣:

278252889(AngularJS中文社區)

5008599(MVC EF交流羣)

134710707(ABP架構設計交流羣 )

59557329(c#基地 )

230516560(.NET DDD基地 )

本人聯繫方式:QQ:351157970

相關文章
相關標籤/搜索