<sub id="n0hly"></sub>
<sub id="n0hly"></sub>

      <small id="n0hly"><progress id="n0hly"></progress></small>
    1. <address id="n0hly"></address>
      1. 加急見(jiàn)刊

        ASP.NET的網(wǎng)站新聞管理系統設計與實(shí)現

        陳志華 鄧貴仕  2005-12-09

        【摘要】利用ASP.NET和ADO.NET技術(shù)開(kāi)發(fā)的網(wǎng)站新聞管理系統,實(shí)現了網(wǎng)站新聞的動(dòng)態(tài)管理,使得對信息的管理更加及時(shí)、高效,提高了工作效率。同時(shí)對系統的開(kāi)發(fā)原理、系統的功能特點(diǎn)和設計方案進(jìn)行了介紹。 【關(guān)鍵詞】ASP.NET ADO.NET 新聞 管理 數據庫 隨著(zhù)Internet的普及,越來(lái)越多的企業(yè)建立了自己的WWW網(wǎng)站,企業(yè)通過(guò)網(wǎng)站可以展示產(chǎn)品,發(fā)布最新動(dòng)態(tài),與用戶(hù)進(jìn)行交流和溝通,與合作伙伴建立聯(lián)系,以及開(kāi)展電子商務(wù)等。其中新聞管理系統是構成企業(yè)網(wǎng)站的一個(gè)重要組成部分,它擔負著(zhù)雙層作用,一方面可以用來(lái)動(dòng)態(tài)發(fā)布有關(guān)新產(chǎn)品或新開(kāi)發(fā)項目,另一方面又可以及時(shí)向顧客公告企業(yè)經(jīng)營(yíng)業(yè)績(jì)、技術(shù)與研發(fā)進(jìn)展、特別推薦或優(yōu)惠的工程項目、產(chǎn)品和服務(wù),從而吸引顧客,擴大顧客群。 傳統的網(wǎng)站新聞管理方式有兩種,一是靜態(tài)HTML頁(yè)面,更新信息時(shí)需要重新制作頁(yè)面然后上傳頁(yè)面并修改相應鏈接,這種方式因為效率太低已不多用。二是基于A(yíng)SP和腳本語(yǔ)言,將動(dòng)態(tài)網(wǎng)頁(yè)和數據庫結合,通過(guò)應用程序來(lái)處理新聞,這是目前較為流行的做法。但是由于A(yíng)SP本身的局限性使得系統有一些不可克服的缺陷,而采取了ASP.NET技術(shù)的系統性能上有了很大的改善,其主要表現在以下幾方面: 1.由于A(yíng)SP頁(yè)面每次打開(kāi)都必須經(jīng)過(guò)先編譯后解釋的過(guò)程,所以頁(yè)面在反復打開(kāi)時(shí)速度沒(méi)有任何提升,而ASP.NET頁(yè)面只需要一次編譯后不需要重新編譯,直到該頁(yè)面被修改或Web應用程序重新啟動(dòng)。這使得在多次訪(fǎng)問(wèn)時(shí)速度有了極大的提升。 2.由于A(yíng)SP沒(méi)有提供任何輸出數據為內容的元件,所以在使用ASP撰寫(xiě)數據庫頁(yè)面時(shí)只能借助ADO的RecordSet對象逐筆讀取記錄,而ASP.NET通過(guò)ADO.NET提供的DataGrid等數據庫元件可以直接和數據庫聯(lián)系。 3.ASP.NET支持應用程序的實(shí)時(shí)更新。管理員不必關(guān)掉網(wǎng)絡(luò )服務(wù)器或者甚至不用停止應用程序的運行就可以更新應用文件。應用程序文件永遠不會(huì )被加鎖,因此甚至在程序運行時(shí)文件就可以被覆蓋。當文件更新后,系統會(huì )溫和地轉換到新的版本。 4.ASP.NET采取"code-behind"方式編寫(xiě)代碼使得代碼更易于編寫(xiě),結構更清晰,降低了系統的開(kāi)發(fā)與維護的復雜度和費用。 1系統的開(kāi)發(fā)原理 1.1 基于A(yíng)SP.NET技術(shù)的系統結構模型 ASP.NET結構是一個(gè)三層系統:UI層、業(yè)務(wù)邏輯層和數據層,如圖1所示。

        圖1 ASP.NET的系統結構模型 UI層負責與用戶(hù)交互,接收用戶(hù)的輸入并將服務(wù)器端傳來(lái)的數據呈現給客戶(hù)。 業(yè)務(wù)邏輯層負責接收瀏覽器傳來(lái)的請求并將請求傳給數據層,同時(shí)將請求處理結果發(fā)給瀏覽器。它由Web表單、XML Web服務(wù)和組件服務(wù)組成。其中Web表單是ASP.NET應用程序的核心所在,它是向客戶(hù)呈現數據和信息的基礎,也是響應和處理客戶(hù)與顯示的Web表單交互生成的信息和數據的基礎。 數據層是通過(guò)ADO.NET操縱數據為事務(wù)邏輯層提供數據服務(wù),如存儲數據操作結果、返回數據檢索結果等。

        1.2 ADO.NET訪(fǎng)問(wèn)數據庫的原理 與數據庫相連,ADO.NET提供了如下3種方式:通過(guò)ODBC相連;通過(guò)OLEDB相連;直接與SQL Server相連。3種方式由于應用層次的差異,使得效率由低到高,獨立性由高到低。對于相連數據庫的數據處理,也有2種方式,即一種是通過(guò)DataSet來(lái)隔離異構的數據源,另一種是以流方式從數據源讀取(DataReader方式)。 傳統的應用程序是通過(guò)先建立到數據庫的連接,在程序的整個(gè)運行過(guò)程中維護連接的方式來(lái)設計的。ASP.NET采取了斷開(kāi)連接方式的數據結構。當瀏覽器向Web服務(wù)器請求網(wǎng)頁(yè)時(shí),服務(wù)器處理這個(gè)請求,并將所請求的網(wǎng)頁(yè)發(fā)送給瀏覽器,然后連接就被斷開(kāi),直到瀏覽器發(fā)出下一個(gè)請求。 ADO.NET的另一個(gè)創(chuàng )新是引入了數據集(Dataset)。一個(gè)數據集是內存中提供數據關(guān)系圖的高速緩沖區。數據集對數據源一無(wú)所知,它們可以由程序或通過(guò)從數據倉庫中調入數據而被生成、填充。不論數據從何處獲取,數據集都是通過(guò)使用同樣的程序模板而被操作的,并且它使用相同的潛在的數據緩沖區。

        2 系統的功能設計 2.1 系統的功能結構 該新聞管理系統可以在Windows 2000 Server操作系統平臺上運行,Web服務(wù)器為IIS,數據庫服務(wù)器為Microsoft SQL Server2000,開(kāi)發(fā)工具采用的Microsoft Visual Studio .NET和DreamWeaver。圖2給出系統的功能結構圖。其工作流程為:用戶(hù)登錄通過(guò)權限判斷,普通用戶(hù)只能瀏覽、閱讀和查詢(xún)新聞,注冊用戶(hù)除了可以完成普通用戶(hù)的操作外,還可以進(jìn)入新聞管理模塊進(jìn)行新聞錄入、修改和刪除的操作。注冊用戶(hù)除系統管理員外只能對自己錄入的新聞進(jìn)行刪改操作。 2.2 系統的功能特點(diǎn) (1)操作簡(jiǎn)單、界面友好:完全控件式的頁(yè)面布局,使得新聞的錄入工作更簡(jiǎn)便;許多選項包括新聞類(lèi)別、來(lái)源部門(mén)等只需要點(diǎn)擊鼠標就可以完成;另外,跟蹤出現的提示信息也讓用戶(hù)隨時(shí)清楚自己的操作情況。 (2)即時(shí)可見(jiàn):對新聞的處理(包括錄入、修改、刪除)將立即在主頁(yè)的對應欄目顯示出來(lái),達到"即時(shí)發(fā)布、即時(shí)見(jiàn)效"的功能。

        圖2 系統功能結構圖 (3)功能完善:包括常見(jiàn)網(wǎng)站的新聞管理的各個(gè)方面:新聞錄入、瀏覽、刪除、修改、檢索等各個(gè)方面,完整地實(shí)現了網(wǎng)站對即時(shí)新聞的管理要求。 (4)方便移植:針對不同的企業(yè),只需要稍作修改就可以開(kāi)發(fā)出適合本企業(yè)特點(diǎn)的網(wǎng)站新聞管理系統!

        3 系統的詳細設計 系統的主要功能是通過(guò)幾個(gè)功能模塊來(lái)實(shí)現的。具體的設計過(guò)程如下: ⑴ 系統登錄:該模塊負責將用戶(hù)分為普通用戶(hù)和注冊用戶(hù)來(lái)實(shí)現用戶(hù)權限的管理。 ⑵ 新聞瀏覽:該模塊負責分頁(yè)列出網(wǎng)站所有新聞的信息,包括標題、類(lèi)型、來(lái)源部門(mén)字段及發(fā)布日期,每條新聞的標題被做成一個(gè)超鏈接,點(diǎn)擊它們就能跳轉頁(yè)面進(jìn)行新聞閱讀。 ⑶ 新聞閱讀:在其他頁(yè)面中點(diǎn)擊標題鏈接即進(jìn)入新聞閱讀頁(yè)面,此時(shí),每條新聞的詳細信息將被取出,包括內容、標題、關(guān)鍵字等,并按照相對固定的格式放置在頁(yè)面的不同區域,所有新聞使用大致相同的頁(yè)面布局,只是各字段對應的內容不同而已,另外,頁(yè)面其它位置,可以動(dòng)態(tài)放置其他元件,如網(wǎng)站標志logo、頁(yè)面廣告banner等鏈接圖片,這樣可以很容易地實(shí)現圖文并茂的閱讀效果。 ⑷ 新聞查詢(xún):該模塊提供了新聞查詢(xún)功能,輸入待查找的內容及選定分類(lèi)信息可以快速地找到符合條件的新聞,并輸出查詢(xún)結果。 ⑸ 新聞管理:該模塊負責分頁(yè)羅列登錄的注冊用戶(hù)曾發(fā)布過(guò)且未刪除的新聞信息,用戶(hù)可以對該條新聞進(jìn)行刪除、修改。非新聞發(fā)布者除系統管理員外不具有對該條新聞的處理權限,所以不同用戶(hù)進(jìn)入此頁(yè)面將顯示不同的內容。 ⑹ 新聞錄入和修改:注冊用戶(hù)錄入一條新聞所需要的內容,包含標題、關(guān)鍵字、類(lèi)型、來(lái)源部門(mén)、發(fā)布日期等,同時(shí)從登錄模塊得到用戶(hù)名,這些信息將被寫(xiě)入數據庫中保存。該模塊還負責編輯狀態(tài)下的更新,這時(shí),它將根據取得的Title字段值對頁(yè)面控件初始化。 下面以系統登錄頁(yè)面的編寫(xiě)為例給出主要事件和函數,說(shuō)明該系統的開(kāi)發(fā)過(guò)程。 //IsRegUserOk函數:判斷用戶(hù)是否已經(jīng)注冊和密碼是否正確 public bool IsRegUserOk() { string name=TextBoxName.Text.Trim(); string pwd=TextBoxPassword.Text.Trim(); //建立/打開(kāi)數據庫連接 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(); //保留用戶(hù)注冊與否信息 bool isRegUserExist=dr.Read(); //關(guān)閉DataReader dr.Close(); //取得用戶(hù)名的密碼 string sqlBoth="select * from reg where name='"+name+"'"; sqlBoth+="and pwd='"+pwd+"'"; SqlCommand cmdBoth=new SqlCommand(sqlBoth,conn); SqlDataReader drBoth; drBoth=cmdBoth.ExecuteReader(); //保留用戶(hù)名+密碼同時(shí)存在信息 bool isBothExist=drBoth.Read(); //關(guān)閉DataReader drBoth.Close(); conn.Close(); //判斷用戶(hù)是否注冊 if(!isRegUserExist) { Response.Write(" 亚欧成人中文字幕一区-日韩影音先锋AV乱伦小说-成人精品久久一区二区-成人美女视频在线观看

        <sub id="n0hly"></sub>
        <sub id="n0hly"></sub>

          <small id="n0hly"><progress id="n0hly"></progress></small>
        1. <address id="n0hly"></address>