新聞中心
隨著信息技術(shù)的飛速發(fā)展,大量的數(shù)據(jù)對于企業(yè)運(yùn)營以及發(fā)展起著至關(guān)重要的作用,同時(shí)也使得數(shù)據(jù)庫的重要性不斷地凸顯。.NET開發(fā)平臺在數(shù)據(jù)庫應(yīng)用方面也已經(jīng)得到了廣泛的應(yīng)用。而這其中一個(gè)必不可少的組成部分就是.NET數(shù)據(jù)庫訪問類(Data Access Classes),這些類封裝了與數(shù)據(jù)庫交互的所有細(xì)節(jié)。但是,如何選擇一套高效靈活、可維護(hù)的數(shù)據(jù)庫訪問類就成為了.NET開發(fā)人員必須思考的問題。本文將為各位.NET開發(fā)者提供一些選擇上的思路和指導(dǎo)。

固始ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!
一、ADO.NET
ADO.NET是.NET平臺下的核心數(shù)據(jù)庫訪問技術(shù),是一套基于.Net框架的面向?qū)ο蟆⒏咝?、穩(wěn)定的數(shù)據(jù)訪問接口和規(guī)范。它是微軟為解決與數(shù)據(jù)相關(guān)操作而推出的一系列類和接口庫,包含了數(shù)據(jù)存儲、轉(zhuǎn)換以及處理等眾多功能。ADO.NET采用了一種基于DataSet的離散型數(shù)據(jù)存儲方式,它不依賴于ODBC或OMBC,而是通過專門的驅(qū)動提供提高數(shù)據(jù)庫的性能和效率。而DataSet及其相關(guān)類的存在則使得ADO.NET具有了靈活性和高度的擴(kuò)展性。此外,ADO.NET連接的屬性和方法也十分豐富,可以滿足各種數(shù)據(jù)庫交互需要。因此,它被廣泛地應(yīng)用在.NET數(shù)據(jù)庫訪問類的開發(fā)中,也成為.NET開發(fā)中最常用的數(shù)據(jù)庫操作方式之一。
二、Dapper
Dapper可以說是.NET平臺最輕量級的ORM(Object Relational Mapping)庫了。它是一種深受.NET開發(fā)者喜愛的快速數(shù)據(jù)訪問庫,以其極簡主義、高速執(zhí)行、低耗性能的方式而著稱。Dapper的訪問方式主要以SQL語句為基準(zhǔn)進(jìn)行訪問,不需要過多的抽象層,只需要映射查詢結(jié)果到.NET對象即可。這種優(yōu)雅的編程方式讓許多.NET開發(fā)者深深著迷,同時(shí)Dapper的性能表現(xiàn)也十分出色。它可以將查詢結(jié)果轉(zhuǎn)換為強(qiáng)類型數(shù)據(jù),減少了大量的手動輸入代碼,并提高了程序的可讀性和可維護(hù)性。此外,Dapper的學(xué)習(xí)成本非常低,入門難度較小,使得許多初學(xué)者可以很快上手。因此,對于小型項(xiàng)目本身并不需要高復(fù)雜性語句的來說,使用Dapper器能夠快速簡便地開發(fā)出一款很好的產(chǎn)品。
三、Entity Framework
Entity Framework是微軟推出的一款ORM框架,專門針對.NET平臺的數(shù)據(jù)訪問工具,它是一種分層體系結(jié)構(gòu)、面向?qū)ο蟮脑O(shè)計(jì)方式,可以對AS2.0、AS3.0、ADO.NET對SQL Server數(shù)據(jù)庫的訪問邏輯進(jìn)行封裝和簡化。Entity Framework下層是基于ADO.NET的,采用了基于XML的數(shù)據(jù)映射方法,擁有ORM所賦予的特控制操作能力,包括模塊化的開發(fā)方式、面向?qū)ο蟮挠成浜投喾N操作類型。它可以自動進(jìn)行數(shù)據(jù)庫模式生成和實(shí)體數(shù)據(jù)類型的映射,使得開發(fā)者的工作量大大減少。此外,Entity Framework還提供了完全的LINQ支持,可以使用Linq對數(shù)據(jù)庫進(jìn)行增刪查改數(shù)據(jù)操作。而且,Entity Framework支持多種數(shù)據(jù)庫,如SQL Server、MySQL、SQLite以及Oracle等,使得項(xiàng)目開發(fā)更便捷。
四、NHibernate
NHibernate是.NET平臺上一個(gè)開源的ORM框架,它是以Hibernate為基礎(chǔ)進(jìn)行開發(fā)的,主要服務(wù)于.NET平臺的應(yīng)用開發(fā)程序,用于使.NET平臺與一系列數(shù)據(jù)庫通信,并自動執(zhí)行數(shù)據(jù)轉(zhuǎn)換與映射的操作。NHibernate采用了面向?qū)ο蟮挠成浞绞?,以?shí)現(xiàn)對象與關(guān)系型數(shù)據(jù)庫的自動映射。它集成Hibernate的強(qiáng)大特性,能夠映射多個(gè)與表存在約束關(guān)系的對象,確保數(shù)據(jù)的完整性,同時(shí)提供了靈活性和擴(kuò)展性。NHibernate還提供了強(qiáng)大的查詢語言(HQL和Critera Api),支持多種數(shù)據(jù)庫如Oracle、MySQL、SQL Server等。NHibernate的適用范圍非常廣,可適用與對數(shù)據(jù)庫操作極其復(fù)雜的大型項(xiàng)目。但是,由于其映射和配置的復(fù)雜性較高,使得使用難度相對比較大。
五、Dapper、Entity Framework、NHibernate之間的區(qū)別與應(yīng)用
Dapper、Entity Framework和NHibernate是.NET平臺下面對ORM的三個(gè)不同的實(shí)現(xiàn)方式。它們在實(shí)現(xiàn)方面有一些區(qū)別,主要表現(xiàn)在以下幾個(gè)方面:
1. 容量:Dapper是最輕量級的ORM框架,而且它支持在.NET平臺上面直接執(zhí)行SQL查詢。
2. 查詢語言:Entity Framework擁有完整的LINQ支持,在使用語句查詢和編寫其他代碼的時(shí)候,非常方便。
3. 映射:NHibernate中稍顯冗雜的配置,使得ORM的學(xué)習(xí)難度相對來說較高。
4. 性能:相對而言,Dapper的性能要優(yōu)于Entity Framework和NHibernate。
根據(jù)不同的應(yīng)用場景選擇不同的數(shù)據(jù)訪問類是非常重要的。我們可以使用Dapper來完成簡單的小型項(xiàng)目,從而快速地快速開發(fā)出符合要求的應(yīng)用程序。而對于復(fù)雜的大型應(yīng)用項(xiàng)目,需要使用到更豐富的功能,我們可以選擇Entity Framework或NHibernate來實(shí)現(xiàn)數(shù)據(jù)訪問操作,以滿足不同的業(yè)務(wù)需求。不同的項(xiàng)目需要采用不同的數(shù)據(jù)訪問方式,才能實(shí)現(xiàn)更高效、靈活、穩(wěn)定的數(shù)據(jù)庫操作。
不管我們選擇哪個(gè)數(shù)據(jù)庫訪問類作為我們的數(shù)據(jù)訪問框架,都必須了解和掌握它的特點(diǎn)和工作原理,這樣才能夠讓我們更好地利用這些框架來進(jìn)行數(shù)據(jù)操作。以上提到的數(shù)據(jù)庫訪問類都有自己的優(yōu)點(diǎn),適用于不同的應(yīng)用場景,但對于具體如何選擇的問題,關(guān)鍵在于問題規(guī)模以及業(yè)務(wù)需求。因此,在選擇時(shí)我們需要對自己的項(xiàng)目進(jìn)行充分的分析和考慮,從而合理地選取對應(yīng)的數(shù)據(jù)庫訪問方式。數(shù)據(jù)庫訪問類是.NET 數(shù)據(jù)庫操作的核心,選擇一種符合我們需求的數(shù)據(jù)庫操作類,是我們在實(shí)際情況中要注意的一個(gè)關(guān)鍵點(diǎn)。
相關(guān)問題拓展閱讀:
- net框架主要是哪幾部分組成?
- DBFactory一個(gè)通用的數(shù)據(jù)庫操作類,可以訪問SQL,Oracle數(shù)據(jù)庫。
net框架主要是哪幾部分組成?
NET框架包括三個(gè)主要組成部分:
公共語言運(yùn)行時(shí)(CLR:CommonLanguageRuntime)、服務(wù)框架(ServicesFramework)和上層的兩類應(yīng)用模板——傳統(tǒng)的Windows應(yīng)用程序模板(WinFowww.zdyan.comrms)和基于ASPNET的面向Web的網(wǎng)絡(luò)應(yīng)用程序模板(WebForms和WebServices)。
.NET框架(Framework)是一個(gè)開發(fā)、部署和運(yùn)行.NET應(yīng)用的環(huán)境,包括了ASP.NET、公共語言運(yùn)行時(shí)環(huán)境(CLR)以及.NET框架類
.NET開發(fā)框架的幾個(gè)主要組成部分:首先是整個(gè)開發(fā)框架的基礎(chǔ),即通用語言運(yùn)行時(shí)以及它所提供的一組基礎(chǔ)類庫;在開發(fā)技術(shù)方面,.NET提供了全新的數(shù)據(jù)庫訪問技術(shù)ADO.NET,以及網(wǎng)絡(luò)應(yīng)用開發(fā)技術(shù)ASP.NET和Windows編程技術(shù)WinForms;在開發(fā)語言方面,.NET提供了VB,VC++,C#,Jscript等多種語言支持;而VisualStudio.NET則是全面支持.NET的開發(fā)工具。下面就讓我們來一步步的來了解它們:通用語言運(yùn)行時(shí),即CommonLanguageRuntime。Microsoft.NET給開發(fā)人員帶來了一種全新的開發(fā)框架,而通用語言運(yùn)行時(shí)則處于這個(gè)框架的更低層,是這個(gè)框架的基礎(chǔ)。開發(fā)人員對于所謂的C運(yùn)行時(shí)、VB運(yùn)行時(shí)、Jave虛擬機(jī)這些概念已經(jīng)非常熟悉了,而通用語言運(yùn)行時(shí)則為多種語言提供了一種統(tǒng)一的運(yùn)行環(huán)境。另外它還提供了更多的功能和特性,比如統(tǒng)一和簡化的編程模型,用戶不必迷惑于Win32API和COM;避免了DLL的版本和更新問題(常稱為DLL地獄),從而大大簡化了應(yīng)用程序的發(fā)布和升級;多種語言之間的交互,例如我們甚至可以在VB中使用C++編寫的類;自動的內(nèi)存和資源管理等等。Microsoft.NET正是基于通用語言運(yùn)行時(shí),實(shí)現(xiàn)了這些開發(fā)人員夢寐以求的功能?;谕ㄓ谜Z言運(yùn)行時(shí)開發(fā)的代碼稱為受控代碼,它的運(yùn)行步驟大體如下:首先使用一種通用語言運(yùn)行時(shí)支持的編程語言編寫源代碼,然后使用針對通用語言運(yùn)行時(shí)的編譯器生成獨(dú)立于機(jī)器的微軟中間語言(MicrosoftIntermediateLanguage),同時(shí)產(chǎn)生運(yùn)行所需的元數(shù)據(jù),在代碼運(yùn)行時(shí)再使用即時(shí)編譯器(JustInTimeCompiler)生成相應(yīng)的機(jī)器代碼來執(zhí)行。當(dāng)然對于開發(fā)者而言,他們除了關(guān)心通用語言運(yùn)行時(shí)提供那么多新特性外,它究竟給開發(fā)者提供了什么樣的編程接口,這就是基礎(chǔ)類庫(BaseClassLibrary)。這組基礎(chǔ)類庫包括了從輸入輸出到數(shù)據(jù)訪問等各方面,提供了一個(gè)統(tǒng)一的面向?qū)ο蟮?、層次化的、可擴(kuò)展的編程接口。它使用一種點(diǎn)號分隔的方法,使得查找和使用類庫非常容易。例如基礎(chǔ)類庫中的根,它的命名空間是System,提供數(shù)據(jù)訪問的類庫的命名空間是System.Data。在使用時(shí),開發(fā)者只需在自己的應(yīng)用中添加所需的基礎(chǔ)類庫的引用,然后就可以使用這個(gè)類庫中的所有方法、屬性等等。跟傳統(tǒng)的Windows編程相比,使用和擴(kuò)展基礎(chǔ)類庫都非常容易,這使得開發(fā)者能夠高效、快速的構(gòu)建基于下一代互聯(lián)網(wǎng)的網(wǎng)絡(luò)應(yīng)用。幾乎所有的應(yīng)用程序都需要訪問從簡單的文本文件到大型的關(guān)系型數(shù)據(jù)庫等各種不同類型的數(shù)據(jù)。在Microsoft.NET中訪問數(shù)據(jù)庫的技術(shù)是ADO.NET。ADO.NET提供了一組用來連接到數(shù)據(jù)庫,運(yùn)行命令,返回記錄集的類庫,與從前的ADO(ActiveXDataObject)相比,Connection和Command對象很類似,而ADO.NET的革新主要體現(xiàn)在如下幾個(gè)方面:首先,ADO.NET提供了對XML的強(qiáng)大支持,這也是ADO.NET的一個(gè)主要設(shè)計(jì)目標(biāo)。在ADO.NET中通過XMLReader,XMLWriter,XMLNavigator,XMLDocument等可以方便的創(chuàng)建和使用XML數(shù)據(jù),并且支持W3C的XSLT、DTD、XDR等標(biāo)準(zhǔn)。ADO.NET對XML的支持也為XML成為Microsoft.NET中數(shù)據(jù)交換的統(tǒng)一格式提供了基礎(chǔ)。其次,ADO.NET引入了DataSet的概念,這是一個(gè)駐于內(nèi)存的數(shù)據(jù)緩沖區(qū),它提供了數(shù)據(jù)的關(guān)系型視圖。不管數(shù)據(jù)來源于一個(gè)關(guān)系型的數(shù)據(jù)庫,還是來源于一個(gè)XML文檔,我們都可以用一個(gè)統(tǒng)一的編程模型來創(chuàng)建和使用它。它替代了原有的Recordset的對象,提高了程序的交互性和可擴(kuò)展性,尤其適合于分布式的應(yīng)用場合。另外,ADO.NET中還引入了一些新的對象,例如DataReader可以用來高效率的讀取數(shù)據(jù),產(chǎn)生一個(gè)只讀的記錄集等等。簡而言之,ADO.NET通過一系列新的對象和編程模型,并與XML緊密結(jié)合,使得在Microsoft.NET中的數(shù)據(jù)操作十分方便和高效。ASP.NET是Microsoft.NET中的網(wǎng)絡(luò)編程結(jié)構(gòu),它使得建造、運(yùn)行和發(fā)布網(wǎng)絡(luò)應(yīng)用非常方便和高效。我們可以從以下幾個(gè)方面來了解ASP.NET:
1.ASP.NET網(wǎng)絡(luò)表單ASP.NET網(wǎng)絡(luò)表單的設(shè)計(jì)目的就是使得開發(fā)者能夠非常容易的創(chuàng)建網(wǎng)絡(luò)表單,它把VB中的快速開發(fā)模型引入到網(wǎng)絡(luò)開發(fā)中來,從而大大簡化了網(wǎng)絡(luò)應(yīng)用的開發(fā)。具體的說:在ASP.NET中可以支持多種語言,不僅僅支持腳本語言,通用語言運(yùn)行時(shí)支持的所有語言在ASP.NET中都可以使用;代碼和內(nèi)容分開,在現(xiàn)在的ASP(ActiveServerPages)開發(fā)中,內(nèi)容和腳本交錯(cuò),維護(hù)和升級很困難,將他們分開可以使得開發(fā)人員和設(shè)計(jì)人員能夠更好的分工合作,提高開發(fā)效率;另外在ASP.NET中通過引入服務(wù)器端控件,將類似VB的快速開發(fā)應(yīng)用到了網(wǎng)絡(luò)開發(fā)中來,這樣大大提高了構(gòu)建網(wǎng)絡(luò)表單效率,并且服務(wù)器端控件是可擴(kuò)展的,開發(fā)者可以建造自己需要的的服務(wù)器端控件。
2.ASP.NET網(wǎng)絡(luò)服務(wù)網(wǎng)絡(luò)服務(wù)(WebService)是下一代可編程網(wǎng)絡(luò)的核心,它實(shí)際上就是一個(gè)可命名的網(wǎng)絡(luò)資源,可用來在Internet范圍內(nèi)方便的表現(xiàn)和使用對象,就像使用今天的COM對象一樣,不同的是使用和表現(xiàn)網(wǎng)絡(luò)服務(wù)是通過SOAP(簡單對象訪問協(xié)議)甚至HTTP來實(shí)現(xiàn)的。在ASP.NET中,建造和使用網(wǎng)絡(luò)服務(wù)都非常方便:在ASP.NET中建造網(wǎng)絡(luò)服務(wù)就是編寫一個(gè)后綴為.AX的文件,在這個(gè)文件中加入想要表現(xiàn)出來的方法就可以了,網(wǎng)絡(luò)服務(wù)的建造者不需要了解SOAP,XML的細(xì)節(jié),只需要把精力集中在自己的服務(wù)本身,這也為獨(dú)立軟件服務(wù)開發(fā)商提供了很好的機(jī)會;使用網(wǎng)絡(luò)服務(wù)最簡單的方式就是使用HTTP協(xié)議(HTTPGET或HTTPPOST),用戶只需要直接訪問網(wǎng)絡(luò)服務(wù)(.AX文件)的URL即可;當(dāng)然用戶還可以通過SOAP在自己的應(yīng)用中更靈活的使用網(wǎng)絡(luò)服務(wù)。
3.ASP.NET應(yīng)用框架ASP.NET應(yīng)用不再是解釋腳本,而是編譯運(yùn)行,再加上靈活的緩沖技術(shù),從根本上提高了性能;由于ASP.NET的應(yīng)用框架基于通用語言運(yùn)行時(shí),發(fā)布一個(gè)網(wǎng)絡(luò)應(yīng)用,僅僅是一個(gè)拷貝文件的過程,即使是組件的發(fā)布也是如此,更新和刪除網(wǎng)絡(luò)應(yīng)用,可以直接替換/刪除文件;開發(fā)者可以將應(yīng)用的配置信息存放XML格式的文件中,管理員和開發(fā)者對應(yīng)用程序的管理可以分開進(jìn)行;提供了更多樣的認(rèn)證和安全管理方式;在可靠性等多方面都有很大提高。傳統(tǒng)的基于Windows的應(yīng)用(WinForms),它仍然是Microsoft.NET戰(zhàn)略中不可或缺的一部分。在Microsoft.NET中開發(fā)傳統(tǒng)的基于Windows的應(yīng)用程序時(shí),除了可以利用現(xiàn)有的技術(shù)例如ActiveX控件以及豐富的Windows接口外,還可以基于通用語言運(yùn)行時(shí)開發(fā),可以使用ADO.NET、網(wǎng)絡(luò)服務(wù)等,這樣也可以實(shí)現(xiàn)諸如避免DLL地獄、多語言支持等.NET的新特性。從上面的介紹中我們已經(jīng)知道Microsoft.NET開發(fā)框架支持多種語言,在目前的測試版中已經(jīng)支持VB,C++,C#和Jscript四種語言以及它們之間的深層次交互。而且微軟支持第三方生產(chǎn)針對Microsoft.NET的編譯器和開發(fā)工具,這也就是說幾乎所有市場上的編程語言都有可能應(yīng)用于Microsoft.NET開發(fā)框架。這樣開發(fā)者可以任意選擇自己喜愛的語言,這種開放和交互的特性正是開發(fā)者所熱愛的。需要特別指出的是,微軟在Microsoft.NET中推出了全新的C#語言,這種全新的面向?qū)ο蟮恼Z言使得開發(fā)者可以快速的構(gòu)建從底層系統(tǒng)級到高層商業(yè)組件的不同應(yīng)用。C#在保證了強(qiáng)大的功能和靈活性的同時(shí),給C和C++帶來了類似于VB的快速開發(fā),并且它還針對.NET作了特別設(shè)計(jì),比如C#允許XML數(shù)據(jù)直接映射為它的數(shù)據(jù)類型等等,這些特性結(jié)合起來使得C#成為優(yōu)秀的下一代網(wǎng)絡(luò)編程語言。與此同時(shí)Microsoft.NET對原有的VB和C++也做了很大的改進(jìn),使得它們更加適應(yīng)Microsoft.NET開發(fā)框架的需求。例如在VisualBasic.NET中增加了繼承等面向?qū)ο蟮奶匦裕Y(jié)構(gòu)化的出錯(cuò)處理等等;可管理的C++擴(kuò)展,大大提高了利用C++來開發(fā)Microsoft.NET應(yīng)用的效率等。VisualStudio.NET作為微軟的下一代開發(fā)工具,它和.NET開發(fā)框架緊密結(jié)合,是構(gòu)建下一代互聯(lián)網(wǎng)應(yīng)用的優(yōu)秀工具,目前已經(jīng)有Beta測試版面世。VisualStudio.NET通過提供一個(gè)統(tǒng)一的集成開發(fā)環(huán)境及工具,大大提高了開發(fā)者的效率;集成了多種語言支持;簡化了服務(wù)器端的開發(fā);提供了高效地創(chuàng)建和使用網(wǎng)絡(luò)服務(wù)的方法等等。.NET框架的一個(gè)主要目的是使COM開發(fā)變得更加容易。COM開發(fā)過程中最難的一件事是處理COM基本結(jié)構(gòu)。因此,為了簡化COM開發(fā),.NET框架實(shí)際上已自動處理了所有在開發(fā)人員看來是與“COM”緊密相關(guān)的任務(wù),包括引用計(jì)算、接口描述以及注冊。必須認(rèn)識到,這并不意味著.NET框架組件不是COM組件。事實(shí)上,使用VisualStudio6.0的COM開發(fā)人員可以調(diào)用.NET框架組件,并且在他們看來,后者更像是擁有iUnknown數(shù)據(jù)的COM組件。相反,使用VisualStudio.NET的.NET框架開發(fā)人員則將COM組件視作.NET框架組件。為了避免引起誤解,這里需對這種關(guān)系加以特別說明:COM開發(fā)人員必須手動去做大多數(shù).NET框架開發(fā)人員可以在運(yùn)行時(shí)自動執(zhí)行的事情。例如,必須手寫COM組件的安全性模塊,且無法自動管理模塊占用的內(nèi)存,而在安裝COM組件時(shí),注冊條目必須放進(jìn)Windows注冊表中。對.NET框架而言,運(yùn)行時(shí)實(shí)現(xiàn)了這些功能的自動化。例如,組件本身是自我描述型的,因而無需注冊到Windows注冊表中便能安裝。當(dāng)把COM與Microsoft事務(wù)服務(wù)器(MTS)和分布式COM(DCOM)結(jié)合在一起時(shí),就變成了COM+。COM+提供了一組面向中間層的服務(wù)。特別是COM+提供了進(jìn)程管理功能和數(shù)據(jù)庫與對象連接池處理功能。在將來的版本中,它還將提供一種稱為分區(qū)的功能——專門為應(yīng)用程序服務(wù)提供商設(shè)計(jì)的更強(qiáng)大的進(jìn)程隔離功能。COM+服務(wù)主要面向中間層應(yīng)用程序開發(fā),并主要為大型分布式應(yīng)用程序提供可靠性和可擴(kuò)展性。這些服務(wù)是對.NET框架所提供服務(wù)的補(bǔ)充;通過.NET框架類,可以直接訪問這些服務(wù)。.NET框架有幾個(gè)要素值得一提。首先是它的安全系統(tǒng)和配置系統(tǒng)。這兩個(gè)系統(tǒng)協(xié)同工作,有力地遏止了運(yùn)行不安全代碼的可能性,并大幅度減少了號稱“DLLHell”的對應(yīng)用程序進(jìn)行配置時(shí)所面臨的挑戰(zhàn)。安全系統(tǒng)是一個(gè)高度細(xì)化、基于事實(shí)的系統(tǒng),它賦予開發(fā)人員和管理員多種代碼處理權(quán)限(而不僅僅是“on”或“off”)。將來,還會根據(jù)代碼本身的核心要素來決定如何實(shí)施上述權(quán)限。例如,當(dāng).NET框架應(yīng)用程序被下載到某一系統(tǒng)中時(shí),它會申請一組權(quán)限(諸如對臨時(shí)目錄的寫入權(quán)限)。運(yùn)行時(shí)將收集有關(guān)應(yīng)用程序的事實(shí)信息(諸如:它是從何處下載的、是否用了有效簽名、甚至它訪問系統(tǒng)的準(zhǔn)確程度),并按管理策略決定是否允許應(yīng)用程序運(yùn)行。運(yùn)行時(shí)甚至還可告之應(yīng)用程序它無法授權(quán)申請的所有權(quán)限,并允許應(yīng)用程序自行決定是否繼續(xù)運(yùn)行。有這種安全系統(tǒng)作保障,許多應(yīng)用程序配置問題便會迎刃而解。開發(fā)人員和管理員(最終是用戶)所面臨的更大挑戰(zhàn)之一是版本的管理問題。如果在您新裝了某個(gè)應(yīng)用程序之后,一切都限于癱瘓狀態(tài),而在這之前系統(tǒng)一直運(yùn)行得非常良好,那么更大的可能是新安裝的應(yīng)用程序重寫了一些共享庫,并極有可能修正了現(xiàn)有應(yīng)用程序正使用的程序錯(cuò)誤。這種情況出現(xiàn)的頻率很高,以致人們將它稱為:“DLLHell”。.NET框架擁有的幾項(xiàng)高級功能可以徹底消除“DLLHell”現(xiàn)象。首先,它有一個(gè)非常強(qiáng)大的內(nèi)部命名系統(tǒng),能夠有效地防止兩個(gè)庫因互相重名而被錯(cuò)當(dāng)為對方的情況發(fā)生。除此之外,它還提供一項(xiàng)被稱作“并行”配置的新功能。如果前例中新安裝的應(yīng)用程序確實(shí)重寫了共享庫,現(xiàn)有應(yīng)用程序可對該庫進(jìn)行修復(fù)。等現(xiàn)有應(yīng)用程序再次啟動時(shí),它會檢查所有的共享文件。如果發(fā)現(xiàn)文件被更改,同時(shí)這些更改又是不兼容的,則它可以請求運(yùn)行時(shí)提取一個(gè)它可以使用的版本。得益于強(qiáng)大的安全系統(tǒng),運(yùn)行時(shí)可以安全地執(zhí)行該操作,這樣應(yīng)用程序就完成了本身的修復(fù)工作??傊?,Microsoft.NET開發(fā)框架在通用語言運(yùn)行時(shí)的基礎(chǔ)上,給開發(fā)者提供了完善的基礎(chǔ)類庫、下一代的數(shù)據(jù)庫訪問技術(shù)ADO.NET、網(wǎng)絡(luò)開發(fā)技術(shù)ASP.NET,開發(fā)者可以使用多種語言及VisualStudio.NET來快速構(gòu)建下一代的網(wǎng)絡(luò)應(yīng)用。隨著相關(guān)的互聯(lián)網(wǎng)標(biāo)準(zhǔn)及技術(shù)的普及,可以預(yù)言將會有越來越多的開發(fā)者采用這種開發(fā)結(jié)構(gòu),開發(fā)出豐富多樣的下一代互聯(lián)網(wǎng)應(yīng)用來。
DBFactory一個(gè)通用的數(shù)據(jù)庫操作類,可以訪問SQL,Oracle數(shù)據(jù)庫。
Public Function ConnectionString(ByVal ProviderName As String) As String
Dim ConnStr As String = “”
Select Case ProviderName
Case “System.Data.OleDb”
ConnStr = “Provider=SQLOLEDB;Server=” & My.Settings.ServerName & “;Database=” & My.Settings.DBName & “;UID=” & My.Settings.DBUser & “;PWD=” & My.Settings.DBPWD
Case “System.Data.SqlClient”
ConnStr = “Data Source=” & My.Settings.ServerName & “;Initial Catalog=” & My.Settings.DBName & “;Persist Security Info=True;User ID=” & My.Settings.DBUser & “;Password=” & My.Settings.DBPWD
Case “System.Data.OracleClient”
ConnStr = “Data Source=” & My.Settings.ServerName & “;Password=” & My.Settings.DBPWD & “;User ID=” & My.Settings.DBUser
End Select
Return ConnStr
End Function
Public Function GetData(ByVal SqlString As String) As DataTable
Try
Dim mProvider As DbProviderFactory = DbProviderFactories.GetFactory(My.Settings.Provider)
Dim mConnection As DbConnection = mProvider.CreateConnection
mConnection.ConnectionString = ConnectionString(My.Settings.Provider)
Dim mCmd As DbCommand = mProvider.CreateCommand
mCmd.CommandText = SqlString
mCmd.Connection = mConnection
Dim mAda As DbDataAdapter = mProvider.CreateDataAdapter
mAda.TableMappings.Add(“table”, “temp”)
mAda.SelectCommand = mCmd
mConnection.Open()
mCmd.ExecuteNonQuery()
mConnection.Close()
Dim dst As New DataSet
mAda.Fill(dst, “temp”)
Return dst.Tables(“temp”)
Catch ex As Exception
Return New DataTable
End Try
End Function
.ne數(shù)據(jù)庫通用訪問類的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于.ne數(shù)據(jù)庫通用訪問類,.NET數(shù)據(jù)庫訪問類,靈活實(shí)用的選擇,net框架主要是哪幾部分組成?,DBFactory一個(gè)通用的數(shù)據(jù)庫操作類,可以訪問SQL,Oracle數(shù)據(jù)庫。的信息別忘了在本站進(jìn)行查找喔。
成都服務(wù)器租用選創(chuàng)新互聯(lián),先試用再開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡單好用,價(jià)格厚道的香港/美國云服務(wù)器和獨(dú)立服務(wù)器。物理服務(wù)器托管租用:四川成都、綿陽、重慶、貴陽機(jī)房服務(wù)器托管租用。
分享題目:.NET數(shù)據(jù)庫訪問類,靈活實(shí)用的選擇 (.ne數(shù)據(jù)庫通用訪問類)
URL地址:http://m.fisionsoft.com.cn/article/dpdcehd.html


咨詢
建站咨詢
