中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

ADO.NET實(shí)用技巧兩則
來(lái)源:易賢網(wǎng) 閱讀:1009 次 日期:2014-08-20 13:56:50
溫馨提示:易賢網(wǎng)小編為您整理了“ADO.NET實(shí)用技巧兩則”,方便廣大網(wǎng)友查閱!

要想充分發(fā)揮ADO.NET的優(yōu)勢(shì),不僅需要全面、深入理解ADO.NET編程模型,及時(shí)總結(jié)經(jīng)驗(yàn)、技巧也十分重要。ADO已經(jīng)有多年的實(shí)踐經(jīng)驗(yàn),ADO.NET以此為基礎(chǔ),提供了更加豐富、強(qiáng)大的工具;盡管如此,ADO.NET的設(shè)計(jì)目標(biāo)畢竟不是提供一個(gè)即插即用的工具,它不會(huì)把所有的編程工作簡(jiǎn)化到僅靠鼠標(biāo)點(diǎn)擊就可以完成的程度。

ADO.NET包含了一大堆代表數(shù)據(jù)訪問(wèn)模型中各種邏輯實(shí)體的對(duì)象,其中尤以連接、事務(wù)這兩個(gè)對(duì)象最為重要。連接的作用是建立一個(gè)與后端數(shù)據(jù)庫(kù)通信的通道,創(chuàng)建連接對(duì)象必須以特定的.NET數(shù)據(jù)提供者為基礎(chǔ)。事務(wù)對(duì)象可以在已有的連接對(duì)象上創(chuàng)建,也可以通過(guò)顯式地執(zhí)行一個(gè)BEGIN TRAN SQL語(yǔ)句創(chuàng)建。雖然理論很簡(jiǎn)單,但實(shí)際上,圍繞連接、事務(wù)的不確定因素很多,而且它們對(duì)應(yīng)用整體的穩(wěn)定性和效率有著至關(guān)緊要的影響。

如何保存連接字符串,保護(hù)連接字符串中可能包含的敏感信息(例如密碼)?怎樣設(shè)計(jì)一個(gè)完善的數(shù)據(jù)訪問(wèn)策略,既考慮到安全性(即身份驗(yàn)證、授權(quán)),卻又不至于對(duì)性能和可伸縮性造成太大的影響?如果需要用到事務(wù),那么如何高效地實(shí)現(xiàn)和控制事務(wù)?采用自動(dòng)事務(wù)還是手動(dòng)事務(wù)?在使用ADO.NET時(shí),這些問(wèn)題都必須仔細(xì)考慮。

一、連接字符串,連接池

數(shù)據(jù)庫(kù)連接是一種重要的、有限的、開銷昂貴的資源,因此用好連接對(duì)象是任何應(yīng)用的最基本的要求。使用數(shù)據(jù)庫(kù)連接的要點(diǎn)可總結(jié)如下:

保存連接字符串應(yīng)注意安全。

打開連接應(yīng)遲,關(guān)閉連接應(yīng)早。

連接字符串是訪問(wèn)數(shù)據(jù)庫(kù)的鑰匙。連接字符串除了說(shuō)明要訪問(wèn)的數(shù)據(jù)之外,還包含了用戶為什么可以訪問(wèn)那些數(shù)據(jù)的身份證明。在執(zhí)行數(shù)據(jù)庫(kù)操作時(shí),用戶身份證明是確定數(shù)據(jù)訪問(wèn)權(quán)限的最重要的因素。

1.1 保存連接字符串

目前,硬編碼的連接字符串具有最好的性能,因?yàn)樗鼈冎苯泳幾g進(jìn)了應(yīng)用的代碼之中。然而,硬編碼的字符串影響程序的靈活性,一旦連接字符串改變,應(yīng)用程序必須重新編譯。

將連接字符串保存到外部提高了靈活性,代價(jià)是訪問(wèn)外部字符串需要付出額外的開銷。但在絕大多數(shù)情況下,由此導(dǎo)致的性能開銷可以忽略不計(jì),真正需要擔(dān)心的是安全問(wèn)題。例如,攻擊者可能修改、竊取連接字符串。將連接字符串保存到外部環(huán)境的常見(jiàn)途徑有:配置文件,UDL文件,Windows注冊(cè)表。

.NET框架配置文件以純文本文件的形式部署,訪問(wèn)方便。如果連接字符串包含密碼,文本格式將是最大的缺陷所在,因?yàn)槊艽a將以明文的形式保存。可以考慮引入一個(gè)專用的加密/解密引擎,不過(guò)這部分工作需要開發(fā)者自己完成。

UDL文件是供OLE DB提供者使用的文本文件,也就是說(shuō),SQL Server托管提供者不支持UDL文件。UDL文件也存在和前面的配置文件一樣的安全問(wèn)題,總地看來(lái)優(yōu)勢(shì)不多。

最后,Windows注冊(cè)表可以作為一個(gè)天然安全的存儲(chǔ)場(chǎng)所。注冊(cè)表是一個(gè)保存關(guān)鍵信息的系統(tǒng)知識(shí)庫(kù),如果結(jié)合運(yùn)用加密技術(shù),可以達(dá)到較高的安全性。使用注冊(cè)表的主要缺點(diǎn)是部署麻煩,要求創(chuàng)建注冊(cè)鍵(可能還要執(zhí)行加密)以及從注冊(cè)表讀取數(shù)據(jù)。雖然.NET Framework提供了一組調(diào)用底層Win32 API的封裝類,但這些類都沒(méi)有提供加密功能。aspnet_setreg.exe工具可以用來(lái)創(chuàng)建HKEY_LOCAL_MACHINE下的注冊(cè)鍵保存用戶名稱和密碼,例如:aspnet_setreg.exe -k "Software\MyData" -u:userID -p:password。該命令將加密指定的用戶ID和密碼。

1.2 連接池原理

連接池允許我們通過(guò)一個(gè)緩沖池重用現(xiàn)有的連接對(duì)象,避免每次使用連接對(duì)象時(shí)都要新建一個(gè)對(duì)象。采用連接池之后,只要少量的連接對(duì)象就可以滿足大量客戶端的需要。

每一個(gè)連接池都與一個(gè)獨(dú)立的連接字符串及其事務(wù)上下文關(guān)聯(lián)。每次打開一個(gè)新的連接,數(shù)據(jù)提供者會(huì)嘗試將指定的連接字符串與連接池的字符串進(jìn)行匹配。如果匹配失敗,數(shù)據(jù)提供者創(chuàng)建一個(gè)新的連接并將它加入連接池。連接池被創(chuàng)建之后,除非進(jìn)程結(jié)束,否則不會(huì)被拆除。有人認(rèn)為這種處理方式會(huì)影響性能,其實(shí)不然,維護(hù)一個(gè)不活動(dòng)的或者空的連接池不需要多少開銷。

連接池創(chuàng)建之后,系統(tǒng)會(huì)創(chuàng)建一些連接對(duì)象并將它們加入連接池,直至達(dá)到額定的最小連接對(duì)象數(shù)量。以后,系統(tǒng)會(huì)根據(jù)需要新建和加入連接對(duì)象,一直到達(dá)最大連接對(duì)象數(shù)量限額為止。如果程序請(qǐng)求一個(gè)連接對(duì)象時(shí)沒(méi)有空閑的連接對(duì)象可用,且連接池里面的對(duì)象數(shù)量已達(dá)到上限,則請(qǐng)求被放入隊(duì)列,一旦有連接被釋放回緩沖池就立即取出使用。

避免用編程的方式構(gòu)造連接字符串。如果通過(guò)合并多個(gè)輸入數(shù)據(jù)的方式構(gòu)造出連接字符串,很容易給注入式攻擊以可乘之機(jī)。如果必須用到用戶輸入的數(shù)據(jù),務(wù)必進(jìn)行嚴(yán)格的驗(yàn)證。

1.3 關(guān)閉連接

關(guān)閉一個(gè)連接時(shí),連接對(duì)象被返回給連接池以便重用,但這時(shí)實(shí)際的數(shù)據(jù)庫(kù)連接并未被拆除。如果禁用了連接池,則實(shí)際的數(shù)據(jù)庫(kù)連接也被關(guān)閉。這里必須強(qiáng)調(diào)的一點(diǎn)時(shí),連接對(duì)象使用完畢后應(yīng)當(dāng)顯式關(guān)閉并將它返回給連接池,不要依靠垃圾收集器來(lái)釋放連接。實(shí)際上,當(dāng)連接對(duì)象的引用超出有效范圍時(shí),連接不一定被關(guān)閉——垃圾收集器的功能是拆除代表物理連接的.NET封裝對(duì)象,但這并不意味著底層的連接也被關(guān)閉了。

調(diào)用Close或Dispose方法可以將連接釋放回連接池。只有當(dāng)生存期結(jié)束或出現(xiàn)嚴(yán)重錯(cuò)誤時(shí),連接對(duì)象才會(huì)被從連接池刪除。

1.4 連接池與安全

如果一個(gè)應(yīng)用程序的所有數(shù)據(jù)訪問(wèn)操作都使用同樣的連接字符串,連接池的優(yōu)勢(shì)將發(fā)揮到極限。但是,這只是一種理想化了的狀況,很可能與應(yīng)用程序的其他要求存在沖突。例如,如果只使用一個(gè)連接字符串,要在數(shù)據(jù)庫(kù)這一層次上執(zhí)行安全控制就很困難了。

另一方面,如果讓每一個(gè)用戶分別使用自己的連接字符串(即為每一個(gè)用戶分別設(shè)定數(shù)據(jù)庫(kù)帳戶),勢(shì)必出現(xiàn)大量小型的連接池,許多連接根本不會(huì)被重用。依照慣例,這類問(wèn)題的最佳解決方案是尋找兩個(gè)極端之間的一個(gè)適當(dāng)折衷點(diǎn)。我們可以設(shè)置一組具有代表性的公用帳戶,同時(shí)修改存儲(chǔ)過(guò)程,使之接受一個(gè)表示用戶標(biāo)識(shí)的參數(shù),存儲(chǔ)過(guò)程根據(jù)傳入的用戶標(biāo)識(shí)執(zhí)行不同的操作。

二、事務(wù)模式

分布式企業(yè)應(yīng)用離不開事務(wù)。在數(shù)據(jù)訪問(wèn)代碼中加入事務(wù)管理功能主要有兩種方式:手動(dòng)方式,自動(dòng)方式。

在手動(dòng)方式中,程序員負(fù)責(zé)編寫所有配置、使用事務(wù)機(jī)制的代碼。自動(dòng)(或COM+)事務(wù)則在.NET類中加入聲明式屬性,指定運(yùn)行時(shí)對(duì)象的事務(wù)特性。自動(dòng)方式方便了將多個(gè)組件配制成在同一個(gè)事務(wù)之內(nèi)運(yùn)行。兩種事務(wù)方式都支持本地的或分布式的事務(wù),但自動(dòng)的事務(wù)方式極大地簡(jiǎn)化了分布式事務(wù)處理。

必須注意的是,事務(wù)是一種開銷很大的操作,所以決定使用事務(wù)之前務(wù)必再三考慮。如果確實(shí)需要使用事務(wù),那就要盡量縮小事務(wù)的粒度,減少對(duì)數(shù)據(jù)庫(kù)的加鎖時(shí)間、加鎖范圍。例如,對(duì)于SQL Server,單個(gè)的SQL語(yǔ)句不需要顯式地聲明事務(wù),SQL Server會(huì)自動(dòng)將每一個(gè)語(yǔ)句作為一個(gè)獨(dú)立的事務(wù)運(yùn)行。手動(dòng)的本地事務(wù)總是比其他事務(wù)快得多,因?yàn)樗恍枰婕癉TC(Distributed Transaction Coordinator)。

手動(dòng)事務(wù)、自動(dòng)事務(wù)應(yīng)當(dāng)視為兩種不同的、互斥的技術(shù)。如果要在單個(gè)數(shù)據(jù)庫(kù)上執(zhí)行事務(wù)性操作,優(yōu)先考慮手動(dòng)事務(wù)。當(dāng)單個(gè)事務(wù)跨越多個(gè)遠(yuǎn)程數(shù)據(jù)庫(kù),或單個(gè)事務(wù)涉及多個(gè)資源管理器(例如,一個(gè)數(shù)據(jù)庫(kù)和一個(gè)MSMQ資源管理器),優(yōu)先考慮自動(dòng)事務(wù)。不管怎樣,應(yīng)當(dāng)極力避免混合運(yùn)用兩種事務(wù)模式。如果性能不是特別重要,即使只對(duì)一個(gè)數(shù)據(jù)庫(kù)操作也可以考慮使用自動(dòng)事務(wù),使代碼更加簡(jiǎn)潔(但速度略慢)。

總而言之,要提高數(shù)據(jù)庫(kù)訪問(wèn)代碼的質(zhì)量,必須深入了解ADO.NET對(duì)象模型,根據(jù)實(shí)際情況靈活運(yùn)用各種技巧。ADO.NET是一個(gè)公用的API,各種應(yīng)用——不管是Windows窗體應(yīng)用、ASP頁(yè)面還是Web服務(wù),都可以通過(guò)ADO.NET訪問(wèn)數(shù)據(jù)庫(kù);但是,ADO.NET不是一邊接受輸入、一邊吐出結(jié)果的黑箱,而是一個(gè)由許多工具組成的工具箱。

更多信息請(qǐng)查看IT技術(shù)專欄

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:ADO.NET實(shí)用技巧兩則
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn)

版權(quán)所有:易賢網(wǎng)

中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
91精品国产综合久久久蜜臀粉嫩| 国产精品久久久久久久久晋中| 国产精品婷婷午夜在线观看| 国产精品一二三| 国产精品国产三级国产普通话99| 在线亚洲高清视频| 日韩不卡一区二区三区| 久久精品视频一区二区三区| 日本韩国一区二区三区视频| 日本亚洲最大的色成网站www| 精品久久人人做人人爱| 99久久久久久99| 亚洲成人免费观看| 国产女同性恋一区二区| 欧美日韩国产精品成人| 国产高清精品网站| 亚洲一区二区不卡免费| 日韩三级视频在线看| 91在线视频在线| 国产毛片精品视频| 午夜精品一区二区三区免费视频 | 欧美日韩免费观看一区二区三区| 一区二区三区在线影院| 激情偷乱视频一区二区三区| 99riav一区二区三区| 激情文学综合插| 91麻豆精品国产自产在线观看一区 | 91精品国产综合久久国产大片| 日韩欧美电影在线| 91视视频在线观看入口直接观看www| 天天综合天天做天天综合| 亚洲国产精品v| 精品人伦一区二区色婷婷| 在线这里只有精品| 懂色中文一区二区在线播放| 五月天欧美精品| 最新高清无码专区| 国产日产亚洲精品系列| 日韩女优av电影在线观看| 欧美在线观看禁18| 色www精品视频在线观看| 丁香另类激情小说| 高清视频一区二区| 成人性生交大片免费看在线播放| 精品一区二区免费视频| 久99久精品视频免费观看| 天天av天天翘天天综合网| 亚洲成av人片| 日本午夜精品一区二区三区电影 | 精品国产一区二区三区av性色| 欧美性大战xxxxx久久久| 在线视频你懂得一区| 91久久精品国产91性色tv| 色婷婷国产精品| 色天天综合色天天久久| 9l国产精品久久久久麻豆| 成人av免费在线播放| 成人av在线观| 91国在线观看| 精品视频1区2区3区| 欧美亚洲一区二区在线| 欧美日韩成人在线| 欧美一区二区免费视频| 欧美xxxx在线观看| 久久精品在线观看| 国产精品电影一区二区三区| 精品少妇一区二区三区视频免付费| av成人老司机| 色婷婷亚洲精品| 欧美最新大片在线看| 91精品国产综合久久精品图片| 欧美一区二区三区在线视频| 日韩精品在线一区二区| 精品少妇一区二区三区视频免付费| 久久精品一二三| 亚洲天堂a在线| 婷婷中文字幕一区三区| 国产精品69毛片高清亚洲| 成人黄页在线观看| 欧美中文字幕久久| 精品电影一区二区| 亚洲欧美偷拍三级| 免费人成在线不卡| 高清av一区二区| 欧美日韩成人在线| 国产欧美日韩另类视频免费观看| 亚洲精品一卡二卡| 久久国产夜色精品鲁鲁99| 99久久精品一区| 在线不卡a资源高清| 国产欧美精品在线观看| 亚洲制服丝袜av| 国产在线观看一区二区| 色综合久久88色综合天天6 | 中文字幕一区二区三区精华液| 亚洲国产人成综合网站| 国产一区二三区| 三级在线观看一区二区| 成人免费福利片| 337p亚洲精品色噜噜| 中文字幕中文字幕中文字幕亚洲无线| 亚洲福利国产精品| 成人免费va视频| 日韩情涩欧美日韩视频| 一区二区视频在线| 国产成人久久精品77777最新版本| 色婷婷精品久久二区二区蜜臀av| 久久久久久久久久久久久夜| 亚洲视频狠狠干| 亚洲va在线va天堂| 91视频你懂的| 国产精品久线观看视频| 狠狠色丁香久久婷婷综合_中| 色乱码一区二区三区88| 久久婷婷成人综合色| 日韩精品福利网| 色老头久久综合| 亚洲免费av网站| 9人人澡人人爽人人精品| 精品国产露脸精彩对白| 午夜精品福利视频网站| 不卡的av电影在线观看| 久久久久久夜精品精品免费| 日本 国产 欧美色综合| 91久久精品国产91性色tv| 国产精品欧美久久久久一区二区| 蜜臀精品久久久久久蜜臀| 欧美日韩第一区日日骚| 精品1区2区在线观看| 精品亚洲国产成人av制服丝袜| 欧美老年两性高潮| 午夜久久电影网| 欧美一区二区视频在线观看2020| 亚洲福利电影网| 欧美视频在线一区二区三区 | 豆国产96在线|亚洲| 久久亚洲二区三区| 国产成人午夜精品影院观看视频| 久久久99精品久久| 国产宾馆实践打屁股91| 欧美高清在线视频| 成人av免费网站| 亚洲精品乱码久久久久久黑人| 欧洲一区二区三区在线| 亚洲第一久久影院| 欧美一区二区三区视频| 国产又粗又猛又爽又黄91精品| 在线观看三级视频欧美| 亚洲成人动漫精品| 91精品免费观看| 国产一区二区三区四区五区入口| 国产精品卡一卡二| 欧美视频一区在线观看| 秋霞成人午夜伦在线观看| 久久免费午夜影院| 91蜜桃在线免费视频| 无码av免费一区二区三区试看| 日韩欧美激情四射| 高清不卡一区二区| 亚洲成人午夜影院| 久久久精品2019中文字幕之3| 99vv1com这只有精品| 日本aⅴ亚洲精品中文乱码| 亚洲精品一区二区三区在线观看 | 久久一区二区视频| 91免费看片在线观看| 日韩激情视频在线观看| 国产日本欧美一区二区| 在线观看亚洲精品视频| 国产自产视频一区二区三区| 亚洲免费在线视频| 精品电影一区二区三区| 91黄色在线观看| 久久精品国产成人一区二区三区 | 综合欧美亚洲日本| 日韩欧美国产wwwww| 99久久国产综合色|国产精品| 日韩二区三区四区| 日韩码欧中文字| 久久婷婷色综合| 欧美丝袜丝交足nylons图片| 国内精品伊人久久久久影院对白| 一区二区三区精品| 久久精品视频一区二区| 337p亚洲精品色噜噜狠狠| 91小宝寻花一区二区三区| 久久爱另类一区二区小说| 亚洲高清免费视频| 亚洲三级在线免费观看| 久久久精品蜜桃| 精品国产伦一区二区三区观看方式 | 成人一道本在线| 国产日韩精品一区二区三区| 欧美一级免费观看| 欧美日韩一区久久| 色综合一区二区| 国产91精品久久久久久久网曝门| 久久国产精品色| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲午夜电影在线|