上一篇文章對如何規范使用ASP.NET進行了介紹,本章內容將根據上一篇得出的結論來修改博客應用的代碼。
代碼分層
綜合考慮將博客應用代碼分為以下幾個層次:
○ 模型:代表應用程序中的數據模型,與數據庫表結構對應。同時也作為MVC與邏輯層之間的數據交換對象(后續會使用DTO代替)。
○ 倉儲:用於管理數據增、刪、查、改。
○ 邏輯:用於處理業務邏輯,一般來說是根據應用層提供的數據來驅動業務執行,業務邏輯會使用倉儲來對數據持久化。
○ 應用:也就是MVC應用,它為用戶提供操作界面(UI),然后調用邏輯來完成業務。
為模型、倉儲和邏輯創建類庫項目
1. 使用VS2017創建3個類庫項目,分別是BlogBusinessLogic、BlogModel、BlogRepository:
它們之間的依賴關系如下:
2. 將My Blog的Post類轉移到BlogModel中(復制的時候應注意命名空間):
3. 創建Blog倉儲(這里仍然使用靜態列表來表示一個數據源):
4. 創建BlogManager作為一個簡單的業務邏輯管理者:
5. 在MVC中定義視圖模型,用於顯示:
文章詳情模型:
文章列表模型:
6. 在Controller中使用BlogManager:
7. 修改頁面,使用Model來渲染頁面:
8. 運行結果,仍然和之前一致:
小結
本章僅僅是根據上一篇的分析對原有的MVC應用進行了拆分,拆分的目的是將關注點分離,便於代碼的管理和維護。需要注意的是從拆分的代碼中可以看到從MVC調用邏輯層的獲取文章列表、信息方法與邏輯層調用倉儲層的方法基本一致,並沒有額外的邏輯加入,這是因為現在的業務邏輯相對簡單,而並不是無用的。