

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、<p><b> 畢</b></p><p><b> 業(yè)</b></p><p><b> 設</b></p><p><b> 計</b></p><p><b> 論</b></p><p
2、><b> 文</b></p><p><b> 題 目: </b></p><p><b> 專 業(yè): </b></p><p><b> 指導老師:</b></p><p><b> 班 級: </b&
3、gt;</p><p><b> 學 號:</b></p><p><b> 學生姓名: </b></p><p><b> 時 間: </b></p><p> .NET to Develop the News Briefing Administrativ
4、e System of the Campus</p><p> Liu Jungang</p><p> (Dept. of Computer and Information Science, Southwest Forestry College, Kunming, Yunnan, 650224, China)</p><p> Abstract ASP.N
5、ET is Web application program developing platform of new generation, it is one that has already compiled , development environment based on .NET, it has offered and produced all essential services of application program
6、of enterprise layer, produce because of .NET Framework, the whole frame can be used in any ASP.NET application program. Can use any to operate the compatible language (including Visual Basic.NET , C# and JScript .NET ) o
7、f storehouse (CLR ) to establish application </p><p> Keywords ASP.NET ADO.NET NewsManagement Browser/Server</p><p><b> 目 錄</b></p><p><b> 引言1</b><
8、;/p><p> 第一章 研究背景2</p><p> 1.1 國內(nèi)外研究現(xiàn)狀及發(fā)展趨勢2</p><p> 1.2 研究目的、意義和范圍3</p><p> 第二章 課題分析4</p><p> 2.1 需求分析4</p><p> 2.2 新聞系統(tǒng)的性能需求5</p
9、><p> 2.3 運行環(huán)境要求6</p><p><b> 2.3.1設備6</b></p><p> 2.3.2支持程序6</p><p> 第三章 系統(tǒng)結(jié)構(gòu)流程6</p><p> 3.1 新聞系統(tǒng)的模型結(jié)構(gòu)6</p><p> 3.2 新聞系統(tǒng)的功
10、能模塊簡介7</p><p> 第四章 使用技術的介紹9</p><p> 4.1 .php概述9</p><p> 4.2 php、mysql和javascript語言簡介10</p><p> 第五章 新聞系統(tǒng)的主要開發(fā)過程12</p><p> 5.1 數(shù)據(jù)庫設計12</p>
11、<p> 5.2各主要窗體頁的圖形界面介紹13</p><p> 5.3 頁面的風格設計15</p><p> 5.4 系統(tǒng)配置15</p><p> 5.4.1 Web.config文件配置16</p><p> 5.4.2 配置發(fā)布主頁16</p><p> 5.5 系統(tǒng)部分重要
12、功能及其代碼19</p><p> 5.5.1 Web用戶控件19</p><p> 5.5.2 通用類代碼19</p><p> 5.5.3 添加發(fā)布新聞27</p><p> 5.5.4 用戶注冊29</p><p><b> 結(jié)束語31</b></p>&
13、lt;p><b> 參考文獻32</b></p><p> 致謝…………………………………………………………………………………………………… 33</p><p><b> 引言</b></p><p> ASP.NET是微軟公司最新推出的一種統(tǒng)一Web開發(fā)平臺,與最新的數(shù)據(jù)訪問技術ADO.NET一起可構(gòu)建
14、出強大、安全和可靠的企業(yè)級Web應用程序。ASP.NET的語法在很大程度上與ASP兼容,同時它還提供一種新的編程模型和結(jié)構(gòu),用于生成更安全、可伸縮和穩(wěn)定的應用程序。</p><p> 采取了ASP.NET技術的系統(tǒng)在性能上有了很大的改善,主要表現(xiàn)在以下幾方面: </p><p> ● 由于ASP頁面每次打開都必須經(jīng)過先編譯后解釋的過程,所以頁面在反復打開時速度沒有任何提升,而ASP.N
15、ET頁面只需要一次編譯后不需要重新編譯,直到該頁面被修改或Web應用程序重新啟動。這使得在多次訪問時速度有了極大的提升; ● 由于ASP沒有提供任何輸出數(shù)據(jù)為內(nèi)容的元件,所以在使用ASP撰寫數(shù)據(jù)庫頁面時只能借助ADO的RecordSet對象逐筆讀取記錄,而ASP.NET通過ADO.NET提供的DataGrid等數(shù)據(jù)庫元件可以直接和數(shù)據(jù)庫聯(lián)系;</p><p> ● ASP.NET支持應用程序的實時更新,
16、管理員不必關掉網(wǎng)絡服務器或者甚至不用停止應用程序的運行就可以更新應用文件。應用程序文件永遠不會被加鎖,因此甚至在程序運行時文件就可以被覆蓋,當文件更新后,系統(tǒng)會溫和地轉(zhuǎn)換到新的版本; ●ASP.NET采取"CodeBehind(代碼分離)技術"方式編寫代碼使得代碼更易于編寫,結(jié)構(gòu)更清晰,降低了系統(tǒng)開發(fā)與維護的復雜度和費用。</p><p><b> 第一章 研究背景<
17、/b></p><p> 1.1 國內(nèi)外研究現(xiàn)狀及發(fā)展趨勢</p><p> 傳統(tǒng)的網(wǎng)站新聞管理方式有兩種:一種是靜態(tài)HTML頁面,更新信息時需要重新制作頁面然后上傳頁面并修改相應鏈接,這種方式因為效率太低已不多用;另一種是基于ASP和腳本語言,將動態(tài)網(wǎng)頁和數(shù)據(jù)庫結(jié)合,通過應用程序來處理新聞,這是目前較為流行的做法。但是由于ASP技術本身的局限性使得系統(tǒng)有一些不可克服的缺陷。&l
18、t;/p><p> ASP.NET不僅僅是下一版本的ASP(Active Server Pages,動態(tài)服務器頁面),而且是建立動態(tài)Web應用程序而重新打造的全新技術,其主要特色包括:</p><p><b> ● 語言的獨立性;</b></p><p> ● 簡單的開發(fā)操作,分離程序代碼和網(wǎng)頁內(nèi)容;</p><p>
19、 ● 提高了執(zhí)行效率;</p><p> ● 簡化部署與組態(tài)的操作;</p><p> ● 支持客戶端類型;</p><p> ● 支持下一代的Web服務;</p><p><b> ● 增進適用性;</b></p><p><b> ● 增進延展性;</b>&l
20、t;/p><p> ● 更多的支持工具;</p><p> ● 更佳的安全機制;</p><p> ● 會話(Session)可以跨進程、跨機器。</p><p> 由于ASP.NET的眾多優(yōu)點,技術發(fā)展和各種客觀實際的需要,該系統(tǒng)選用了ASP.NET來開發(fā)設計,實現(xiàn)了對校園新聞的動態(tài)管理操作,使得對新聞信息的發(fā)布與管理更加及時、高效,提
21、高了工作效率。</p><p> 1.2 研究目的、意義和范圍</p><p> 隨著Internet的普及,越來越多的企業(yè)建立了自己的WWW網(wǎng)站,企業(yè)通過網(wǎng)站可以展示產(chǎn)品,發(fā)布最新動態(tài)信息,與用戶進行交流和溝通,與合作伙伴建立聯(lián)系,以及開展電子商務等。</p><p> 其中新聞管理系統(tǒng)是構(gòu)成企業(yè)網(wǎng)站的一個重要組成部分,它擔負著雙層作用:</p>
22、<p> 一方面可以用來動態(tài)發(fā)布有關新產(chǎn)品或新開發(fā)項目;</p><p> 另一方面又可以及時向顧客公告企業(yè)經(jīng)營業(yè)績、技術與研發(fā)進展、特別推薦或優(yōu)惠的工程項目、產(chǎn)品和服務,從而吸引顧客,擴大顧客群。</p><p> 該系統(tǒng)使用ASP.NET(C#語言)和ADO.NET技術開發(fā), 實現(xiàn)了網(wǎng)站新聞的動態(tài)管理,使得對信息的管理更加及時、高效,提高了工作效率。該新聞系統(tǒng)具有一
23、般新聞系統(tǒng)的功能,主要包括前臺新聞查看區(qū)和后臺管理區(qū),可為學校各部門發(fā)布新聞,為校園網(wǎng)站提供新聞發(fā)布與管理的服務。</p><p> 該系統(tǒng)是基于B/S(Browser/Server,瀏覽器/客戶端)模式實現(xiàn),基于.NET平臺架構(gòu)開發(fā)設計,主要實現(xiàn)對校園新聞的發(fā)布與管理功能,對新聞內(nèi)容信息的瀏覽閱讀等。 隨著Internet/Intranet技術的興起,將原本在單機或本地局域網(wǎng)上運行的數(shù)據(jù)庫系統(tǒng)移植到因
24、特網(wǎng)中,即開發(fā)基于B/S模式的新一代MIS(Management Information System,管理信息系統(tǒng))系統(tǒng),正成為技術發(fā)展的趨勢。為了保證系統(tǒng)性能的高效性、可擴展性,以及達到數(shù)據(jù)共享和網(wǎng)絡化管理的目的,本系統(tǒng)采用B/S體系結(jié)構(gòu)進行設計開發(fā)。</p><p><b> 第二章 課題分析</b></p><p><b> 2.1 需求分析&l
25、t;/b></p><p> 該系統(tǒng)的用戶為校園網(wǎng)站,需要經(jīng)常發(fā)布一些新聞,如何能有效地管理和發(fā)布新聞呢?最初用戶的需求為:“該新聞系統(tǒng)具有一般新聞系統(tǒng)的功能,同時具有新聞審核和不同管理員不同管理權(quán)限的功能” 。</p><p> 通過對其它一些新聞系統(tǒng)的調(diào)查發(fā)現(xiàn),一般新聞系統(tǒng)功能如下:</p><p> 前臺按分類顯示新聞;</p>&l
26、t;p><b> 搜索新聞;</b></p><p><b> 后臺管理:</b></p><p> ● 添加、刪除和修改新聞</p><p> ● 添加、刪除和修改用戶</p><p> ● 添加、刪除和修改新聞分類</p><p> ● 添加新聞(添加成
27、功后的新聞根據(jù)管理員權(quán)限分為可發(fā)布新聞和待審核新聞)</p><p> 需要新聞審核,說明添加后的新聞分為兩種:直接發(fā)布新聞和待審核新聞,同時待審核的新聞通過管理員或?qū)徍藛T經(jīng)審核后才可以上傳到網(wǎng)站,管理員有不同的權(quán)限,需要有個管理權(quán)限的功能,在系統(tǒng)中應該有個超級管理員,具有所有權(quán)限,能夠?qū)ο到y(tǒng)進行全面管理,同時管理員可以修改自己的一些信息。</p><p> 根據(jù)校園網(wǎng)站新聞發(fā)布管理的
28、實際需求,在首頁中能顯示最熱門新聞、頭條新聞和最近發(fā)布的幾條新聞等,同時在后臺發(fā)布新聞時可以添加圖片,也可以添加HTML語法,在前臺能自動根據(jù)所顯示的圖片和HTML語法來顯示新聞。</p><p> 在后臺管理中,因為有權(quán)限的管理員才能登錄管理后臺,所以需要有個登錄驗證模塊,而且需要根據(jù)用戶權(quán)限的不同顯示不同的管理目錄,在管理新聞和用戶時,當數(shù)據(jù)少時管理起來還比較方便,如果一多則想找到某條新聞或某個用戶就很難,
29、所以需要有個查找(新聞標題、用戶)模塊用于查找新聞或用戶。</p><p> 根據(jù)以上需求分析,該系統(tǒng)要實現(xiàn)的主要功能為:</p><p><b> 前臺顯示新聞部分</b></p><p><b> ● 用戶登錄區(qū)</b></p><p> ● 顯示最熱門的前幾條新聞</p>
30、<p> ● 顯示推薦的前幾條新聞</p><p> ● 顯示最新的前幾條新聞</p><p><b> ● 搜索新聞功能</b></p><p> ● 顯示所有新聞分類(即部門)</p><p> ● 按分類/部門顯示其下的所有新聞</p><p> ● 新聞詳細信息瀏覽
31、閱讀</p><p> ● 圖片新聞(自動生成縮略圖)以滾動形式在首頁顯示且只顯示前幾條</p><p> ● 網(wǎng)站友情鏈接(可在管理中添加設置)</p><p> ● 網(wǎng)站公告可顯示發(fā)布了新聞但沒通過審核的一些相關通知等</p><p><b> 后臺管理部分</b></p><p>&
32、lt;b> ● 登錄驗證</b></p><p> ● 根據(jù)權(quán)限顯示相應的管理目錄</p><p> ● 添加、修改和刪除新聞</p><p><b> ● 管理發(fā)布新聞</b></p><p><b> ● 管理審核新聞</b></p><p>
33、<b> ● 分類管理</b></p><p><b> ● 用戶管理</b></p><p> ● 網(wǎng)站風格設置、系統(tǒng)設置等</p><p> 2.2 新聞系統(tǒng)的性能需求</p><p> 該系統(tǒng)在性能功能上應達到如下需求:</p><p> 操作簡單、界面友好
34、: 完全控件式的頁面布局,使得新聞的錄入工作更簡便,許多選項包括新聞分類、來源部門等只需要點擊鼠標就可以完成;另外,跟蹤出現(xiàn)的提示信息也讓用戶隨時清楚自己的操作情況。對常見網(wǎng)站的新聞管理的各個方面:新聞錄入、瀏覽、刪除、修改、搜索等方面都大體實現(xiàn),實現(xiàn)了網(wǎng)站對即時新聞的管理要求; 即時可見:對新聞的處理(包括錄入、修改、刪除)將立即在主頁的對應欄目顯示出來,達到“即時發(fā)布、即時見效”的功能;</p><p&
35、gt; 系統(tǒng)運行應該快速、穩(wěn)定、高效和可靠;</p><p> 在結(jié)構(gòu)上應具有很好的可擴展性,便于將來的功能擴展和維護。</p><p> 2.3 運行環(huán)境要求</p><p><b> 2.3.1設備</b></p><p> 客戶機硬件要求:具有 Pentium III 處理器以上且滿足以下要求的計算機:最
36、低 64 MB 內(nèi)存,最小 2.1 GB 硬盤。</p><p> 服務器硬件要求:具有 Pentium III 處理器以上且滿足以下要求的計算機:最低 256MB 內(nèi)存,最小 8 GB 硬盤。</p><p><b> 2.3.2支持程序</b></p><p><b> 客戶端</b></p>&l
37、t;p> 操作系統(tǒng):Windows 98/NT/2000/XP或更高版本</p><p> 瀏覽器:IE 5.0以上或Netscape同等版本以上</p><p><b> 服務器</b></p><p> 操作系統(tǒng):Windows 2000 Server或者Windows 2003 Server</p><p
38、> Web服務器:MS IIS</p><p> 應用服務器:IIS、COM+等企業(yè)級應用服務器</p><p> 數(shù)據(jù)庫:ACCESS </p><p> 第三章 系統(tǒng)結(jié)構(gòu)流程</p><p> 3.1 新聞系統(tǒng)的模型結(jié)構(gòu)</p><p> 該系統(tǒng)的模型結(jié)構(gòu)如圖3-1所示:</p>&
39、lt;p> 圖3-1-1新聞系統(tǒng)的模型結(jié)構(gòu)圖示</p><p> 該系統(tǒng)結(jié)構(gòu)分為三個邏輯層:</p><p> Web 層:Web層為客戶端瀏覽器提供對應用程序的訪問,這一層是作為解決方案文件中的 Web 項目實現(xiàn)的。Web 層由 ASP.NET Web 窗體和代碼隱藏文件組成,Web 窗體只是用 HTML 提供用戶操作,而代碼隱藏文件實現(xiàn)各種控件的事件處理程序; </p
40、><p> 業(yè)務層:包含各種業(yè)務規(guī)則和邏輯的實現(xiàn),業(yè)務規(guī)則完成如客戶帳戶的驗證和字符串處理這樣的任務;</p><p> 數(shù)據(jù)訪問層:數(shù)據(jù)訪問層為業(yè)務層提供數(shù)據(jù)服務,這一層是作為解決方案文件中的 Conn類(數(shù)據(jù)訪問類,實現(xiàn)公共操作的一個通用類)實現(xiàn)的;</p><p> 3.2 新聞系統(tǒng)的功能模塊簡介</p><p> 圖3-2-1列出
41、系統(tǒng)的功能模塊圖:</p><p> 圖3-2-1 系統(tǒng)功能模塊圖示</p><p><b> 工作流程為:</b></p><p> 打開該系統(tǒng)網(wǎng)站,普通瀏覽者能瀏覽、閱讀和搜索新聞,能進行注冊,注冊后為新聞輸入員,登錄進入新聞后臺管理區(qū), 只有添加新聞的權(quán)限;如登錄時為新聞審核員,其不但有添加新聞的權(quán)限,還有審核和管理新聞的權(quán)限;如為
42、系統(tǒng)管理員,其有新聞后臺管理區(qū)內(nèi)的所有權(quán)限,除具有新聞審核員所有的權(quán)限外,還有添加和管理新聞分類、添加和管理用戶、系統(tǒng)、風格和友情鏈接設置。</p><p> 在添加新聞時,除常規(guī)的添加新聞標題、新聞內(nèi)容、新聞作者和新聞簡介外,還可選擇是否為首頁新聞、是否為推薦新聞和是否在首頁滾動圖片(上傳圖片)等,對新聞內(nèi)容的字體、字號和字體顏色可以調(diào)整,類似Word的一些簡單的編輯功能,還可設置超鏈接和插入表格等。如添加新
43、聞者為新聞輸入員,其所添加的新聞需要系統(tǒng)管理員或?qū)徍藛T經(jīng)審核后才能發(fā)布到網(wǎng)上;如是管理員或者審核員添加新聞的話,不需要再經(jīng)誰審核,直接可以發(fā)布到網(wǎng)上。</p><p> 管理新聞功能包括對任一條新聞內(nèi)容可作相應修改,也可刪除任何一條不再需要保留的新聞。管理新聞分類包括對新聞分類名稱作修改,也可將任一分類名刪除,刪除后其分類下的所有新聞也將被刪除。添加用戶時,用戶等級可為管理員、審核員或者輸入員之一,管理用戶包括
44、修改用戶名、密碼和用戶等級,也可將任一用戶刪除。</p><p> 系統(tǒng)設置包括設置網(wǎng)站標題、網(wǎng)站地址、首頁圖片、網(wǎng)站公告(可用來顯示當前有哪些新聞輸入員所添加的新聞沒有通過審核,具體的原因理由等)、網(wǎng)站鏈接(此文本內(nèi)容可更改)和底部信息(可放置一些與站點相關的文本內(nèi)容等),對系統(tǒng)設置里的內(nèi)容,隨時可做相應的修改,這權(quán)限只有系統(tǒng)管理員才擁有。風格設置指從系統(tǒng)八種風格里任選一種作為當前網(wǎng)站的默認風格。友情鏈接主要
45、是以圖片的形式鏈接到其它網(wǎng)站,作用跟系統(tǒng)設置里的網(wǎng)站鏈接功能一樣。</p><p> (下載源碼就到源碼網(wǎng):www.codepub.com)</p><p> 第四章 使用技術的介紹</p><p> 4.1 .NET Framework概述</p><p> .NET Framework 是用于 .NET 平臺的編程模型,其關鍵組
46、件是公共語言運行庫(CLR,Common Language Runtime)和 .NET Framework 類庫(包括 ADO.NET、ASP.NET 和 Windows 窗體),它提供了托管執(zhí)行環(huán)境、簡化的開發(fā)和部署以及與各種編程語言的集成,是支持生成和運行下一代應用程序和 XML Web services 的內(nèi)部 Windows 組件。</p><p> .NET Framework 旨在實現(xiàn)下列目標:&
47、lt;/p><p> 提供一個一致的面向?qū)ο蟮木幊汰h(huán)境,而無論對象代碼是在本地存儲和執(zhí)行,還是在本地執(zhí)行但在 Internet 上分布,或者是在遠程執(zhí)行的;</p><p> 提供一個將軟件部署和版本控制沖突最小化的代碼執(zhí)行環(huán)境;</p><p> 提供一個可提高代碼(包括由未知的或不完全受信任的第三方創(chuàng)建的代碼)執(zhí)行安全性的代碼執(zhí)行環(huán)境;</p>
48、<p> 提供一個可消除腳本環(huán)境或解釋環(huán)境的性能問題的代碼執(zhí)行環(huán)境;</p><p> 使開發(fā)人員的經(jīng)驗在面對類型大不相同的應用程序(如基于 Windows 的應用程序和基于 Web 的應用程序)時保持一致;</p><p> 按照工業(yè)標準生成所有通信,以確?;?.NET Framework 的代碼可與任何其他代碼集成。</p><p> 公共語
49、言運行庫是 .NET Framework 的基礎,可以將運行庫看作一個在執(zhí)行時管理代碼的代理,它提供內(nèi)存管理、線程管理和遠程處理等核心服務,并且還強制實施嚴格的類型安全以及可提高安全性和可靠性的其他形式的代碼準確性。事實上,代碼管理的概念是運行庫的基本原則。以運行庫為目標的代碼稱為托管代碼,而不以運行庫為目標的代碼稱為非托管代碼。</p><p> .NET Framework 類庫是一個綜合性的面向?qū)ο蟮目芍?/p>
50、用類型集合,可以使用它開發(fā)多種應用程序,這些應用程序包括傳統(tǒng)的命令行或圖形用戶界面 (GUI) 應用程序,也包括基于 ASP.NET 所提供的最新創(chuàng)建的應用程序(如 Web 窗體和 XML Web Services)。</p><p> 4.2 ASP.NET、ADO.NET和C#語言簡介</p><p> ASP.NET結(jié)構(gòu)是一個三層系統(tǒng):UI層、業(yè)務邏輯層和數(shù)據(jù)層,結(jié)構(gòu)模型如圖&
51、lt;/p><p><b> 4-2-1所示:</b></p><p> 圖4-2-1 ASP.NET的結(jié)構(gòu)模型 ● UI層負責與用戶交互,接收用戶的輸入并將服務器端傳來的數(shù)據(jù)呈現(xiàn)給客戶; ● 業(yè)務邏輯層負責接收瀏覽器傳來的請求并將請求傳給數(shù)據(jù)層,同時將請求處理結(jié)果發(fā)給瀏覽器。它由Web表單、XML Web Services和組件服務組成,其
52、中Web表單是ASP.NET應用程序的核心所在,它是向客戶呈現(xiàn)數(shù)據(jù)和信息的基礎,也是響應和處理客戶與顯示的Web表單交互生成的信息和數(shù)據(jù)的基礎; ● 數(shù)據(jù)層是通過ADO.NET操縱數(shù)據(jù)為事務邏輯層提供數(shù)據(jù)服務,如存儲數(shù)據(jù)操作結(jié)果、返回數(shù)據(jù)檢索結(jié)果等。</p><p> ADO.NET提供對Microsoft SQL Server、OLEDB和XML公開的數(shù)據(jù)源的一致性訪問,數(shù)據(jù)共享用戶應用程序可以使用ADO.
53、NET來連接到這些數(shù)據(jù)源,并檢索、操作和更新數(shù)據(jù)。</p><p> ADO.NET 有兩個核心組件:DataSet 和 .NET Framework 數(shù)據(jù)提供程序,后者是一組包括 Connection、Command、DataReader 和 DataAdapter 4個對象在內(nèi)的組件,其組件結(jié)構(gòu)如圖4-2-2所示:</p><p> 圖4-2-2 ADO.NET的組件結(jié)構(gòu)圖示<
54、;/p><p> DataSet對象是 ADO.NET 的斷開式結(jié)構(gòu)的核心組件,實現(xiàn)獨立于任何數(shù)據(jù)源的數(shù)據(jù)訪問。Connection 對象提供與數(shù)據(jù)源的連接,是操作數(shù)據(jù)庫的基礎,表示應用程序和數(shù)據(jù)源之間的惟一會話。Command 對象能夠訪問用于返回數(shù)據(jù)、修改數(shù)據(jù)、運行存儲過程以及發(fā)送或檢索參數(shù)信息的數(shù)據(jù)庫命令,實現(xiàn)對數(shù)據(jù)源的操作,如查詢、插入、修改和刪除等。DataReader 對象從數(shù)據(jù)源中讀取只進且只讀的數(shù)據(jù)
55、流。DataAdapter 對象是DataSet 對象和數(shù)據(jù)源之間關聯(lián)的橋梁,用數(shù)據(jù)源填充DataSet并解析更新。設計 ADO.NET 組件的目的是為了從“數(shù)據(jù)操作”中分解出“數(shù)據(jù)訪問”。</p><p> C#語言是.NET中一種嶄新的語言,C#是由C和C++派生而來的一種“簡單、流行、面向?qū)ο?、類型安全”的程序設計語言,C#意在綜合Visual Basic的高效率和C++的強大功能。</p>
56、<p> 第五章 新聞系統(tǒng)的主要開發(fā)過程</p><p><b> 5.1 數(shù)據(jù)庫設計</b></p><p> 該系統(tǒng)使用Access作為應用程序的數(shù)據(jù)庫,建立了有6張數(shù)據(jù)表:Lb_Admin表用于存儲帳戶的信息,Lb_Class表用于存儲新聞分類信息,Lb_Links表用于存儲友情鏈接信息, Lb_News表用于存儲新聞內(nèi)容, Lb_Setup表
57、用于存儲系統(tǒng)設置信息,Lb_Skins表用于存儲頁面風格。Lb_News表與Lb_Class表相關聯(lián)。</p><p> 在6個數(shù)據(jù)表中,主要介紹一下新聞表和賬戶表如下:</p><p> Lb_News表如表5-1-1所示:</p><p><b> 表5-1-1新聞表</b></p><p> n_id為該表
58、主鍵,n_cid為所屬新聞分類ID,n_hit為點擊數(shù),n_commend用于判斷是否為推薦新聞,n_index用于判斷是否為首頁新聞,n_title為新聞標題,n_date為發(fā)布新聞的日期,n_author為新聞發(fā)布者名,n_content為新聞內(nèi)容,n_ispic用于判斷是否為首頁滾動圖片,n_spic為首頁所滾動圖片的存儲地址,,n_check用于判斷是否為審核新聞(值為0表示未通過審核,值1表示通過審核),n_intro為新聞簡
59、介,n_publisher為賬戶類型,如為管理員、審核員或新聞輸入員。</p><p> Lb_Admin表如表5-2所示:</p><p><b> 表5-1-2賬戶表</b></p><p> A_Id為該表主鍵,A_Name為用戶名,A_Password為密碼,A_Grade為用戶級別。</p><p>
60、5.2各主要窗體頁的圖形界面介紹</p><p> 首頁:主要功能是顯示最熱門、最新和推薦的前8條新聞,顯示新聞搜索功能、頁面風格設置、新聞分類、滾動新聞圖片和網(wǎng)站公告等;如圖5-2-1所示:</p><p> 如圖5-2-1(下載源碼就到源碼網(wǎng):www.codepub.com)</p><p> 新聞詳細內(nèi)容查看頁:在首頁里點擊新聞標題所進入的頁面,顯示當前
61、所點擊新聞的詳細內(nèi)容,新聞標題正中加粗顯示,在添加新聞時,根據(jù)所編輯的新聞內(nèi)容對應顯示;如圖5-2-2</p><p><b> 如圖5-2-2</b></p><p> 新聞輸入員頁面:新聞輸入員只具有添加新聞的權(quán)限,任何瀏覽者都可注冊成為新聞輸入員,但所添加的新聞并不能直接發(fā)布到網(wǎng)站上顯示,而需經(jīng)過審核員或管理員審核是否給予通過,這保證了網(wǎng)站內(nèi)容管理的合理性,
62、并不是隨便添加的新聞都能發(fā)布;如圖5-2-3</p><p><b> 如圖5-2-3</b></p><p> 新聞審核員頁面:審核員管理頁面主要是對新聞進行審核,可對需審核的新聞內(nèi)容進行查看和編輯,以確定是否授權(quán)發(fā)布,審核員除審核新聞外,也可添加新聞和管理新聞,所添加的新聞不需審核而可以直接發(fā)布,管理新聞包括修改和刪除新聞;如圖:5-2-4</p>
63、<p><b> 如圖:5-2-4</b></p><p> 新聞管理員頁面:管理員具有系統(tǒng)的所有權(quán)限,除審核員的審核新聞、添加新聞和管理新聞外,還可添加新聞部門和用戶。對用戶和新聞部門進行管理,包括修改用戶ID和密碼,刪除用戶,更改部門名稱,刪除新聞部門,管理員所添加的新聞也不再需要審核而可以直接發(fā)布。如圖:5-2-5</p><p><b&
64、gt; 如圖:5-2-5</b></p><p> 5.3 頁面的風格設計</p><p> 為使該系統(tǒng)的頁面美觀多樣,在設計時使用了8種樣式風格。為了在頁面設計時方便調(diào)用,將其存儲于數(shù)據(jù)庫的Lb_Skins(風格樣式)表中,各窗體通過調(diào)用style.css文件來設計界面外觀。</p><p> CSS是Cascading Style Sheet
65、s(層疊樣式表單)的簡稱,簡稱樣式表,它是一種設計網(wǎng)頁樣式的技術。CSS代碼的基本語句結(jié)構(gòu)為:選擇符{屬性名:屬性值},選擇符可以是HTML中任何的標簽或自定義標識符,比如P、DIV、IMG甚至BODY都可以作為選擇符。</p><p> CSS在HTML文檔中有三種用法:</p><p> 一種是把CSS文檔放到<head>文檔中:<style type=“text
66、/css”> …… </style>;</p><p> 另一種方法是采用<style=“ ”>的格式把樣式寫在任何html標簽中的行內(nèi),這種方法比較方便靈活;</p><p> 還有一種方法是:把編輯好的CSS文檔保存成“.CSS”文件,然后在<head>中定義,定義的格式為:<head> <link href="
67、style.css" type="text/css" rel="stylesheet">…… </head> ,<link>和“rel=stylesheet”指連接的元素是一個樣式表文檔,“href=‘style.css’”指的是需要連接的文件地址。這種方法非常適宜同時定義多個文檔,能使多個文檔同時使用相同的樣式,從而減少了大量的冗余代碼。</p>
68、;<p><b> 5.4 系統(tǒng)配置</b></p><p> 5.4.1 Web.config文件配置</p><p> ASP.NET應用程序的配置功能放在Web.config文件中,它包含每一個具體Web應用程序的配置信息。在程序運行時,ASP.NET使用分層虛擬目錄結(jié)構(gòu)的Web.config文件提供的配置信息為每個惟一的URL資源計算一組配
69、置設置,然后緩存結(jié)果配置設置,以供所有頁面對資源的請求使用。</p><p> Web.config文件對于訪問站點的用戶來說是不可見的,而且也是不可訪問的,它基于XML,每個配置文件都包含XML標記和子標記的嵌套層次結(jié)構(gòu)。</p><p> 新聞系統(tǒng)的Web.config文件中的配置:</p><p> <appSettings><add
70、key="MdbPath" value="lbnews.mdb" /></appSettings> 通過鍵/值對key 和value配置數(shù)據(jù)庫連接的相關信息,將ACCESS數(shù)據(jù)庫lbnews.mdb文件用相對路徑的方式設置為字符串"MdbPath"在程序代碼中進行連接引用。</p><p> 5.4.2 配置發(fā)布主頁</p>
71、;<p> 首先要創(chuàng)建虛擬目錄,新建虛擬目錄的步驟如下:</p><p> ● 打開IIS(Internet 信息服務),在默認網(wǎng)站上右擊,在快捷菜單中選擇新建—>虛擬目錄; </p><p> ● 在彈出的虛擬目錄創(chuàng)建向?qū)υ捒蚶稂c擊“下一步”; </p><p> ● 輸入虛擬目錄別名;</p><p> ●
72、 選擇網(wǎng)站內(nèi)容所在目錄路徑; </p><p> ● 設置“訪問”權(quán)限。 </p><p> 在所建虛擬目錄上右擊,在彈出菜單中選擇瀏覽,或在瀏覽器里輸入相應網(wǎng)址,都可運行瀏覽程序。虛擬目錄不在目錄列表中顯示(也稱為 WWW 服務的“目錄瀏覽”),要訪問虛擬目錄,用戶必須知道虛擬目錄的別名并在瀏覽器中鍵入 URL。對于 WWW 服務,也可以在 HTML 頁面中創(chuàng)建鏈接。發(fā)布網(wǎng)站的時候,
73、把程序首頁的名字(index.aspx或default.aspx)寫在IIS當中就可以訪問了。</p><p> 5.5 系統(tǒng)部分重要功能及其代碼</p><p> 5.5.1 Web用戶控件</p><p> 該系統(tǒng)中創(chuàng)建了兩個Web用戶控件top.ascx和bottom.ascx,在首頁、新聞詳細內(nèi)容查看、新聞分類等頁面的HTML代碼里都進行了引用,調(diào)用方
74、式為:</p><p> <%@ Register TagPrefix="uc1" TagName="bottom" Src="bottom.ascx" %></p><p> <%@ Register TagPrefix="uc1" TagName="top" Sr
75、c="top.ascx" %></p><p> @ Register指令注冊用戶控件,同時把屬性TagName(標簽名)和TagPrefix(標簽前綴)添加到@ Register指令中,Src屬性表示該用戶控件相對于父頁面的相對地址。用戶控件也是服務器端控件,還必須在用戶控件代碼中添加Runat=server屬性,用法如下:</p><p> <uc1
76、:top id="Top1" runat="server"></uc1:top></p><p> <uc1:bottom id="Bottom1" runat="server"></uc1:bottom></p><p> 其中top.ascx用戶控件作用是顯示首
77、頁圖片、“首頁”文本字體、新聞分類、新聞風格和當前日期,bottom.ascx用戶控件作用是顯示底部相關網(wǎng)站信息等。</p><p> 用戶控件是非常易于代碼重用的,可以把許多相關功能和用戶界面封裝在一個用戶控件中,然后在任何需要該功能的地方重用此控件。</p><p> 5.5.2 通用類代碼</p><p> 在所有相關頁面顯示文件和Web用戶控件的代碼隱
78、藏文件.aspx.cs或.ascx.cs中,通過對數(shù)據(jù)訪問類的引用(以創(chuàng)建類實例方式),調(diào)用數(shù)據(jù)訪問類里的相應函數(shù)完成相關功能,如建立數(shù)據(jù)庫連接、打開和關閉數(shù)據(jù)庫、對數(shù)據(jù)庫執(zhí)行查詢、插入、刪除和更新操作、頁面登陸檢驗等。</p><p> 此處列舉Conn類(數(shù)據(jù)訪問類)中主要函數(shù)的源碼:</p><p> public class Conn</p><p>&
79、lt;b> {</b></p><p> // 建立數(shù)據(jù)庫連接字符串</p><p> public OleDbConnection Lb_Conn=new OleDbConnection(strConn);</p><p> public static string strConn //通過創(chuàng)建一個屬性來連接數(shù)據(jù)庫</p>
80、<p><b> {</b></p><p> get //使用get方法返回此屬性的值</p><p><b> {</b></p><p> StringBuilder strResult = new StringBuilder();</p><p> strRes
81、ult.Append("Provider = Microsoft.Jet.OLEDB.4.0");</p><p> strResult.Append("; ");</p><p> strResult.Append("Data Source = ");</p><p> strResult.Appe
82、nd(HttpContext.Current.Server.MapPath("."));</p><p> //HttpContext應用程序上下文類,Current屬性表示進程中當前請</p><p> //求的上下文,MapPath()方法表示返回與Web服務器上的指定虛</p><p> //擬路徑相對應的物理文件路徑,此處作用是創(chuàng)建
83、數(shù)據(jù)庫文件的虛擬路徑 </p><p> strResult.Append("\\");</p><p> strResult.Append(ConfigurationSettings.AppSettings["MdbPath"]);</p><p> //從配置文件中取到數(shù)據(jù)庫連接字符串,“MdbPath”為W
84、eb.config</p><p> //文件中的鍵/值對所設置的key值</p><p> return strResult.ToString(); //返回字符串類型</p><p><b> }</b></p><p><b> } </b></p><p>
85、 public OleDbDataReader ExecuteOleDbDataReader(string strSql)</p><p> { //此函數(shù)表示從數(shù)據(jù)庫讀取數(shù)據(jù)時以只進只讀的行流的方式進行</p><p> OleDbCommand cmd=new OleDbCommand(strSql,Lb_Conn);</p><p> OleDb
86、DataReader rd=cmd.ExecuteReader();</p><p> //通過調(diào)用對象OleDbCommand的ExecuteReader()方法創(chuàng)建//OleDbDataReader對象</p><p> return rd;</p><p><b> }</b></p><p> publi
87、c DataSet CreateDataSet(string strSql,string tableName)</p><p><b> {</b></p><p> OleDbDataAdapter da=new OleDbDataAdapter(strSql,Lb_Conn);</p><p> //創(chuàng)建DataAdapter類實例,
88、可用于填充DataSet對象和檢索、更新數(shù)據(jù)</p><p> DataSet dst=new DataSet();</p><p> da.Fill(dst,tableName);</p><p> //填充DataSet(數(shù)據(jù)集)中的一個表</p><p> return dst;</p><p><
89、b> }</b></p><p> public int ExecuteSql(string strSql) </p><p><b> {</b></p><p> OleDbCommand cmd2=new OleDbCommand(strSql,Lb_Conn);</p><p> i
90、ntresult=cmd2.ExecuteNonQuery();</p><p> //對數(shù)據(jù)庫執(zhí)行插入、刪除和更新等操作,返回影響數(shù)據(jù)庫記錄的行數(shù)</p><p> return result;</p><p><b> }</b></p><p><b> }</b></p>
91、;<p> '數(shù)據(jù)起始位置:2個CRLF開始 </p><p> DataStart = InStrB(PosOpenBoundary,FormData,str2bin(VbCrLf & VbCrLf)) + 4 </p><p> If FormFileName 〈〉 "" Then </p><p> &
92、#39;數(shù)據(jù)長度,減1是因為數(shù)據(jù)文件的存取字節(jié)數(shù)問題(可能是AppendChunk方法的問題): </p><p> '由于字節(jié)數(shù)為奇數(shù)的圖象存到數(shù)據(jù)庫時會去掉最后一個字符導致圖象不能正確顯示, </p><p> '字節(jié)數(shù)為偶數(shù)的數(shù)據(jù)文件就不會出現(xiàn)這個問題,因此必須保持字節(jié)數(shù)為偶數(shù)。 </p><p> DataSize = InStrB(D
93、ataStart,FormData,DivStr) - DataStart - 1 </p><p> FormFieldData = MidB(FormData,DataStart,DataSize) </p><p><b> Else </b></p><p> '數(shù)據(jù)長度,減2是因為分隔標志串前有一個CRLF </p
94、><p> DataSize = InStrB(DataStart,FormData,DivStr) - DataStart - 2 </p><p> FormFieldData = bin2str(MidB(FormData,DataStart,DataSize)) </p><p><b> End If </b></p>
95、<p> '建立一個Dictionary集存儲Form中各個Field的相關數(shù)據(jù) </p><p> Set Field = CreateUploadField() </p><p> Field.Name = FormFieldName </p><p> Field.FilePath = FormFileName </p>
96、<p> Field.FileName = GetFileName(FormFileName) </p><p> Field.ContentType = FormFileCT </p><p> Field.Length = LenB(FormFieldData) </p><p> Field.Value = FormFieldData &
97、lt;/p><p> Fields.Add FormFieldName, Field </p><p> PosOpenBoundary = PosCloseBoundary </p><p> PosCloseBoundary = InStrB(PosOpenBoundary + 1,FormData,DivStr) </p><p>&
98、lt;b> Wend </b></p><p> Set GetUpload = Fields </p><p> End Function </p><p> '把二進制字符串轉(zhuǎn)換成普通字符串函數(shù) </p><p> Function bin2str(binstr) </p><p&g
99、t; Dim varlen,clow,ccc,skipflag </p><p> '中文字符Skip標志 </p><p> skipflag=0 </p><p><b> ccc = "" </b></p><p> If Not IsNull(binstr) Then <
100、;/p><p> varlen=LenB(binstr) </p><p> For i=1 To varlen </p><p> If skipflag=0 Then </p><p> clow = MidB(binstr,i,1) </p><p> '判斷是否中文的字符 </p>
101、<p> If AscB(clow) 〉 127 Then </p><p> 'AscW會把二進制的中文雙字節(jié)字符高位和低位反轉(zhuǎn),所以要先把中文的高低位反轉(zhuǎn) </p><p> ccc =ccc & Chr(AscW(MidB(binstr,i+1,1) & clow)) </p><p> skipflag=1 <
102、/p><p><b> Else </b></p><p> ccc = ccc & Chr(AscB(clow)) </p><p><b> End If </b></p><p><b> Else </b></p><p> ski
103、pflag=0 </p><p><b> End If </b></p><p><b> Next </b></p><p><b> End If </b></p><p> bin2str = ccc </p><p> End Fun
104、ction </p><p> '把普通字符串轉(zhuǎn)成二進制字符串函數(shù) </p><p> Function str2bin(varstr) </p><p> str2bin="" </p><p> For i=1 To Len(varstr) </p><p> varchar=
105、mid(varstr,i,1) </p><p> varasc = Asc(varchar) </p><p> ' asc對中文字符求出來的值可能為負數(shù), </p><p> ' 加上65536就可求出它的無符號數(shù)值 </p><p> ' -1在機器內(nèi)是用補碼表示的0xffff, </p>
106、<p> ' 其無符號值為65535,65535=-1+65536 </p><p> ' 其他負數(shù)依次類推。 </p><p> If varasc〈0 Then </p><p> varasc = varasc + 65535 </p><p><b> End If </b>&
107、lt;/p><p> '對中文的處理:把雙字節(jié)低位和高位分開 </p><p> If varasc〉255 Then </p><p> varlow = Left(Hex(Asc(varchar)),2) </p><p> varhigh = right(Hex(Asc(varchar)),2) </p>&l
108、t;p> str2bin = str2bin & chrB("&H" & varlow) & chrB("&H" & varhigh) </p><p><b> Else </b></p><p> str2bin = str2bin & chrB(AscB(
109、varchar)) </p><p><b> End If </b></p><p><b> Next </b></p><p> End Function </p><p> '取得文件名(去掉Path) </p><p> Function GetF
110、ileName(FullPath) </p><p> If FullPath 〈〉 "" Then </p><p> FullPath = StrReverse(FullPath) </p><p> FullPath = Left(FullPath, InStr(1, FullPath, "\") - 1) <
111、;/p><p> GetFileName = StrReverse(FullPath) </p><p><b> Else </b></p><p> GetFileName = "" </p><p><b> End If </b></p><p&g
112、t; End Function </p><p> 〈/SCRIPT〉 </p><p> 〈SCRIPT RUNAT=SERVER LANGUAGE=JSCRIPT〉 </p><p> function CreateUploadField(){ return new uf_Init() } </p><p> function
113、uf_Init(){ </p><p> this.Name = null </p><p> this.FileName = null </p><p> this.FilePath = null </p><p> this.ContentType = null </p><p> this.Value
114、= null </p><p> this.Length = null </p><p><b> } </b></p><p><b> 〈/SCRIPT〉</b></p><p><b> //新聞添加</b></p><p> 〈!--#
115、include file="news_session.asp"--〉</p><p><b> 〈html〉</b></p><p><b> 〈head〉 </b></p><p> 〈meta http-equiv="Content-Language" content=&q
116、uot;zh-cn"〉</p><p> 〈meta http-equiv="Content-Type" content="text/html; charset=gb2312"〉</p><p> 〈style type="text/css"〉</p><p> .buttonface {&
117、lt;/p><p> BACKGROUND-COLOR: #0079F2; BORDER-BOTTOM: #333333 1px outset; BORDER-LEFT: #333333 1px outset; BORDER-RIGHT: #ffffff 1px outset; BORDER-TOP: #ffffff 1px outset; COLOR: #ffffff; FONT-SIZE: 9pta { col
118、or: #000000; text-decoration: none}</p><p><b> 〈/style〉</b></p><p> 〈SCRIPT ID=clientEventHandlersJS LANGUAGE=javascript〉 </p><p><b> 〈!-- </b></p>
119、<p> function client_onblur(ii) { </p><p> server=eval("form1.server"+ii) </p><p> if(server.value==""){ </p><p> client=eval("form1.client"+
120、ii) </p><p> clientvalue=client.value+"" </p><p> varlen=clientvalue.length </p><p> a=clientvalue.lastIndexOf('\\') </p><p> clientvalue=clientva
121、lue.substring(a+1)</p><p> //alert(clientvalue); </p><p> server.value=clientvalue </p><p><b> } </b></p><p><b> } </b></p><p>
122、 function form1_onsubmit() { </p><p> for(i=1;i〈1;i++){ </p><p> client=eval("form1.client"+i) </p><p> server=eval("form1.server"+i) </p><p>
123、if(client.value!="" && server.value==""){alert("上傳后的文件名不能空!");server.focus();return false} </p><p><b> } </b></p><p><b> } </b><
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文——新聞系統(tǒng)
- 新聞系畢業(yè)論文參考選題
- web校園新聞系統(tǒng)課程設計
- 畢業(yè)論文——基于web的學校新聞發(fā)布系統(tǒng)
- 畢業(yè)論文——基于web的學校新聞發(fā)布系統(tǒng)
- 畢業(yè)論文——基于web的學校新聞發(fā)布系統(tǒng)
- 基于web的校園新聞發(fā)布系統(tǒng)畢業(yè)論文
- 畢業(yè)論文(設計)-基于web的學校新聞發(fā)布系統(tǒng)
- 畢業(yè)論文(設計)基于web的學校新聞發(fā)布系統(tǒng)
- 畢業(yè)論文(設計)基于web的校園新聞發(fā)布系統(tǒng)
- web課程設計--校內(nèi)新聞系統(tǒng)的設計與開發(fā)
- 淺析“數(shù)字時代”下攝影記者的職業(yè)素質(zhì)新聞系畢業(yè)論文
- 基于web新聞發(fā)布系統(tǒng)的設計與實現(xiàn)畢業(yè)論文
- 基于web的校園新聞發(fā)布系統(tǒng)畢業(yè)論文開題報告
- 新聞發(fā)布系統(tǒng)畢業(yè)論文
- 新聞發(fā)布系統(tǒng)畢業(yè)論文
- 新聞發(fā)布系統(tǒng)畢業(yè)論文
- 新聞發(fā)布系統(tǒng)畢業(yè)論文
- 畢業(yè)論文——新聞發(fā)布系統(tǒng)
- 新聞發(fā)布系統(tǒng)畢業(yè)論文
評論
0/150
提交評論