ADO.NET architektúra
Az adatfeldolgozás hagyományosan elsősorban egy kapcsolatalapú, kétrétegű modellre támaszkodik. Mivel az adatfeldolgozás egyre inkább többrétegű architektúrákat használ, a programozók leválasztott megközelítésre váltanak, hogy jobb skálázhatóságot biztosítsanak az alkalmazásaik számára.
ADO.NET összetevők
Az adatok elérésére és manipulálására szolgáló ADO.NET két fő összetevője a .NET-keretrendszer adatszolgáltatók és a DataSet.
.NET-keretrendszer adatszolgáltatók
A .NET-keretrendszer adatszolgáltatók olyan összetevők, amelyeket kifejezetten az adatok kezelésére és az adatok gyors, csak továbbítható, írásvédett elérésére terveztek. Az Connection
objektum kapcsolatot biztosít egy adatforrással. Az Command
objektum lehetővé teszi az adatbázis-parancsok hozzáférését az adatok visszaadásához, az adatok módosításához, a tárolt eljárások futtatásához, valamint a paraméteradatok elküldéséhez vagy lekéréséhez. Ez DataReader
nagy teljesítményű adatfolyamot biztosít az adatforrásból. Végül a DataAdapter
híd az objektum és az DataSet
adatforrás között. Command
Az DataAdapter
objektumok sql-parancsokat hajtanak végre az adatforrásban az adatok betöltéséhezDataSet
, és egyeztetik a DataSet
háttérbeli adatokon végrehajtott módosításokat az adatforrással. További információ: .NET-keretrendszer adatszolgáltatók, valamint az adatok beolvasása és módosítása ADO.NET.
Az adatkészlet
A ADO.NET DataSet
kifejezetten az adatforrástól független adathozzáféréshez lett kialakítva. Ennek eredményeképpen több és eltérő adatforrással is használható, XML-adatokkal használható, vagy az alkalmazás helyi adatainak kezelésére használható. A DataSet
gyűjtemény egy vagy több DataTable objektumból áll, amelyek adatsorokból és oszlopokból, valamint elsődleges kulcsból, idegen kulcsból, kényszerből és relációs adatokból állnak.DataTable
További információ: DataSets, DataTables és DataViews.
Az alábbi ábra egy .NET-keretrendszer adatszolgáltató és egy DataSet
.
ADO.NET architektúra
DataReader vagy DataSet kiválasztása
Amikor eldönti, hogy az alkalmazásnak használnia kell-e ( DataReader
lásd : Adatok lekérése DataReaderrel) vagy ( DataSet
lásd : DataSets, DataTables és DataViews), vegye figyelembe az alkalmazás által igényelt funkciók típusát. Az a DataSet
használatával tegye a következőket:
Az adatok helyi gyorsítótárazása az alkalmazásban, hogy manipulálhassa őket. Ha csak egy lekérdezés eredményeit kell elolvasnia, a
DataReader
jobb választás.Távoli adatok rétegek között vagy XML-webszolgáltatásból.
Dinamikusan kezelheti az adatokat, például a Windows Forms-vezérlőkhöz való kötést, illetve több forrásból származó adatok kombinálását és összekapcsolását.
Átfogó adatfeldolgozást végezhet az adatokon anélkül, hogy nyílt kapcsolatot kellene létesítenie az adatforrással, ami felszabadítja a kapcsolatot más ügyfelek számára.
Ha nincs szüksége a szolgáltatás által DataSet
biztosított funkciókra, javíthatja az alkalmazás teljesítményét azáltal, hogy az DataReader
adatokat csak előre, írásvédett módon adja vissza. Bár a DataAdapter
használatával DataReader
kitöltheti egy DataSet
adathalmaz tartalmát (lásd : Adathalmaz feltöltése egy DataAdapterből), a használatával növelheti a DataReader
teljesítményt, mivel a rendszer menti a felhasznált memóriát DataSet
, és elkerüli a tartalom létrehozásához és kitöltéséhez DataSet
szükséges feldolgozást.
LINQ–DataSet
A LINQ to DataSet lekérdezési képességeket és fordítási idő típusú ellenőrzést biztosít az adathalmaz-objektumban gyorsítótárazott adatokon. Lehetővé teszi lekérdezések írását a .NET-keretrendszer fejlesztési nyelv egyikén, például c# vagy Visual Basic nyelven. További információ: LINQ to DataSet.
LINQ to SQL
A LINQ to SQL támogatja a relációs adatbázis adatstruktúráihoz leképezett objektummodellek lekérdezéseit köztes fogalmi modell használata nélkül. Minden táblát egy külön osztály jelöl, amely szorosan összekapcsolja az objektummodellt a relációs adatbázis sémával. A LINQ to SQL lefordítja az objektummodell nyelvvel integrált lekérdezéseit Transact-SQL-nek, és elküldi őket az adatbázisnak végrehajtás céljából. Amikor az adatbázis visszaadja az eredményeket, a LINQ az SQL-nek visszaadja az eredményeket objektumokká. További információ: LINQ–SQL.
ADO.NET Entity Framework
A ADO.NET Entity Framework úgy lett kialakítva, hogy lehetővé tegye a fejlesztők számára az adatelérési alkalmazások létrehozását úgy, hogy a relációs tárolósémán való közvetlen programozás helyett egy elméleti alkalmazásmodellen keresztül programozással hozzanak létre adatelérési alkalmazásokat. A cél az adatorientált alkalmazásokhoz szükséges kód és karbantartás mennyiségének csökkentése. További információ: ADO.NET Entity Framework.
WCF Data Services
A WCF Data Services az adatszolgáltatások webes vagy intranetes üzembe helyezésére szolgál. Az adatok entitásokként és kapcsolatokként épülnek fel az entitás adatmodell specifikációinak megfelelően. Az ezen a modellen üzembe helyezett adatok szabványos HTTP-protokoll alapján kezelhetők. További információ: WCF Data Services 4.5.
XML és ADO.NET
ADO.NET az XML erejét kihasználva leválasztott hozzáférést biztosít az adatokhoz. ADO.NET a .NET-keretrendszer XML-osztályaival együtt tervezték; mindkettő egyetlen architektúra összetevői.
ADO.NET és a .NET-keretrendszer XML-osztályai az objektumban konvergálnakDataSet
. Az DataSet
adatok feltölthetők XML-forrásból származó adatokkal, legyen szó fájlról vagy XML-adatfolyamról. A DataSet
world-Wide Web Consortium (W3C) kompatibilis XML-fájlként írható, amely a sémát XML-sémadefiníciós nyelvként (XSD) tartalmazza, függetlenül attól, hogy a rendszer milyen forrást tartalmaz az adatokban DataSet
. Az XML natív szerializálási formátuma DataSet
miatt kiváló eszköz az adatok rétegek közötti áthelyezéséhez, így optimális választás az DataSet
adatok és sémakörnyezet xml-webszolgáltatásba való áthelyezéséhez és onnan való áthelyezéséhez. További információ: XML-dokumentumok és adatok.