- 相關(guān)推薦
ASP.NET的網(wǎng)站新聞管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 2
【摘要】利用ASP.NET和ADO.NET技術(shù)開(kāi)發(fā)的網(wǎng)站新聞管理系統(tǒng),實(shí)現(xiàn)了網(wǎng)站新聞的動(dòng)態(tài)管理,使得對(duì)信息的管理更加及時(shí)、高效,提高了工作效率。同時(shí)對(duì)系統(tǒng)的開(kāi)發(fā)原理、系統(tǒng)的功能特點(diǎn)和設(shè)計(jì)方案進(jìn)行了介紹。【關(guān)鍵詞】ASP.NETADO.NET新聞管理數(shù)據(jù)庫(kù)
隨著Internet的普及,越來(lái)越多的企業(yè)建立了自己的WWW網(wǎng)站,企業(yè)通過(guò)網(wǎng)站可以展示產(chǎn)品,發(fā)布最新動(dòng)態(tài),與用戶進(jìn)行交流和溝通,與合作伙伴建立聯(lián)系,以及開(kāi)展電子商務(wù)等。其中新聞管理系統(tǒng)是構(gòu)成企業(yè)網(wǎng)站的一個(gè)重要組成部分,它擔(dān)負(fù)著雙層作用,一方面可以用來(lái)動(dòng)態(tài)發(fā)布有關(guān)新產(chǎn)品或新開(kāi)發(fā)項(xiàng)目,另一方面又可以及時(shí)向顧客公告企業(yè)經(jīng)營(yíng)業(yè)績(jī)、技術(shù)與研發(fā)進(jìn)展、特別推薦或優(yōu)惠的工程項(xiàng)目、產(chǎn)品和服務(wù),從而吸引顧客,擴(kuò)大顧客群。
傳統(tǒng)的網(wǎng)站新聞管理方式有兩種,一是靜態(tài)HTML頁(yè)面,更新信息時(shí)需要重新制作頁(yè)面然后上傳頁(yè)面并修改相應(yīng)鏈接,這種方式因?yàn)樾侍鸵巡欢嘤�。二是基于ASP和腳本語(yǔ)言,將動(dòng)態(tài)網(wǎng)頁(yè)和數(shù)據(jù)庫(kù)結(jié)合,通過(guò)應(yīng)用程序來(lái)處理新聞,這是目前較為流行的做法。但是由于ASP本身的局限性使得系統(tǒng)有一些不可克服的缺陷,而采取了ASP.NET技術(shù)的系統(tǒng)性能上有了很大的改善,其主要表現(xiàn)在以下幾方面:
1.由于ASP頁(yè)面每次打開(kāi)都必須經(jīng)過(guò)先編譯后解釋的過(guò)程,所以頁(yè)面在反復(fù)打開(kāi)時(shí)速度沒(méi)有任何提升,而ASP.NET頁(yè)面只需要一次編譯后不需要重新編譯,直到該頁(yè)面被修改或Web應(yīng)用程序重新啟動(dòng)。這使得在多次訪問(wèn)時(shí)速度有了極大的提升。
2.由于ASP沒(méi)有提供任何輸出數(shù)據(jù)為內(nèi)容的元件,所以在使用ASP撰寫(xiě)數(shù)據(jù)庫(kù)頁(yè)面時(shí)只能借助ADO的RecordSet對(duì)象逐筆讀取記錄,而ASP.NET通過(guò)ADO.NET提供的DataGrid等數(shù)據(jù)庫(kù)元件可以直接和數(shù)據(jù)庫(kù)聯(lián)系。
3.ASP.NET支持應(yīng)用程序的實(shí)時(shí)更新。管理員不必關(guān)掉網(wǎng)絡(luò)服務(wù)器或者甚至不用停止應(yīng)用程序的運(yùn)行就可以更新應(yīng)用文件。應(yīng)用程序文件永遠(yuǎn)不會(huì)被加鎖,因此甚至在程序運(yùn)行時(shí)文件就可以被覆蓋。當(dāng)文件更新后,系統(tǒng)會(huì)溫和地轉(zhuǎn)換到新的版本。
4.ASP.NET采取"code-behind"方式編寫(xiě)代碼使得代碼更易于編寫(xiě),結(jié)構(gòu)更清晰,降低了系統(tǒng)的開(kāi)發(fā)與維護(hù)的復(fù)雜度和費(fèi)用。
1系統(tǒng)的開(kāi)發(fā)原理
1.1基于ASP.NET技術(shù)的系統(tǒng)結(jié)構(gòu)模型
ASP.NET結(jié)構(gòu)是一個(gè)三層系統(tǒng):UI層、業(yè)務(wù)邏輯層和數(shù)據(jù)層,如圖1所示。
圖1ASP.NET的系統(tǒng)結(jié)構(gòu)模型
UI層負(fù)責(zé)與用戶交互,接收用戶的輸入并將服務(wù)器端傳來(lái)的數(shù)據(jù)呈現(xiàn)給客戶。
業(yè)務(wù)邏輯層負(fù)責(zé)接收瀏覽器傳來(lái)的請(qǐng)求并將請(qǐng)求傳給數(shù)據(jù)層,同時(shí)將請(qǐng)求處理結(jié)果發(fā)給瀏覽器。它由Web表單、XMLWeb服務(wù)和組件服務(wù)組成。其中Web表單是ASP.NET應(yīng)用程序的核心所在,它是向客戶呈現(xiàn)數(shù)據(jù)和信息的基礎(chǔ),也是響應(yīng)和處理客戶與顯示的Web表單交互生成的信息和數(shù)據(jù)的基礎(chǔ)。
數(shù)據(jù)層是通過(guò)ADO.NET操縱數(shù)據(jù)為事務(wù)邏輯層提供數(shù)據(jù)服務(wù),如存儲(chǔ)數(shù)據(jù)操作結(jié)果、返回?cái)?shù)據(jù)檢索結(jié)果等。
1.2ADO.NET訪問(wèn)數(shù)據(jù)庫(kù)的原理
與數(shù)據(jù)庫(kù)相連,ADO.NET提供了如下3種方式:通過(guò)ODBC相連;通過(guò)OLEDB相連;直接與SQLServer相連。3種方式由于應(yīng)用層次的差異,使得效率由低到高,獨(dú)立性由高到低。對(duì)于相連數(shù)據(jù)庫(kù)的數(shù)據(jù)處理,也有2種方式,即一種是通過(guò)DataSet來(lái)隔離異構(gòu)的數(shù)據(jù)源,另一種是以流方式從數(shù)據(jù)源讀取(DataReader方式)。
傳統(tǒng)的應(yīng)用程序是通過(guò)先建立到數(shù)據(jù)庫(kù)的連接,在程序的整個(gè)運(yùn)行過(guò)程中維護(hù)連接的方式來(lái)設(shè)計(jì)的。ASP.NET采取了斷開(kāi)連接方式的數(shù)據(jù)結(jié)構(gòu)。當(dāng)瀏覽器向Web服務(wù)器請(qǐng)求網(wǎng)頁(yè)時(shí),服務(wù)器處理這個(gè)請(qǐng)求,并將所請(qǐng)求的網(wǎng)頁(yè)發(fā)送給瀏覽器,然后連接就被斷開(kāi),直到瀏覽器發(fā)出下一個(gè)請(qǐng)求。
ADO.NET的另一個(gè)創(chuàng)新是引入了數(shù)據(jù)集(Dataset)。一個(gè)數(shù)據(jù)集是內(nèi)存中提供數(shù)據(jù)關(guān)系圖的高速緩沖區(qū)。數(shù)據(jù)集對(duì)數(shù)據(jù)源一無(wú)所知,它們可以由程序或通過(guò)從數(shù)據(jù)倉(cāng)庫(kù)中調(diào)入數(shù)據(jù)而被生成、填充。不論數(shù)據(jù)從何處獲取,數(shù)據(jù)集都是通過(guò)使用同樣的程序模板而被操作的,并且它使用相同的潛在的數(shù)據(jù)緩沖區(qū)。
2系統(tǒng)的功能設(shè)計(jì)
2.1系統(tǒng)的功能結(jié)構(gòu)
該新聞管理系統(tǒng)可以在Windows2000Server操作系統(tǒng)平臺(tái)上運(yùn)行,Web服務(wù)器為IIS,數(shù)據(jù)庫(kù)服務(wù)器為MicrosoftSQLServer2000,開(kāi)發(fā)工具采用的MicrosoftVisualStudio.NET和DreamWeaver。圖2給出系統(tǒng)的功能結(jié)構(gòu)圖。其工作流程為:用戶登錄通過(guò)權(quán)限判斷,普通用戶只能瀏覽、閱讀和查詢新聞,注冊(cè)用戶除了可以完成普通用戶的操作外,還可以進(jìn)入新聞管理模塊進(jìn)行新聞錄入、修改和刪除的操作。注冊(cè)用戶除系統(tǒng)管理員外只能對(duì)自己錄入的新聞進(jìn)行刪改操作。
2.2系統(tǒng)的功能特點(diǎn)
�。�1)操作簡(jiǎn)單、界面友好:完全控件式的頁(yè)面布局,使得新聞的錄入工作更簡(jiǎn)便;許多選項(xiàng)包括新聞?lì)悇e、來(lái)源部門(mén)等只需要點(diǎn)擊鼠標(biāo)就可以完成;另外,跟蹤出現(xiàn)的提示信息也讓用戶隨時(shí)清楚自己的操作情況。
(2)即時(shí)可見(jiàn):對(duì)新聞的處理(包括錄入、修改、刪除)將立即在主頁(yè)的對(duì)應(yīng)欄目顯示出來(lái),達(dá)到"即時(shí)發(fā)布、即時(shí)見(jiàn)效"的功能。
圖2系統(tǒng)功能結(jié)構(gòu)圖
(3)功能完善:包括常見(jiàn)網(wǎng)站的新聞管理的各個(gè)方面:新聞錄入、瀏覽、刪除、修改、檢索等各個(gè)方面,完整地實(shí)現(xiàn)了網(wǎng)站對(duì)即時(shí)新聞的管理要求。
(4)方便移植:針對(duì)不同的企業(yè),只需要稍作修改就可以開(kāi)發(fā)出適合本企業(yè)特點(diǎn)的網(wǎng)站新聞管理系統(tǒng)!
3系統(tǒng)的詳細(xì)設(shè)計(jì)
系統(tǒng)的主要功能是通過(guò)幾個(gè)功能模塊來(lái)實(shí)現(xiàn)的。具體的設(shè)計(jì)過(guò)程如下:
�、畔到y(tǒng)登錄:該模塊負(fù)責(zé)將用戶分為普通用戶和注冊(cè)用戶來(lái)實(shí)現(xiàn)用戶權(quán)限的管理。
�、菩侣劄g覽:該模塊負(fù)責(zé)分頁(yè)列出網(wǎng)站所有新聞的信息,包括標(biāo)題、類型、來(lái)源部門(mén)字段及發(fā)布日期,每條新聞的標(biāo)題被做成一個(gè)超鏈接,點(diǎn)擊它們就能跳轉(zhuǎn)頁(yè)面進(jìn)行新聞閱讀。
�、切侣勯喿x:在其他頁(yè)面中點(diǎn)擊標(biāo)題鏈接即進(jìn)入新聞閱讀頁(yè)面,此時(shí),每條新聞的詳細(xì)信息將被取出,包括內(nèi)容、標(biāo)題、關(guān)鍵字等,并按照相對(duì)固定的格式放置在頁(yè)面的不同區(qū)域,所有新聞使用大致相同的頁(yè)面布局,只是各字段對(duì)應(yīng)的內(nèi)容不同而已,另外,頁(yè)面其它位置,可以動(dòng)態(tài)放置其他元件,如網(wǎng)站標(biāo)志logo、頁(yè)面廣告banner等鏈接圖片,這樣可以很容易地實(shí)現(xiàn)圖文并茂的閱讀效果。
�、刃侣劜樵儯涸撃K提供了新聞查詢功能,輸入待查找的內(nèi)容及選定分類信息可以快速地找到符合條件的新聞,并輸出查詢結(jié)果。
�、尚侣劰芾恚涸撃K負(fù)責(zé)分頁(yè)羅列登錄的注冊(cè)用戶曾發(fā)布過(guò)且未
刪除的新聞信息,用戶可以對(duì)該條新聞進(jìn)行刪除、修改。非新聞發(fā)布者除系統(tǒng)管理員外不具有對(duì)該條新聞的處理權(quán)限,所以不同用戶進(jìn)入此頁(yè)面將顯示不同的內(nèi)容。
�、市侣勪浫牒托薷模鹤�(cè)用戶錄入一條新聞所需要的內(nèi)容,包含標(biāo)題、關(guān)鍵字、類型、來(lái)源部門(mén)、發(fā)布日期等,同時(shí)從登錄模塊得到用戶名,這些信息將被寫(xiě)入數(shù)據(jù)庫(kù)中保存。該模塊還負(fù)責(zé)編輯狀態(tài)下的更新,這時(shí),它將根據(jù)取得的Title字段值對(duì)頁(yè)面控件初始化。
下面以系統(tǒng)登錄頁(yè)面的編寫(xiě)為例給出主要事件和函數(shù),說(shuō)明該系統(tǒng)的開(kāi)發(fā)過(guò)程。
//IsRegUserOk函數(shù):判斷用戶是否已經(jīng)注冊(cè)和密碼是否正確
publicboolIsRegUserOk()
{
stringname=TextBoxName.Text.Trim();
stringpwd=TextBoxPassword.Text.Trim();
//建立/打開(kāi)數(shù)據(jù)庫(kù)連接
SqlConnectionconn=newSqlConnection();
conn.ConnectionString="server=(local);uid=sa;pwd=;database=jxdb";
conn.Open();
//建立sql字符串
stringsql="select*fromregwherename='"+name+"'";
SqlDataReaderdr;
SqlCommandcmd=newSqlCommand(sql,conn);
dr=cmd.ExecuteReader();
//保留用戶注冊(cè)與否信息
boolisRegUserExist=dr.Read();
//關(guān)閉DataReader
dr.Close();
//取得用戶名的密碼
stringsqlBoth="select*fromregwherename='"+name+"'";
sqlBoth+="andpwd='"+pwd+"'";
SqlCommandcmdBoth=newSqlCommand(sqlBoth,conn);
SqlDataReaderdrBoth;
drBoth=cmdBoth.ExecuteReader();
//保留用戶名+密碼同時(shí)存在信息
boolisBothExist=drBoth.Read();
//關(guān)閉DataReader
drBoth.Close();
conn.Close();
//判斷用戶是否注冊(cè)
if(!isRegUserExist)
{
Response.Write("<script>alert('此用戶尚未注冊(cè)!')");
returnfalse;
}
//判斷用戶名與密碼是否一致
elseif(!isBothExist)
{
Response.Write("<script>alert('用戶名和密碼不一致,不能進(jìn)入!')");
returnfalse;
}
else
returntrue;
}
最后給出系統(tǒng)后端數(shù)據(jù)存儲(chǔ)方案:
利用MicrosoftSQLServer2000建立數(shù)據(jù)庫(kù)及其存儲(chǔ)過(guò)程。這里給出兩個(gè)必需的數(shù)據(jù)表,一是數(shù)據(jù)表News包含的字段有:編號(hào)、姓名、標(biāo)題、關(guān)鍵字、內(nèi)容、類型、來(lái)源部門(mén)和日期。字段說(shuō)明如下:
二是數(shù)據(jù)表Reg包含的字段有:編號(hào)、姓名、密碼、所屬部門(mén)、電子郵箱和電話。字段說(shuō)明如下:
參考文獻(xiàn)
[1]天極網(wǎng)新技術(shù)研究室.《ASP.NET完全入門(mén)》.重慶出版社,2001
[2]ScottWorley著.《ASP.NET技術(shù)內(nèi)幕》.王文龍劉湘寧譯.人民郵電出版社,2002
[3]SanjeevRohilla,SenthilNathan,SurbhiMalhotra著.《ADO.NET專業(yè)項(xiàng)目實(shí)例開(kāi)發(fā)》.陳君王寶良譯.中國(guó)水利水電出版社,2003
[4]丁晟春王曰芬.網(wǎng)站新聞發(fā)布管理系統(tǒng)的設(shè)計(jì)與應(yīng)用.現(xiàn)代圖書(shū)情報(bào)技術(shù).2002,5
【ASP.NET的網(wǎng)站新聞管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 2】相關(guān)文章:
職工工資管理系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)論文開(kāi)題報(bào)告06-14
網(wǎng)站設(shè)計(jì)合同(15篇)04-14
網(wǎng)站規(guī)劃設(shè)計(jì)師求職簡(jiǎn)歷08-26
司法行政系統(tǒng)新聞宣傳培訓(xùn)學(xué)習(xí)心得07-17
信息管理系統(tǒng)開(kāi)題報(bào)告11-19
信息管理系統(tǒng)論文11-02
管理系統(tǒng)的心得體會(huì)05-09