|
應廣大網友的要求,我最近抽空基于ASP.NET MVC + WCF + Entity Framework做了一個案例,該案例以圖書館圖書管理、讀者借書、還書為業務背景,以領域驅動設計為思想指導,全程采用Microsoft技術進行實踐,希望能夠給Microsoft技術的狂熱者以及領域驅動設計的學者提供實踐參考。
本案例選用的業務邏輯非常簡單,所以項目取名上我選用了“Tiny Library”,在后面一章我將詳細介紹這個案例的業務邏輯、模型設計與系統架構。
下載案例
本來打算將項目發布到codeplex上,便于大家交流,也便于代碼更新與維護,但由于某些原因,我無法在自己的網絡環境中連接codeplex的svn/tfs服務,于是,目前只能以壓縮包的形式發布案例源代碼,希望大家諒解,等以后有機會更新到codeplex上后再通知大家。
系統需求
- Microsoft Visual Studio 2010
- Microsoft Patterns & Practices 5.0(v5.0.414.0,Runtime v2.0.50727。請自行到Microsoft官方網站下載安裝)
- Microsoft ASP.NET MVC 2
- Microsoft Entity Framework(注意:是Visual Studio 2010自帶的那個版本,而不是最新發布的那個Feature Pack CTP版本)
- Microsoft SQL Express 2008 SP1
- Apworks Application Development Framework
請在打開本案例解決方案之前自行安裝上述軟件和組件!
說明:Apworks Application Development Framework是我自己開發的一套領域驅動(Domain Driven)的應用程序開發框架,里面提供了對Aggregate Root、Repositories、Specifications以及Transaction Context的支持,基本能夠滿足基于Microsoft.NET技術的中小型領域驅動項目的應用開發。目前這個框架項目正在進一步實現基于CQRS體系結構模式的框架。為了節約時間,本系列文章不會對Apworks Application Development Framework做太多介紹。本框架目前也還是under construction,所以讀者朋友也千萬不要將其用在自己的系統開發中,以免發生危險!有關Apworks Application Development Framework的源代碼以及更多信息,請訪問項目站點:http://apworks.codeplex.com。Tiny Library壓縮包里包含了一個可被Tiny Library使用的Apworks版本,因此讀者朋友無需自己去Apworks站點上下載并編譯源代碼。當然,如果您希望了解Apworks的實現方式,可以使用上面的站點查看Apworks的源代碼。
安裝部署
- 建立數據庫
使用Microsoft Visual Studio 2010提供的Server Explorer功能,在Data Connections上單擊鼠標右鍵,選擇Create New SQL Server Database選項,此時出現Create New SQL Server Database對話框,在對話框的Server name中輸入(local)/SQLEXPRESS,在New database name中輸入TinyLibraryDB,之后單擊OK按鈕
- 創建數據庫Schema
使用Microsoft Visual Studio 2010打開TinyLibrary解決方案,在TinyLibrary.Domain項目節點下找到TinyLibrary.edmx.sql腳本文件,打開此腳本文件,在SQL Editor區域,點擊鼠標右鍵,選擇Connection | Connect菜單,此時彈出Connect to Database Engine對話框,Server選擇SQLEXPRESS,然后單擊OK
再次在SQL Editor區域點擊鼠標右鍵,選擇Execute SQL選項,執行SQL腳本以創建數據庫Schema
- 建立演示數據(Demo Data)
以上述同樣的方式,打開TinyLibrary.Domain項目下的TinyLibrary.DemoData.sql腳本并執行 - 3722端口
Tiny Library的WCF Service采用3722端口作為其服務的固定端口,因此在使用本案例錢,確保該端口未被其它應用程序占用
運行案例
- 在Microsoft Visual Studio 2010的Solution Explorer上,右鍵單擊TinyLibrary Solution然后選擇Rebuild Solution以重新編譯解決方案
- 在TinyLibrary.Services項目下,選中TinyLibraryService.svc,然后單擊右鍵,選擇View in Browser,此時會自動打開ASP.NET Development Server,端口占用3722,同時打開WCF Service的頁面。此時將WCF Service的頁面關閉,僅留下ASP.NET Development Server
- 右鍵單擊TinyLibrary.WebApp項目,選擇Set as StartUp Project選項,然后在Microsoft Visual Studio中按下Ctrl+F5或者Debug | Start Without Debugging選項以啟動應用程序
- 應用程序啟動后,可以看到主界面如下
登錄賬號
測試需要,Tiny Library默認提供三個用戶賬戶:daxNET、acqy和james。用戶名、密碼如下:
- 登錄名:daxNET;名稱:DaxNET;密碼:daxNET@live.com
- 登錄名:acqy;名稱:Sunny Chen;密碼:acqy@163.com
- 登錄名:james;名稱:james;密碼:james@tinylibrary.com
額外說明
時間有限,本案例僅僅是一個基于Microsoft.NET技術的領域驅動設計實踐案例,因此,如下內容沒有包含在本案例中:
- 基于AOP和Policy Injection的技術實踐。這包括:異常處理、數據驗證與系統日志
- 基于用戶/角色驗證的圖書維護頁面
- ASP.NET MVC的高級應用
- WCF的異常捕獲與顯示
- 單元測試
- 其它的一些技術細節
有興趣的朋友可以在本案例源代碼的基礎上進行擴充,以實現一套完整的圖書館管理應用。
NET技術:領域驅動設計案例:Tiny Library:簡介,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。