天天看點

設計ASP.NET新聞管理系統

【摘要】利用 ASP. NET和ADO. NET技術開發的網站 新聞管理系統,實作了網站新聞的動态管理,使得對資訊的管理更加及時、高效,提高了工作效率。同時對系統的開發原理、系統的功能特點和 設計方案進行了介紹。

  【關鍵詞】ASP.NET ADO.NET 新聞 管理 資料庫

  随着InterNET的普及,越來越多的企業建立了自己的WWW網站,企業通過網站可以展示産品,釋出最新動态,與使用者進行交流和溝通,與合作夥伴建立聯系,以及開展電子商務等。其中新聞管理系統是構成企業網站的一個重要組成部分,它擔負着雙層作用,一方面可以用來動态釋出有關新産品或新開發項目,另一方面又可以及時向顧客公告企業經營業績、技術與研發進展、特别推薦或優惠的工程項目、産品和服務,進而吸引顧客,擴大顧客群。

  傳統的網站新聞管理方式有兩種,一是靜态HTML頁面,更新資訊時需要重新制作頁面然後上傳頁面并修改相應連結,這種方式因為效率太低已不多用。二是基于ASP和腳本語言,将動态網頁和資料庫結合,通過應用程式來處理新聞,這是目前較為流行的做法。但是由于ASP本身的局限性使得系統有一些不可克服的缺陷,而采取了ASP.NET技術的系統性能上有了很大的改善,其主要表現在以下幾方面:

  1.由于ASP頁面每次打開都必須經過先編譯後解釋的過程,是以頁面在反複打開時速度沒有任何提升,而ASP.NET頁面隻需要一次編譯後不需要重新編譯,直到該頁面被修改或Web應用程式重新啟動。這使得在多次通路時速度有了極大的提升。

  2.由于ASP沒有提供任何輸出資料為内容的元件,是以在使用ASP撰寫資料庫頁面時隻能借助ADO的RecordSet對象逐筆讀取記錄,而ASP.NET通過ADO.NET提供的DataGrid等資料庫元件可以直接和資料庫聯系。

  3.ASP.NET支援應用程式的實時更新。管理者不必關掉網絡伺服器或者甚至不用停止應用程式的運作就可以更新應用檔案。應用程式檔案永遠不會被加鎖,是以甚至在程式運作時檔案就可以被覆寫。當檔案更新後,系統會溫和地轉換到新的版本。

  4.ASP.NET采取"code-behind"方式編寫代碼使得代碼更易于編寫,結構更清晰,降低了系統的開發與維護的複雜度和費用。

  1系統的開發原理

  1.1 基于ASP.NET技術的系統結構模型

  ASP.NET結構是一個三層系統:UI層、業務邏輯層和資料層,如圖1所示。

圖1 ASP.NET的系統結構模型

  UI層負責與使用者互動,接收使用者的輸入并将伺服器端傳來的資料呈現給客戶。

  業務邏輯層負責接收浏覽器傳來的請求并将請求傳給資料層,同時将請求處理結果發給浏覽器。它由Web表單、XML Web服務群組件服務組成。其中Web表單是ASP.NET應用程式的核心所在,它是向客戶呈現資料和資訊的基礎,也是響應和處理客戶與顯示的Web表單互動生成的資訊和資料的基礎。

  資料層是通過ADO.NET操縱資料為事務邏輯層提供資料服務,如存儲資料操作結果、傳回資料檢索結果等。

  1.2 ADO.NET通路資料庫的原理

  與資料庫相連,ADO.NET提供了如下3種方式:通過ODBC相連;通過OLEDB相連;直接與SQL Server相連。3種方式由于應用層次的差異,使得效率由低到高,獨立性由高到低。對于相連資料庫的資料處理,也有2種方式,即一種是通過DataSet來隔離異構的資料源,另一種是以流方式從資料源讀取(DataReader方式)。

  傳統的應用程式是通過先建立到資料庫的連接配接,在程式的整個運作過程中維護連接配接的方式來設計的。ASP.NET采取了斷開連接配接方式的資料結構。當浏覽器向Web伺服器請求網頁時,伺服器處理這個請求,并将所請求的網頁發送給浏覽器,然後連接配接就被斷開,直到浏覽器發出下一個請求。

  ADO.NET的另一個創新是引入了資料集(Dataset)。一個資料集是記憶體中提供資料關系圖的高速緩沖區。資料集對資料源一無所知,它們可以由程式或通過從資料倉庫中調入資料而被生成、填充。不論資料從何處擷取,資料集都是通過使用同樣的程式模闆而被操作的,并且它使用相同的潛在的資料緩沖區。

  2 系統的功能設計

  2.1 系統的功能結構

  該新聞管理系統可以在Windows 2000 Server作業系統平台上運作,Web伺服器為IIS,資料庫伺服器為Microsoft SQL Server2000,開發工具采用的Microsoft Visual Studio .NET和Dreamweaver。圖2給出系統的功能結構圖。其工作流程為:使用者登入通過權限判斷,普通使用者隻能浏覽、閱讀和查詢新聞,注冊使用者除了可以完成普通使用者的操作外,還可以進入新聞管理子產品進行新聞錄入、修改和删除的操作。注冊使用者除系統管理者外隻能對自己錄入的新聞進行删改操作。

  2.2 系統的功能特點

  (1)操作簡單、界面友好:完全控件式的頁面布局,使得新聞的錄入工作更簡便;許多選項包括新聞類别、來源部門等隻需要點選滑鼠就可以完成;另外,跟蹤出現的提示資訊也讓使用者随時清楚自己的操作情況。

  (2)即時可見:對新聞的處理(包括錄入、修改、删除)将立即在首頁的對應欄目顯示出來,達到"即時釋出、即時見效"的功能。

圖2 系統功能結構圖

  (3)功能完善:包括常見網站的新聞管理的各個方面:新聞錄入、浏覽、删除、修改、檢索等各個方面,完整地實作了網站對即時新聞的管理要求。

  (4)友善移植:針對不同的企業,隻需要稍作修改就可以開發出适合本企業特點的網站新聞管理系統!

  3 系統的詳細設計

  系統的主要功能是通過幾個功能子產品來實作的。具體的設計過程如下:

  ⑴ 系統登入:該子產品負責将使用者分為普通使用者和注冊使用者來實作使用者權限的管理。

  ⑵ 新聞浏覽:該子產品負責分頁列出網站所有新聞的資訊,包括标題、類型、來源部門字段及釋出日期,每條新聞的标題被做成一個超連結,點選它們就能跳轉頁面進行新聞閱讀。

  ⑶ 新聞閱讀:在其他頁面中點選标題連結即進入新聞閱讀頁面,此時,每條新聞的詳細資訊将被取出,包括内容、标題、關鍵字等,并按照相對固定的格式放置在頁面的不同區域,所有新聞使用大緻相同的頁面布局,隻是各字段對應的内容不同而已,另外,頁面其它位置,可以動态放置其他元件,如網站标志logo、頁面廣告banner等連結圖檔,這樣可以很容易地實作圖文并茂的閱讀效果。

  ⑷ 新聞查詢:該子產品提供了新聞查詢功能,輸入待查找的内容及標明分類資訊可以快速地找到符合條件的新聞,并輸出查詢結果。

  ⑸ 新聞管理:該子產品負責分頁羅列登入的注冊使用者曾釋出過且未删除的新聞資訊,使用者可以對該條新聞進行删除、修改。非新聞釋出者除系統管理者外不具有對該條新聞的處理權限,是以不同使用者進入此頁面将顯示不同的内容。

  ⑹ 新聞錄入和修改:注冊使用者錄入一條新聞所需要的内容,包含标題、關鍵字、類型、來源部門、釋出日期等,同時從登入子產品得到使用者名,這些資訊将被寫入資料庫中儲存。該子產品還負責編輯狀态下的更新,這時,它将根據取得的Title字段值對頁面控件初始化。

  下面以系統登入頁面的編寫為例給出主要事件和函數,說明該系統的開發過程。

//IsRegUserOk函數:判斷使用者是否已經注冊和密碼是否正确

public bool IsRegUserOk()

{

string name=TextBoxName.Text.Trim();

string pwd=TextBoxPassword.Text.Trim();

//建立/打開資料庫連接配接

SqlConnection conn=new SqlConnection();

conn.ConnectionString="server=(local);uid=sa;pwd=;database=jxdb";

conn.Open();

//建立sql字元串

string sql="select * from reg where name='" name "'";

SqlDataReader dr;

SqlCommand cmd=new SqlCommand(sql,conn);

dr=cmd.ExecuteReader();

//保留使用者注冊與否資訊

bool isRegUserExist=dr.Read();

//關閉DataReader

dr.Close();

//取得使用者名的密碼

string sqlBoth="select * from reg where name='" name "'";

sqlBoth ="and pwd='" pwd "'";

SqlCommand cmdBoth=new SqlCommand(sqlBoth,conn);

SqlDataReader drBoth;

drBoth=cmdBoth.ExecuteReader();

//保留使用者名 密碼同時存在資訊

bool isBothExist=drBoth.Read();

//關閉DataReader

drBoth.Close();

conn.Close();

//判斷使用者是否注冊

if(!isRegUserExist)

{

Response.Write("<script>alert('此使用者尚未注冊!')");

return false;

}

//判斷使用者名與密碼是否一緻

else if(!isBothExist)

{

Response.Write("<script>alert('使用者名和密碼不一緻,不能進入!')");

return false;

}

else

return true;

}

  最後給出系統後端資料存儲方案:

  利用Microsoft SQL Server 2000建立資料庫及其存儲過程。這裡給出兩個必需的資料表,一是資料表News包含的字段有:編号、姓名、标題、關鍵字、内容、類型、來源部門和日期。字段說明如下:

  二是資料表Reg包含的字段有:編号、姓名、密碼、所屬部門、電子郵箱和電話。字段說明如下: