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

正文內(nèi)容

基于net的數(shù)據(jù)庫(kù)對(duì)象化訪問開發(fā)框架的構(gòu)建與應(yīng)用碩士學(xué)位論文(編輯修改稿)

2025-07-24 18:47 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 的通信方法。 從功能的角度來(lái)看,WCF完全可以看作是ASMX,.Net Remoting,Enterprise Service,WSE,MSMQ等技術(shù)的并集。(注:這種說(shuō)法僅僅是從功能的角度。事實(shí)上WCF遠(yuǎn)非簡(jiǎn)單的并集這樣簡(jiǎn)單,它是真正面向服務(wù)的產(chǎn)品,它已經(jīng)改變了通常的開發(fā)模式)因此,利用WCF,就可以解決包括安全、可信賴、互操作、跨平臺(tái)通信等等需求。 Remoting,ASMX等各種技術(shù)了[27]。 第三章 ThinkWide框架的設(shè)計(jì)第三章 ThinkWide框架的需求分析與設(shè)計(jì) 框架需求分析對(duì)于一個(gè)ORM框架,基本的功能需求歸納起來(lái)就是創(chuàng)建、讀、寫、刪除對(duì)象的操作。底層的存儲(chǔ)機(jī)制可能是文件數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)數(shù)據(jù)庫(kù)等,在大多數(shù)的業(yè)務(wù)應(yīng)用系統(tǒng)中,尤其是數(shù)據(jù)結(jié)構(gòu)復(fù)雜的業(yè)務(wù)系統(tǒng),網(wǎng)絡(luò)數(shù)據(jù)庫(kù)一般是首選。當(dāng)前主要流行的ORM框架:。分別代表了2大類框架。 NHibernate 框架優(yōu)缺點(diǎn)分析,用來(lái)把對(duì)象模型表示的對(duì)象映射到基于SQL的關(guān)系模型數(shù)據(jù)結(jié)構(gòu)中去。NHibernate的目標(biāo)主要是用于與數(shù)據(jù)持久化相關(guān)的編程任務(wù),能夠使開發(fā)人員從原來(lái)枯燥的SQL語(yǔ)句的編寫中解放出來(lái),解放出來(lái)的精力可以讓開發(fā)人員投入到業(yè)務(wù)邏輯的實(shí)現(xiàn)上。對(duì)于以數(shù)據(jù)為中心的程序,開發(fā)人員往往是在數(shù)據(jù)庫(kù)中使用存儲(chǔ)過(guò)程來(lái)實(shí)現(xiàn)商業(yè)邏輯,這種情況下NHibernate可能不是最好的解決方案,并且能夠?qū)崿F(xiàn)OO業(yè)務(wù)模型和商業(yè)邏輯的中間層應(yīng)用,NHibernate是最有用的。NHibernate可以幫助用戶消除或者包裝那些針對(duì)特定廠商的SQL代碼,并且?guī)陀脩舭呀Y(jié)果集從表格式的表示形式轉(zhuǎn)換成一系列的對(duì)象。NHibernate是一個(gè)目前應(yīng)用的最廣泛的開放源代碼的對(duì)象關(guān)系映射框架,使得程序員可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)。NHibernate 對(duì)象到關(guān)系型數(shù)據(jù)庫(kù)。NHibernate 為你處理這些,遠(yuǎn)勝于你不得不寫SQL去從數(shù)據(jù)庫(kù)存取對(duì)象。你的代碼僅僅和對(duì)象關(guān)聯(lián),NHibernat 自動(dòng)產(chǎn)生SQL語(yǔ)句,并確保對(duì)象提交到正確的表和字段中去[24]。NHibernate體系結(jié)構(gòu)圖如下: NHibernate體系結(jié)構(gòu)(1)供持久化服務(wù)(和持久化的對(duì)象)。(2)SessionFactory():它是Session的工廠,是ConnectionProvider的客戶??梢猿钟幸粋€(gè)可選的(第二級(jí))數(shù)據(jù)緩存,可以在進(jìn)程級(jí)別或集群級(jí)別保存的可以在事物中重用的數(shù)據(jù)。(3)會(huì)話():單線程,生命期較短的對(duì)象,代表應(yīng)用程序和持久化層之間的一次對(duì)話。,也是Transaction的工廠。保存有必需的(第一級(jí))持久化對(duì)象的緩存,用于遍歷對(duì)象圖,或者通過(guò)標(biāo)識(shí)符查找對(duì)象。(4)持久化對(duì)象(persistent)其集合(Collections):生命期較短的單線程的對(duì)象,包含了持久化狀態(tài)和商業(yè)功能。這些可能是普通的對(duì)象,唯一特別的是現(xiàn)在從屬于且僅從屬于一個(gè)Session。一旦Session被關(guān)閉,它們都將從Session中取消聯(lián)系,可以在任何程序?qū)幼杂墒褂茫ū热?,直接作為傳送到表現(xiàn)層的DTO,數(shù)據(jù)傳輸對(duì)象)。(5)臨時(shí)對(duì)象(Transient Object)及其集合(Collection):目前沒有從屬于一個(gè)Session的持久化類的實(shí)例。這些可能是剛剛被程序?qū)嵗?,還沒有來(lái)得及被持久化,或者是被一個(gè)已經(jīng)關(guān)閉的Session實(shí)例化。(6)事務(wù)Transaction ():?jiǎn)尉€程,生命期較短的對(duì)象,應(yīng)用程序用其來(lái)表示一批工作的原子操作。一個(gè)Session在某些情況下可能跨越多個(gè)Transaction事務(wù)。(7)ConnectionProvider:。從底層的IDbConnection抽象而來(lái)。對(duì)應(yīng)用程序不可見,但可以被開發(fā)者擴(kuò)展/實(shí)現(xiàn)。(8)TransactionFactory:事務(wù)實(shí)例的工廠。對(duì)應(yīng)用程序不可見,但可以被開發(fā)者擴(kuò)展/實(shí)現(xiàn)。雖然NHibernate框架很強(qiáng)大,封裝也比較全面,有它優(yōu)秀的地方,但是在某些方面中還是有不足的地方,以下總結(jié)了NHibernate框架的優(yōu)缺點(diǎn)。(1)完全的ORM框架。 NHibernate對(duì)數(shù)據(jù)庫(kù)結(jié)構(gòu)提供了較為完整的封裝,它將數(shù)據(jù)庫(kù)模式映射為較完全的對(duì)象模型,支持封裝,繼續(xù)機(jī)制,功能較強(qiáng)大,比一般的ORM靈活性高。 開發(fā)人員可以完全按照對(duì)象模型操縱數(shù)據(jù)庫(kù)。 (2)代碼自動(dòng)生成,減少代碼和sql的開發(fā)量,使開發(fā)人員擺脫開sql,緩存等底層。 NHibernate的ORM實(shí)現(xiàn)了對(duì)象 和數(shù)據(jù)庫(kù)表之間的映射,以及SQL 的自動(dòng)生成和執(zhí)行。程序員往往只需定義好了對(duì)象到數(shù)據(jù)庫(kù)表的映射關(guān)系,即可通過(guò)NHibernate提供的方法完成持久層操作。程序員甚至不需要對(duì)SQL 的熟練把握, NHibernate 會(huì)根據(jù)制定的存儲(chǔ)邏輯,自動(dòng)生成對(duì)應(yīng)的SQL 。NHibernate有工具可以直接根據(jù)數(shù)據(jù)庫(kù)模式生成對(duì)象類,或者通過(guò)在代碼中添加屬性自動(dòng)生成配置文件。 這些都減少了開發(fā)工作量。 (3)較好的文檔支持。 NHibernate的代碼可讀性和文檔都比較好。 (1)較復(fù)雜,學(xué)習(xí)曲線大。 (2)對(duì)數(shù)據(jù)庫(kù)模式有較高的要求。NHibernate需要數(shù)據(jù)庫(kù)有良好的設(shè)計(jì)和比較完善的約束。 (3)不適合統(tǒng)計(jì)查詢系統(tǒng)。對(duì)于多表連查,復(fù)雜的sql實(shí)現(xiàn)比較復(fù)雜,而且有可能需要借助其他方案。 (4)需要大量的xml配置文件,大大增加了開發(fā)和維護(hù)的工作量。 框架優(yōu)缺點(diǎn)分析,但是它并不是一種很正統(tǒng)的ORM解決方案。因?yàn)樗幌馧Hibernate那樣,具備全自動(dòng)的數(shù)據(jù)操作,包括查詢,插入,更新,刪除;也沒有像它那樣,與數(shù)據(jù)庫(kù)的約束關(guān)系有緊密的聯(lián)系。我們需要自己來(lái)控制SQL語(yǔ)句,這樣做有好處在于,我們可以更靈活地根據(jù)我們的需求,編寫更加具備性能,功能優(yōu)勢(shì)的SQL語(yǔ)句,但它的缺點(diǎn)同樣明顯,我們還是需要管理和編寫SQL語(yǔ)句。我們只需要提供這些SQL語(yǔ)句,和為它提供它所需的參數(shù)外,接下來(lái)的事情就無(wú)需我們參與了。,也是它為我們所做最多的工作了。根據(jù)配置好的SQL語(yǔ)句和參數(shù)條件,它會(huì)動(dòng)態(tài)生成一條可執(zhí)行的SQL語(yǔ)句,然后根據(jù)具體傳進(jìn)來(lái)的參數(shù)值,為這些SQL參數(shù)提供不同的具體值。然后根據(jù)配置好的數(shù)據(jù)訪問驅(qū)動(dòng),自動(dòng)執(zhí)行SQL語(yǔ)句。如果系統(tǒng)比較大的話,可能就需要很多的配置文件了??v觀目前主流的 ORM,都對(duì)數(shù)據(jù)庫(kù)結(jié)構(gòu)提供了較為完整的封裝,提供了從實(shí)體類到數(shù)據(jù)庫(kù)表的全套映射機(jī)制。程序員往往只需定義好了實(shí)體到數(shù)據(jù)庫(kù)表的映射關(guān)系,即可通過(guò)ORM提供的方法完成持久層操作。程序員甚至不需要對(duì) SQL 的熟練掌握,ORM會(huì)根據(jù)制定的存儲(chǔ)邏輯,自動(dòng)生成對(duì)應(yīng)的 SQL 并調(diào)用 接口加以執(zhí)行。,則在于實(shí)體類與 SQL之間的映射關(guān)系。也就是說(shuō), SQL 執(zhí)行。具體的 SQL 需要程序員編寫,然后通過(guò)映射配置文件,將SQL所需的參數(shù),以及返回的結(jié)果字段映射到指定實(shí)體類上。,對(duì)業(yè)務(wù)邏輯實(shí)現(xiàn)人員而言,面對(duì)的是純粹的對(duì)象,這一層與通過(guò) NHibernate等實(shí)現(xiàn)的ORM 而言基本一致,而對(duì)于具體的數(shù)據(jù)操作,NHibernate會(huì)自動(dòng)生成SQL 語(yǔ)句, SQL 語(yǔ)句。相對(duì)NHibernate等ORM機(jī)制而言, SQL開發(fā)的工作量和數(shù)據(jù)庫(kù)移植性上的讓步,為系統(tǒng)設(shè)計(jì)提供了更大的自由空間。作為正統(tǒng)ORM實(shí)現(xiàn)的一種有益補(bǔ)充。然而同NHibernate框架一樣,也存在不足的地方。e (1)在簡(jiǎn)單(不涉及分布式)事務(wù)中也可以使用聲明式的事務(wù)處理方法,而不必使用容器等設(shè)置。(2)用戶根本不需要考慮是簡(jiǎn)單事務(wù)還是分布式事務(wù)。它實(shí)現(xiàn)一種所謂自動(dòng)提升事務(wù)機(jī)制(Promotable Transaction),會(huì)自動(dòng)根據(jù)事務(wù)中涉及的對(duì)象資源判斷使用何種事務(wù)管理器。簡(jiǎn)而言之,對(duì)于任何的事務(wù)用戶只要使用同一種方法進(jìn)行處理。(1)手寫SQL容易出錯(cuò),工作量比較大。沒有提供有效的自動(dòng)生成工具。(2)需要大量的xml配置文件,維護(hù)的工作量也不小。 框架需求總結(jié)從上文的分析可以得出,NHibernate主要用于大型系統(tǒng),實(shí)現(xiàn)了完全的對(duì)象模型,支持封裝,繼續(xù)機(jī)制等,開發(fā)人員可以完全按照對(duì)象模型操縱數(shù)據(jù)庫(kù)。但是其較復(fù)雜,學(xué)習(xí)曲線大。對(duì)數(shù)據(jù)庫(kù)模式要求較高,需要數(shù)據(jù)庫(kù)有良好的設(shè)計(jì)和比較完善的約束。讀取數(shù)據(jù)效率較低,不適合統(tǒng)計(jì)查詢系統(tǒng)。,其特點(diǎn)是簡(jiǎn)單,實(shí)用。但是其必須需要編寫SQL,容易出錯(cuò),也不夠自動(dòng)化。如果用于大型系統(tǒng)其維護(hù)量將是非常巨大的。分析各類框架的特點(diǎn),整合出一個(gè)比較實(shí)用的框架設(shè)計(jì)理念,應(yīng)該支持以下的幾種需求:(1)支持多種數(shù)據(jù)庫(kù),比如主流的數(shù)據(jù)庫(kù)MSSQL,Oracle,DB2,My SQL,Access等;(2)對(duì)底層存儲(chǔ)機(jī)制的完全屏蔽。對(duì)象僅僅需要使用存取方法,不必關(guān)心對(duì)象實(shí)體如何實(shí)現(xiàn)存儲(chǔ)和讀??;(3)對(duì)對(duì)象集合操作的支持。諸如對(duì)象查詢操作等經(jīng)常涉及對(duì)象集合的操作,需要提供相應(yīng)的方法同時(shí)返回多個(gè)數(shù)據(jù)集合;(4)事務(wù)的支持。對(duì)事務(wù)的支持程度有多種選擇,可以只支持一般的事務(wù),也可以支持嵌套事務(wù)和長(zhǎng)事務(wù);(5)良好的可擴(kuò)展性??勺杂蓴U(kuò)展對(duì)其他非主流數(shù)據(jù)庫(kù)的支持;(6)提供比較完備的配置方案,包含數(shù)據(jù)庫(kù)配置,數(shù)據(jù)傳輸配置,以及業(yè)務(wù)邏輯配置等;(7)支持多種體系結(jié)構(gòu)。比如對(duì)Client/Server 兩層體系結(jié)構(gòu)的支持或者Browse/Server 多層體系結(jié)構(gòu)的支持;(8)支持存儲(chǔ)過(guò)程對(duì)象化訪問,多數(shù)ORM在存儲(chǔ)過(guò)程支持上比較薄弱,然而存儲(chǔ)過(guò)程是大型系統(tǒng)所必須使用的一項(xiàng)技術(shù),只有對(duì)其全面的支持才能在大型系統(tǒng)中有較強(qiáng)的實(shí)用性;(9)對(duì)視圖對(duì)象的直接支持,可以提高系統(tǒng)靈活性和查詢速度;(10)支持多數(shù)據(jù)傳輸?shù)哪J饺鏦eb Service ,WCF , Remoting等。(11)支持直接的SQL 查詢。雖然不建議直接使用SQL查詢但是多數(shù)情況下為了滿足業(yè)務(wù)邏輯的需求必須使用的時(shí)候,如果框架支持靈活的SQL查詢就能夠提供有效的技術(shù)支撐??偠灾琌RM的功能應(yīng)該盡量使的開發(fā)者能夠減少程序開發(fā)工作中繁瑣的數(shù)據(jù)讀取、保存、傳輸?shù)确矫娴拈_發(fā)量,集中精力實(shí)現(xiàn)應(yīng)用系統(tǒng)的邏輯,而不必在對(duì)象數(shù)據(jù)的存儲(chǔ)上分散過(guò)多的精力。 框架設(shè)計(jì)目標(biāo)通用的ORM框架主要以關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)作為底層數(shù)據(jù)庫(kù)管理系統(tǒng),在關(guān)系數(shù)據(jù)上實(shí)現(xiàn)一層模擬的面向?qū)ο髮?,使得上層?yīng)用能夠以面向?qū)ο笏枷肟煽俊⒎奖愕卮嫒?shù)據(jù),建立數(shù)據(jù)轉(zhuǎn)換層可以完成應(yīng)用層的面向?qū)ο蟮臄?shù)據(jù)模型和底層關(guān)系數(shù)據(jù)庫(kù)的關(guān)系模型的映射,從而實(shí)現(xiàn)以對(duì)象方式操作這些數(shù)據(jù)。使得開發(fā)人員面對(duì)的數(shù)據(jù)庫(kù)是面向?qū)ο蟮?,而不再是一個(gè)關(guān)系數(shù)據(jù)庫(kù),它不必關(guān)心也根本感覺不到對(duì)象所依賴的表以及表之間的關(guān)系,而是直接以面向?qū)ο蟮姆绞綄?duì)所有應(yīng)用邏輯對(duì)象進(jìn)行存儲(chǔ)、操作。所有的面向?qū)ο蟮恼Z(yǔ)義由轉(zhuǎn)換層自動(dòng)解釋,再轉(zhuǎn)化為關(guān)系數(shù)據(jù)庫(kù)的具體操作,完成從對(duì)象到關(guān)系的映射。 的數(shù)據(jù)訪問功能,可以運(yùn)行在提供了驅(qū)動(dòng)程序的通用關(guān)系數(shù)據(jù)庫(kù)上,不依賴特定的關(guān)系數(shù)據(jù)庫(kù),使得整個(gè)系統(tǒng)在不同的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(如SQL Server 和Oracle 等數(shù)據(jù)庫(kù))之間的移植非常的方便。這也是主流ORM框架的最基本設(shè)計(jì)目標(biāo)。傳統(tǒng)的ORM框架主要解決了本地或網(wǎng)絡(luò)數(shù)據(jù)庫(kù)的鏈接和讀取,主要在局域網(wǎng)內(nèi)應(yīng)用,無(wú)法直接支持跨網(wǎng)絡(luò)協(xié)議的應(yīng)用。本框架設(shè)計(jì)目標(biāo)的亮點(diǎn)是在框架底層實(shí)現(xiàn)透明的遠(yuǎn)距離的數(shù)據(jù)傳輸服務(wù)。通過(guò)Web Service ,WCF , Remoting等技術(shù)。上層功能模塊無(wú)需知道到數(shù)據(jù)通過(guò)何種方式傳輸,也無(wú)需知道數(shù)據(jù)保存在于何處,這一切都由框架自動(dòng)實(shí)現(xiàn),讀取數(shù)據(jù)和保存數(shù)據(jù)就如本地文件一樣方便和高效,這也為以后擴(kuò)展云計(jì)算、通用數(shù)據(jù)轉(zhuǎn)換等應(yīng)用提供了有效的支撐。作為一種ORM框架既要功能強(qiáng)大又要使用簡(jiǎn)單和靈活。如同NHibernate那樣實(shí)現(xiàn)比較全面的功能。此外由于開發(fā)的業(yè)務(wù)需求千變?nèi)f化,無(wú)窮無(wú)盡。作為一種具有較強(qiáng)生命力的框架,必須能夠?qū)I(yè)務(wù)的變化實(shí)現(xiàn)較強(qiáng)的適應(yīng)能力。因此,本框架還需提供一種比較全面和靈活的配置方案。有了配置模塊對(duì)于快速開發(fā)應(yīng)用系統(tǒng)以及后期的維護(hù)系統(tǒng)都有極大的價(jià)值和意義。 框架架構(gòu)設(shè)計(jì)基于以上的不同框架需求提出了一種ThinkWide (下文簡(jiǎn)稱ThinkWide框架),這是一種支持Net 、C。實(shí)現(xiàn)比較完全的ORM功能,能夠減少開發(fā)人員的工作量,最大程度提升開發(fā)效率,同時(shí)兼顧靈活性及可伸縮性。是一種相對(duì)更加完整的軟件應(yīng)用解決方案,采用了當(dāng)前比較前瞻性的軟件技術(shù),主要包含數(shù)據(jù)訪問層,數(shù)據(jù)服務(wù)層,數(shù)據(jù)對(duì)象封裝層,業(yè)務(wù)層邏輯,以及配置層,界面表示層等。(1)靈活的O/R映射,更加簡(jiǎn)潔的代碼。相對(duì)于NHibernate更加靈活和方便。(2)提供比較強(qiáng)大的實(shí)體類生成工具,免除手寫實(shí)體的工作量 。(3)動(dòng)態(tài)實(shí)體類工廠,運(yùn)行時(shí)動(dòng)態(tài)對(duì)象及緩存實(shí)體類接口的實(shí)現(xiàn)類。(4)基于Provider模式的可擴(kuò)展持久化數(shù)據(jù)庫(kù)源支持?!。?)支持多種數(shù)據(jù)庫(kù)源,提供開放的數(shù)據(jù)庫(kù)接口。(6)基于范型的強(qiáng)類型實(shí)體持久化及數(shù)據(jù)訪問接口 。(7)基于容器的分布式服務(wù)工廠,透明的分布式服務(wù)調(diào)用和分發(fā) ?!。?)支持WebService,Remoting,WCF等數(shù)據(jù)傳輸服務(wù),而無(wú)需修改任何代碼。 ThinkWide框架整體結(jié)構(gòu)圖在實(shí)際操作過(guò)程中,這些層大都可以單獨(dú)使用。ThinkWide框架采用模塊化設(shè)計(jì),使用了提高模塊訪問性能的多種設(shè)計(jì)模式,每個(gè)類層次完成特定的功能,具有很好的高內(nèi)聚、低耦合特性,而且在模塊的可擴(kuò)展性方面也進(jìn)行了充分的考慮。在盡量滿足上面所描述的功能外,ThinkWide框架在結(jié)構(gòu)層次、可擴(kuò)展性、模塊化方面突出了自己的特點(diǎn)。和其他主流框架對(duì)比,本框架在部分功能上有所創(chuàng)新,特別是在遠(yuǎn)程數(shù)據(jù)訪問以及支持更多的數(shù)據(jù)庫(kù)對(duì)象上更加完善。特點(diǎn)如下:(1)本框架支持多數(shù)據(jù)傳輸?shù)哪J饺鏦eb Service ,WCF , Remoting等。,需要外部擴(kuò)展才能實(shí)現(xiàn)。(2)更好的支持存儲(chǔ)過(guò)程對(duì)象化訪問和視圖對(duì)象的對(duì)象化訪問。列如下面的代碼中Nhibernate調(diào)用存儲(chǔ)過(guò)程,參數(shù)customer_name并不是對(duì)象的一個(gè)屬性,(customer_name, 上汽)。這樣的代碼,增加調(diào)用存儲(chǔ)過(guò)程的配置。 sqlquer
點(diǎn)擊復(fù)制文檔內(nèi)容
語(yǔ)文相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1