freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計(jì)----個人博客系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-在線瀏覽

2025-02-03 18:07本頁面
  

【正文】 1 在三個方面為開發(fā)人員提供了關(guān)鍵改進(jìn):快速的應(yīng)用程序開發(fā) 、 高效的 團(tuán)隊(duì)協(xié)作 和 突破性的用戶體驗(yàn) 。 SQL Server 2021 數(shù)據(jù)庫 簡介 SQL Server 2021 是一個全面的數(shù)據(jù)庫平臺 , 使用集成的商業(yè)智能 (BI) 工具提供了企業(yè)級的數(shù)據(jù)管理。 SQL Server 2021已經(jīng) 與 Visual Studio 和 .NET Framework進(jìn)行了 集成 。 考慮到 SQL Server 2021 與 .NET 平臺的集成性和便利性 , 同時也 考慮到技術(shù)之間的銜接、系統(tǒng)的性能和運(yùn)行的穩(wěn)定性,所以本系統(tǒng)使用的是 SQL Server 2021 Express 數(shù)據(jù)庫。 經(jīng)過編譯, C編寫的源代碼被編譯為一種 符合 CLI 規(guī)范的中間語言( IL),通常是具 6 有擴(kuò)展名為 .exe 和 .dll 的文件。 本系統(tǒng)采用 C語言 來 開發(fā)各個組件、功能模塊。當(dāng) 在 編寫 應(yīng)用程序的代碼時,可以訪 問 .NET Framework 中的類。與傳統(tǒng) HTML 頁或基于客戶端的 Web 應(yīng)用程序中的事件相比,由 服務(wù)器控件引發(fā)的事件的工作方式稍有不同。在基于客戶端的應(yīng)用程序中,在客戶端引發(fā)和處理事件。 對于 在客戶端引發(fā)的事件, Web 控件事件模型要求在客戶端捕獲事件信息,并通過 HTTP POST 將事件消息傳輸?shù)椒?wù)器。 本系統(tǒng)中在 UI 層的表示層邏輯就是基于 的 Web 事件模型進(jìn)行編程的。 簡介 Microsoft 在開始設(shè)計(jì) .NET 框架時設(shè)計(jì)了一個新的數(shù)據(jù)訪問框架 。 提供兩種訪問模式: 斷開連接模式 和 連接模式 。 而使用連接模式是利用 DataReader 從數(shù)據(jù)庫中檢索只讀、只進(jìn)的數(shù)據(jù)流。使用 DataReader 可以提高應(yīng)用程序的性能,原因是它只要數(shù)據(jù)可用就立即檢索數(shù)據(jù),并且(默認(rèn)情況下)一次只在內(nèi)存中存儲一行,減少了系統(tǒng)開銷。如果大范圍的使用 DataSet,對系統(tǒng)的 7 壓力會增大很多。雖然可以構(gòu)建強(qiáng)類型的 DataSet,但是會增加大量的代碼。這樣會增大技術(shù)復(fù)雜度,這是沒有必要的。 Silverlight 技術(shù) 簡介 Microsoft Silverlight 是一種跨瀏覽器、跨平臺的用于為 Web 生成和提供下一代媒體體驗(yàn)和豐富的交互式應(yīng)用程序 (RIA)。 可以 采 用 C 和 編程語言 來編寫托管代碼,并可以全面使用 .NET 框架庫。 由于在開發(fā)上有 .NET 強(qiáng)大類庫的支撐,同時在 IDE上又有 Visual Studio 202 Blend2這樣的工具, 與服務(wù)器通信又有 WCF 這樣的技術(shù)做鋪墊。 WCF 簡介 Windows 通信基礎(chǔ)( Windows Communication Foundation, WCF) 是微軟分布式應(yīng)用程序開發(fā)的集大成者,它整合了 .Net 平臺下所有的和分布式系統(tǒng)有關(guān)的技術(shù),例如 .Net Remoting、 ASMX、 WSE 和 MSMQ。 WCF 可以支持的協(xié)議包括 TCP, HTTP,跨進(jìn)程以及自定義,安全模式則包括 SAML, Kerberos, X509,用戶 /密碼,自定義等多種標(biāo)準(zhǔn)與模式。 本系統(tǒng)也涉及部分 WCF 技術(shù),主要用在 Silverlight 與后臺數(shù)據(jù)的交互上。 這樣 WCF 與 Silverlight 兩種技術(shù)之間有了更好的銜接,同時這給我在系 8 統(tǒng)的開發(fā)中提供了很好的便利性。 jQuery 庫 簡介 jQuery由美國人 John Resig創(chuàng)建。它是輕量級的 js 庫 (壓縮后只有 21k),這是其它的 JavaScript 庫所不及的,它兼容CSS3,還兼容各種瀏覽器。 jquery 的簡單的實(shí)用的確有相當(dāng)大的吸引力 。 詳細(xì)的代碼請參見源碼部分。它的具體實(shí)現(xiàn),可能是接口,可能是抽象類,甚至可能是具體類。體現(xiàn)了自然界“如果你是??則必須能??”的理念。 具體到 N層架構(gòu)中,針對接口編程的意義是這樣的:現(xiàn)約定將 N層架構(gòu)的各層依次編號為 ?、 K、?、 N N,其中層的編號越大,則越處在上層,那么第 K 層不應(yīng)該依賴具體一個 K1 層,而應(yīng)該依賴一個 K1 層的接口,即在第 K 層中不應(yīng)該有 K1 層中的某個具體類。 它的核心思想是:不能讓高層組件依賴底層組件,而且,不管高層組件和底層組件,兩者都應(yīng)依賴于抽象。 9 綜上所述,本系統(tǒng)應(yīng)該是這樣一種架構(gòu): 1) N層架構(gòu)的各層依次編號為 ?、 K、?、 N N,其中層的編號越大,則越處在上層。 封裝變化 封裝變 化的原則定義為:找出應(yīng)用中可能需要變化之處,把它們獨(dú)立出來,不要和那些不需要變化的代碼混雜在一起。 單一職責(zé)原則 任何一個類都應(yīng)該有單一的職責(zé),屬于單獨(dú)的一層,而不能同時擔(dān)負(fù)兩種職責(zé)或?qū)儆诙喔鲗印?三層架構(gòu) 將數(shù)據(jù)訪問和邏輯操作都集中到組件中 ,增強(qiáng)了系統(tǒng)的復(fù)用性。模塊化使得系統(tǒng)很容易在縱向和水平兩個方向拓展: 一方面可以將系統(tǒng)升級為更大、更有力的平臺, 另一方面 也可以適當(dāng)增加規(guī)模來增強(qiáng)系統(tǒng)的網(wǎng)絡(luò)應(yīng)用。三層結(jié)構(gòu)適合群體開發(fā),每人可以有不同的分工,協(xié)同工作使效率倍增。 基于以上 優(yōu)點(diǎn) 本系統(tǒng)采用三層架構(gòu) 來開發(fā)。 ? 博客留言:代表一些人對博客的評價等信息。 ? 文章:就是文章實(shí)體,包含文章的基本信息,如標(biāo)題、內(nèi)容、發(fā)布時間等。 10 ? 文章評論:代表了對于莫一篇文章發(fā)表的評論。 ? 照片分類:代表照片的分類。以下是各個表的簡要說明: ? UserInfo:用戶 表。 ? Leavewords:留言表。 ? BlogInfo:博客表。 ? PhotoCategory:圖片分類表。 ? Photo:圖片表。 ? PostCategory:文章分類表。 ? Post:文章表。 ? Comment: 文章評論表。 11 圖 23完整顯示了整個系統(tǒng)設(shè)計(jì)到的表。存儲過程存儲在數(shù)據(jù)庫內(nèi),可由應(yīng)用程序通過一個調(diào)用執(zhí)行,而且允許聲明變量、有條件執(zhí)行以及其它強(qiáng)大的編程功能。 由于存儲過程在性能上和功能上相對于單個 SQL 語句有較大的優(yōu)勢,所以在系統(tǒng)中采用存儲過程。 圖 24 存儲過程 12 實(shí)體類的設(shè)計(jì) 與實(shí)現(xiàn) 實(shí)體類是對實(shí)體的封裝,它通常包括私有變量及對應(yīng)的 get、 set 方法,而在 C語言中,將 get、 set 方法又組合成屬性。實(shí)體類的作用主要有兩個,一是作為現(xiàn)實(shí)實(shí)體的計(jì)算機(jī)代表,二是數(shù)據(jù)的傳遞。這樣不但符合面向?qū)ο笤O(shè)計(jì)的原則,也便于對數(shù)據(jù)存取進(jìn)行控制。所以,它不應(yīng)該有方法,當(dāng)然構(gòu)造函數(shù)除外。準(zhǔn)確表明實(shí)體類應(yīng)該準(zhǔn)確無誤地表示現(xiàn)實(shí)中的實(shí)體,干凈表示實(shí)體類應(yīng)該僅包含數(shù)據(jù) 的封裝而不摻雜任何邏輯或者與數(shù)據(jù)封裝無關(guān)的東西,易用表示實(shí)體類應(yīng)該很容易地用來在各層之間傳遞數(shù)據(jù)。詳細(xì)信息請參見相關(guān)代碼。 圖 25 實(shí)體類庫 接口 設(shè)計(jì) 接口有以下幾個作用: ? 接口明確了各層次的職責(zé)。 ? 接口形成了整個分層架構(gòu)的骨架 。 因此,接口的設(shè)計(jì)實(shí)際上處在現(xiàn)實(shí)需求和程序?qū)崿F(xiàn)之間,起到承上啟下的用。所以接口的設(shè)計(jì)應(yīng)該在需求分析的基礎(chǔ)上進(jìn)行。 數(shù)據(jù)訪問層接口 數(shù)據(jù)訪問層負(fù)責(zé)與數(shù)據(jù)源的交互,負(fù)責(zé)數(shù)據(jù)的創(chuàng)建、刪除、更新及查詢工作。它與數(shù)據(jù)庫系統(tǒng)一起負(fù)責(zé)數(shù)據(jù)完整性。 這樣在開發(fā)系統(tǒng)中將可變因素減少到最少 ,這也就是分層架構(gòu)的最基本的思想:針對接口編程,而不針對實(shí)現(xiàn)編程 。 圖 26 數(shù)據(jù)訪問層接口 業(yè)務(wù)邏輯層接口 在設(shè)計(jì)業(yè)務(wù)邏輯層接口之前,需要對業(yè)務(wù)邏輯層的職責(zé)進(jìn)行明確。它對業(yè)務(wù)相關(guān)的數(shù)據(jù)有效性負(fù)責(zé),但是不負(fù)責(zé) UI 輸入數(shù)據(jù)的有效性。 由于不同領(lǐng)域的業(yè)務(wù)邏輯差別很大,所以無法像數(shù)據(jù)訪問層那樣對接口操作做出明確的分類。而在本 博客系統(tǒng) 中,由于 業(yè)務(wù)邏輯都是比較簡單的 ,所以不用進(jìn)行專門的領(lǐng)域邏輯調(diào)研。 14 圖 27 業(yè)務(wù)邏輯層接口 IoC 容器及依賴注入機(jī)制的設(shè)計(jì) IoC 容器及依賴注入機(jī)制的設(shè)計(jì) 依賴注入( Dependency Injection)和控制反轉(zhuǎn)( Inversion of Control)是同一個概念。但在具有依賴注入的系統(tǒng)里,創(chuàng)建被調(diào)用者的工作不再由調(diào)用者來完成,因此稱為控制反轉(zhuǎn)。 具體到分層架構(gòu)中,依賴注入可以這樣理解:當(dāng)上層類的需要調(diào)用下層類功能時,不再是由上層類直接實(shí)例化下層類,而是通過 IoC 容器獲取一個下層類的實(shí)例,然后注入到上層類中。 依賴注入機(jī)制的實(shí)現(xiàn)有兩種途徑,一種是使用現(xiàn)有的框架。另一種途徑,就是自己編寫相應(yīng)的代碼,完成依賴注入機(jī)制。 Abstract Factory 模式的應(yīng)用 Abstract Factory 模式是在依賴注入機(jī)制中廣泛采用的設(shè)計(jì)模式, Spring 的 IoC 容器就采用了這個經(jīng)典模式。 以數(shù)據(jù)訪問層注入到業(yè)務(wù)邏輯層為例(業(yè)務(wù)邏輯層注入到表示層的原理類似) ,先假設(shè) 該博客 系統(tǒng) 中 僅有用戶和 文章 兩個實(shí)體,并且我們的系統(tǒng)需要能訪問 SQLServer 和 15 Oracle 兩個數(shù)據(jù)庫,那么,系統(tǒng)中就需 要 SQLServerDAL 和 OracleDAL 兩個數(shù)據(jù)訪問層,它 們 都 含有 兩 個數(shù) 據(jù) 訪問 類 ,分 別 是 SQLServerUserDAL 、 SQLServerPostDAL 和 OracleUserDAL、 OraclePostDAL。 再 設(shè) 計(jì) SQLServerDALFactory 與 OracleDALFactory,分別作為生成兩種數(shù)據(jù)訪問層的工廠,最后通過 配置信息,決定在業(yè)務(wù)邏輯層中實(shí)例化哪個工廠 。 圖 28 Ioc容器注入原理 Abstract Factory 模式雖然可以完成依賴注入的機(jī)制的設(shè)計(jì),但是其本身也有缺陷。并且以后每當(dāng)添加一個新的實(shí)現(xiàn),都要寫一個相應(yīng)的工廠。 .NET 平臺上,有一種叫“反射”的機(jī)制,利用這種機(jī)制,可以簡化 Abstract Factory設(shè)計(jì)模式的代碼。 反射就是動態(tài)發(fā)現(xiàn)類型信息的能力。反射還支持的 16 更高級的行為,能在運(yùn)行時動態(tài)創(chuàng)建新類型,并且對這些新類型的操作進(jìn)行調(diào)用。如果考慮到性能和易用性,可以配合緩存機(jī)制和 Facade 設(shè)計(jì)模式進(jìn)一步優(yōu)化 IoC 的設(shè)計(jì)。 圖 29 反射工廠結(jié)構(gòu)圖 圖 210 反射工廠示意圖 在圖 210中 DALFactory 和 BLLFactory 的實(shí)例化箭頭直接指向了 IDAL 和 IBLL。 使用反射機(jī)制后,同一層次的不同實(shí)現(xiàn)分別放在不同工程下,而里面包含的各個類的名字是一致的。也就是說 決定了實(shí)例化哪個工程下的 UserInfoDAL。對于 ORM由于篇幅原因不做過多描述。 .NET 平臺內(nèi)置了豐富的對數(shù)據(jù)庫進(jìn)行操作的類庫,因此數(shù)據(jù)訪問層的樸素實(shí)現(xiàn)非常方便。 使用動態(tài) SQL 語句: 1. 獲取參數(shù)。 3. 執(zhí)行 SQL 語句。 使用存儲過程: 1. 獲取參數(shù)。 3. 調(diào)用存儲過程 。 存儲過程相對于動態(tài) SQL語句有一定的優(yōu)越性。在系統(tǒng)中 由于每次執(zhí)行 存儲過程 時,都需要一系列類似的操作,因此 我在系統(tǒng)中對這個模塊進(jìn)行了一次封裝 ,這樣可以大大減少重復(fù)性代碼。這樣,在 SQLServer 數(shù)據(jù)訪問層中,就可以直接調(diào)用這些方法完成操作。 18 圖 211 數(shù)據(jù)庫訪問層的樸素實(shí)現(xiàn) 本系統(tǒng)的 數(shù)據(jù)訪問模塊工程如圖 212 所示。實(shí)現(xiàn) IDAL 接口 ,主要包含各個實(shí)體所具有的操作。 2. Factory:類庫。 代碼分析一: ( ) /* * Create Time: 20211225 * Editor: Zhou Hui */ using System。 using 。 19 using 。 namespace { /// summary /// Control the cache class. /// /summary public sealed class CacheAccess { /// summary /// Get object from cache /// /summary /// param name=keyCache key/param /// returnsThe object get from cache/returns public static object GetFromCache(string key) { Cache cache = 。 } /// summary /// Save the object value to the cache /// /summary /// param name=keyCache k
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1