天天看點

一起談.NET技術,釋出NGuestBook(一個基于.NET平台的分層架構留言本小系統)

  釋出NGuestBook的動機說明

      但是後來一直有很多朋友詢問這個事情,是以我覺得,将那個NGuestBook做出來還是很有必要的,是以,我花了兩天的時間大約做出了這個NGuestBook,現在把它釋出出來,希望能給大家一些幫助。

  這個NGuestBook與文章中案例的聯系與差別

      雖然這個留言本系統與那個系列文章中的NGuestBook同名,但是就具體實作來說,有一些不同。雖然如此,“分層架構”這個核心還是一樣的,是以,這個Demo完全可以和那個文章系列配套使用,因為其核心架構思想、方式基本一緻,隻是具體實作有了一些差别。

  NGuestBook功能概覽

      NGuestBook是一個留言本系統,主要實作了以下功能:

      1.釋出留言,浏覽留言

      2.管理者的登入、登出

      3.管理者對留言進行稽核、删除、回複

      下面給出幾幅系統運作截圖:

一起談.NET技術,釋出NGuestBook(一個基于.NET平台的分層架構留言本小系統)
一起談.NET技術,釋出NGuestBook(一個基于.NET平台的分層架構留言本小系統)
一起談.NET技術,釋出NGuestBook(一個基于.NET平台的分層架構留言本小系統)

  NGuestBook總體架構說明

      1.整體采用三層架構:資料通路層、業務邏輯層、表示層

      2.資料通路層使用Linq to Sql,XML,及SQL語句方式分别實作一個,在這個釋出版本中,隻有Linq to Sql方式的資料通路層可以使用,另外兩個留出擴充。

      3.業務邏輯層通過接口耦合資料通路層,全局采用Abstract Factory+反射機制+緩存機制實作依賴注入功能。

      4.表示層使用ASP.NET MVC實作,與業務邏輯層直接耦合。

      工程說明:

一起談.NET技術,釋出NGuestBook(一個基于.NET平台的分層架構留言本小系統)

      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"。需要可以自行修改。