發布NGuestBook(一個基于.NET平臺的分層架構留言本小系統)
發布NGuestBook的動機說明
大約在半年前,我在博客上發表了一個系列文章:《基于.NET平臺的分層架構實戰》。當時在講解過程中用到了一個叫NGuestBook的案例,在那以后,有很多朋友留言或發E-mail希望能得到NGuestBook的完整源代碼,以便對照文章研究學習。但是,在當時NGuestBook只是我虛擬的一個案例,并沒有成型的系統和完整的源代碼。
但是后來一直有很多朋友詢問這個事情,所以我覺得,將那個NGuestBook做出來還是很有必要的,所以,我花了兩天的時間大約做出了這個NGuestBook,現在把它發布出來,希望能給大家一些幫助。
這個NGuestBook與文章中案例的聯系與區別
雖然這個留言本系統與那個系列文章中的NGuestBook同名,但是就具體實現來說,有一些不同。雖然如此,“分層架構”這個核心還是一樣的,所以,這個Demo完全可以和那個文章系列配套使用,因為其核心架構思想、方式基本一致,只是具體實現有了一些差別。
NGuestBook功能概覽
NGuestBook是一個留言本系統,主要實現了以下功能:
1.發布留言,瀏覽留言
2.管理員的登錄、登出
3.管理員對留言進行審核、刪除、回復
下面給出幾幅系統運行截圖:
NGuestBook總體架構說明
1.整體采用三層架構:數據訪問層、業務邏輯層、表示層
2.數據訪問層使用Linq to Sql,XML,及SQL語句方式分別實現一個,在這個發布版本中,只有Linq to Sql方式的數據訪問層可以使用,另外兩個留出擴展。
3.業務邏輯層通過接口耦合數據訪問層,全局采用Abstract Factory+反射機制+緩存機制實現依賴注入功能。
4.表示層使用ASP.NET MVC實現,與業務邏輯層直接耦合。
工程說明:
NGuestBook.BusinessComponent:業務邏輯組件
NGuestBook.Entities:實體類
NGuestBook.Factories:依賴注入組件
NGuestBook.Interfaces:接口組件
NGuestBook.LinqDataComponent:使用Linq to Sql實現的數據訪問組件
NGuestBook.SQLDataComponent:使用SQL實現的數據訪問組件
NGuestBook.Utilities:工具組件
NGuestBook.Web:表示層
NGuestBook.XMLDataComponent:使用XML實現的數據訪問組件
特別說明
1.數據庫文件在/NGuestBook.Web/Data/SQLServer2005下。
2.這個系統還不太完善,只為了突出架構特征,而一些細節像分頁、驗證碼等功能沒有加入。
3.這個系統沒有加入Ajax元素。
4.這個系統的目的是交流學習的Demo,并不是真正要投入使用,如果真要做一個留言本,完全沒有必要用這么復雜的架構,這里只是為了突出架構的方式。所以請不要在留言中表達“做個留言本沒必要如此復雜”或“留言本我一個小時就能做出來”之類的意思。
版權聲明
本系統和源代碼部分或全部可以任意拷貝、傳播或用于自己的系統中,但不包括用于商業用途。
本系統中自由傳播的成分僅僅包括代碼,而其中一些原創的思想或模式(包括但不限於“數據驗證模式”,“基于ASP.NET MVC的回傳模型重組模式”等)等一些理論性內容已經納入本人的論文選題內,所以不允許將本系統中原創的思想或模式撰寫成論文,一經發現將追究法律責任。
開發/運行環境
Windows XP SP2 中文版
Microsoft .NET framework 3.5 SP1
Microsoft Visual Studio 2008 SP1
Microsoft ASP.NET MVC RC
Microsoft SQLServer2005
配置說明
連接字符串在/NGuestBook.LinqDataComponent/app.config中,請根據具體情況自行修改。
管理員的登錄名和密碼在/NGuestBook.Web/Web.config中,<appSettings>節點下的"AdminName"和"AdminPassword",默認均為"admin"。需要可以自行修改。
留言列表