Technológia C ado. NET

Venované tým, ktorí píšu otázky do kódu stránky...

Pozdravujem všetkých!

O Habrém je niekoľko informácií, že ďalšia verzia VisualStudio 2008 bude mať ADO.NET EntityFramework. (Poviem vám tajomstvo, táto verzia sa už objavila.) Tento vývoj je univerzálny rámec, ktorý vám umožňuje vytvoriť dátovú logiku pre váš projekt niekoľkými kliknutiami myšou.
Pri práci s dátovou logikou som sa zatiaľ stretol s 2 typmi projektov. Prvé boli vytvorené na notoricky známom frameworku NHibernate, ďalšie implementovali programátori. Už 3 roky píšem a vyvíjam rôzne systémy a celý ten čas som rozvíjal logiku práce výhradne s týmito kľučkami.
A tak, druhý deň, keď som si nainštaloval nový Windows, stiahol som si VisualStudio WebDeveloper Express a bol som šťastný, že som v balíku našiel ADO.NET EntityFramework. Po nejakom čase som si zaregistroval doménu, vytvoril jednoduchú webovú stránku a začal trénovať svoju silu v písaní programov pre tento framework.

Najprv musíte vytvoriť jednoduchý webový projekt s databázou. Tiež by bolo pekné okamžite sa pripojiť k databáze cez DataBase Explorer. Neskôr to bude pohodlnejšie.

Potom musí byť do projektu pridaný nový prvok „ADO.NET Entity Data Model“.

Systém bude musieť špecifikovať reťazec na pripojenie k databáze, ako aj určiť, odkiaľ bude pochádzať prvý model ADO.NET EF.

Vo svojej databáze už mám dve veľmi jednoduché tabuľky Post a User, takže som bez ďalších okolkov prinútil systém vytvoriť model na základe mojej databázy. Po tom všetkom veľmi jednoduché akcie, Mám funkčný db model. Navyše, keď som si tento model preštudoval vizuálne, nezabudol som sa pozrieť do kódu a zistiť, ako framework popisuje všetky moje triedy?

  1. namespace DataBaseCore
  2. ///
  3. /// V schéme nie sú žiadne komentáre pre DbModel.
  4. ///
  5. verejná čiastočná trieda DbModel: global::System.Data.Objects.ObjectContext
  6. ///
  7. /// Inicializuje nový objekt DbModel pomocou pripájacieho reťazca, ktorý sa nachádza v sekcii "DbModel" konfiguračného súboru aplikácie.
  8. ///
  9. public DbModel() :
  10. base("name=DbModel" , "DbModel" )
  11. toto .OnContextCreated();
  12. /* Orezané ako zbytočné */
  13. verejná čiastočná trieda Príspevok: global::System.Data.Objects.DataClasses.EntityObject
  14. ///
  15. /// Vytvorenie nového objektu Post.
  16. ///
  17. /// Počiatočná hodnota Id.
  18. verejný statický príspevok CreatePost(int id)
  19. Príspevok príspevku = nový príspevok();
  20. post.Id = id;
  21. návratový príspevok;

Vyškolené oko špecialistu na dátovú logiku ukázalo prítomnosť pomerne jednoduchej a elegantnej triedy, ktorá umožňovala prácu s príspevkami v systéme aj s používateľmi.

Nuž, kód už máme, zostáva len začať ho používať. A tu sa nám odhaľujú všetky kúzla a možnosti ASP.NET. Medzi značným počtom zdrojov údajov na stránke som videl zdroj údajov entity, ktorý s radosťou poskytuje údaje na požiadanie z našej triedy. Pretiahneme ho do formulára, spustíme sprievodcu nastavením a rýchlo pripojíme zdroj údajov k našej tabuľke príspevkov.

Oveľa príjemnejším sa nepochybne stal popis datasortu v kóde ASPX.

  1. < asp:EntityDataSource ID ="dsPosts" runat ="server" ConnectionString ="name=DbModel"
  2. DefaultContainerName ="DbModel" EntitySetName ="Príspevok" >
* Tento zdrojový kód bol zvýraznený pomocou Zvýrazňovača zdrojového kódu.

Dá sa povedať – žiari milosťou.

Potom, čo sa poskytovateľ údajov objaví vo formulári, je potrebný aj spotrebiteľ. Bez toho, aby som bol chytrý, pridal som jednoduchý kód, ktorý jednoducho zobrazuje všetky príspevky v poradí.

  1. < asp:Repeater runat ="server" ID ="repPosts" DataSourceID ="dsPosts" >
  2. < HeaderTemplate >
  3. < ItemTemplate >
  4. < div >
  5. < h3 >
  6. < asp:Label ID ="lblHeader" runat ="server" Text ="<%# Eval("Header") %>" >
  7. < p >
  8. < asp:Label ID ="lblText" runat ="server" Text ="<%# Helpers.TypographText(Eval("Text").ToString()) %>" >
* Tento zdrojový kód bol zvýraznený pomocou Zvýrazňovača zdrojového kódu.

A tu sa končí najjednoduchšia časť môjho príbehu. Všetko, čo sa doteraz urobilo, sa dá zopakovať pomocou myši. Bolo to dosť ľahké. Práve sme vytvorili objektovo orientovaný pohľad na databázu a pomocou tohto pohľadu sme začali na stránke zobrazovať dáta z databázy. Zároveň sme nikdy nenapísali jedinú požiadavku, nedostali sme údaje priamo z databázy atď ...

Čo ale zobraziť používateľovi, ak v databáze nič nemáme? Nie dobré. Na vyplnenie databázy musíte napísať formulár. Teraz ukončíme programovanie myši a začneme písať kód.

Urobil som dve najzákladnejšie úkony pre prácu s príspevkami v systéme – to je pridávanie a mazanie. Urobiť úpravy analogicky s týmto kódom nebude pre nikoho ťažké.

  1. menný priestor DBW
  2. príspevok verejnej triedy
  3. verejný príspevok()
  4. public static void New(String PostText, String PostHeader, Int32 UserId)
  5. p.Header = PostHeader;
  6. p.Text = Pomocníci.TypographText(PostText);
  7. p.PublishDate = DateTime.Now;
  8. p.User = (z usr v m.User kde usr.Id == UserId vyberte usr).First();
  9. m.AddToPost(p);
  10. m.SaveChanges();
  11. public static void Delete (Int32 PostId)
  12. DataBaseCore.DbModel m = new DataBaseCore.DbModel();
  13. DataBaseCore.Post p = new DataBaseCore.Post();
  14. p = (z pst v m.Post kde pst.Id == PostId vyberte pst).First();
  15. m.DeleteObject(p);
  16. m.SaveChanges();
* Tento zdrojový kód bol zvýraznený pomocou Zvýrazňovača zdrojového kódu.

Zdalo by sa, že všetko je jednoduché a áno, je. Existuje však niekoľko nuancií.
Po prvé, je to LINQ. Bez toho nie je ADO.NET nikde. Takže by ste sa nemali vyhýbať a vo všeobecnosti bodovať na SQL alebo LINQ, stále musíte písať dotazy.
Po druhé, tento kód je automaticky generovaný rámcom, takže v niektorých bodoch nebudete musieť očakávať veľa pohodlia a mali by ste byť vždy pripravení zmeniť kód už vytvorený štúdiom. Napríklad tu v riadku 16 by bolo pohodlnejšie použiť nie objekt typu užívateľa, ktorý som musel vybrať z databázy, ale okamžite odovzdať hodnotu identifikátora užívateľa. Pre tento kód by to bolo pohodlnejšie, ale nie je univerzálne. Preto je potrebné kód zlepšiť a premyslieť. Možno len potrebujete odovzdať nie ID užívateľa, ale objekt typu užívateľ.

Čo bude ďalej? Ďalej budem pokračovať v písaní projektu, ponorením sa do divočiny ADO.NET Entity Framework a rád sa s vami podelím o svoj výskum, milí habrauseri. Podľa toho pribudnú nové články so serióznejšími a hlbšími údajmi.

UPD. Téma je veľmi široká. Nie je tu zverejnené ani percento možností, ale pokračovanie bude 8-)

Technológie ADO .NET, . Internetová sieť, CORBA

Technológia vzdialeného prístupu k databáze ADO .NET bola vyvinutá aj pre architektúru klient-server. Okrem dvoch úrovní vzdialených databáz – klient a server – sa objavujú ďalšie úrovne – servery obchodnej logiky, ktoré implementujú obchodnú logiku aplikácií.

Technológia ADO .NET vytvára pre klienta nasledujúcu schému na prácu s databázovým serverom:

Vytvorenie spojenia so serverom;

Získanie potrebných údajov;

Zatvorenie spojenia;

Spracovanie dát;

Vytvorenie spojenia na prenos zmenených údajov späť na server.

ADO .NET je založený na dvoch hlavných moduloch:

Poskytovateľ údajov .NET FrameWork

Rezidentná relačná databáza (DataSet).

Poskytovateľ dát, ako už názov napovedá, je zodpovedný za komunikáciu aplikácie so zdrojom údajov a za manipuláciu s nimi. Poskytovateľ údajov zahŕňa nasledujúce objekty manipulácie s údajmi:

a) Pripojenie sa používa na vytvorenie pripojenia k zdroju údajov, ako aj na správu transakcií.

b) Príkaz vám umožňuje manipulovať so zdrojovými údajmi, ako aj vykonávať uložené procedúry. V tomto prípade je možné použiť parametre pre prenos dát v oboch smeroch.

c) DataAdapter slúži ako prepojenie medzi rezidentnou databázou DataSet a zdrojom údajov a zvyčajne používa objekt Command na vykonávanie príkazov SQL tak pri napĺňaní DataSet údajmi, ako aj pri spätnom odosielaní údajov zmenených klientom do zdroja. Má štyri spôsoby vykonávania týchto funkcií: SelectCommand, InsertCommand, UpdateCommand a DeleteCommand.

d) DataReader poskytuje údaje zo zdroja len na čítanie. Ak klientska aplikácia nemodifikuje dáta a nevyžaduje svojvoľný výber dát, ale stačí jednorazové zobrazenie, potom použitie DataReadera namiesto DataSet ušetrí počítačové zdroje, ako aj zvýši výkon aplikácie.

Rezidentná relačná databáza je relačná databáza prijatá klientom, ktorá je uložená v jeho rezidentnej RAM.

Klient ďalej offline spracuje dáta a v prípade potreby ich upraví, po čom sa opäť vytvorí spojenie so serverom a upravené informácie z rezidentskej databázy sa prenesú späť.

Takáto schéma interakcie je trochu podobná práci architektúry súborov -

server a často ho používajú podniky pri práci so vzdialenými databázami cez globálnej siete internet.

Na zabezpečenie prístupu k objektom cez globálny internet bol ako súčasť ADO .NET poskytnutý modul .NET FrameWork, ktorý poskytuje interakciu medzi rôznymi formátmi prezentácie údajov vrátane HTML a XML.

Z týchto charakteristík je zrejmé, že technológia ADO .NET poskytuje:

Schopnosť interakcie medzi údajmi rôznych formátov vrátane HTML a XML;

Výrazná úspora nákladov pri práci so vzdialenými databázami cez globálny internet.

Posledná aktualizácia: 31.10.2015

V dnešnej dobe je práca s dátami veľmi dôležitá. Používa sa na ukladanie údajov rôzne systémy správa databázy: MS SQL Server, Oracle, MySQL a tak ďalej. A väčšina veľkých aplikácií využíva tieto systémy správy databáz tak či onak na ukladanie údajov. Na komunikáciu medzi databázou a aplikáciou C# je však potrebný sprostredkovateľ. A práve takým sprostredkovateľom je technológia ADO.NET.

ADO.NET poskytuje dátovú technológiu, ktorá je založená na .NET Framework. Táto technológia nám predstavuje množinu tried, prostredníctvom ktorých môžeme posielať dotazy do databáz, nadväzovať spojenia, prijímať odpoveď z databázy a vykonávať množstvo ďalších operácií.

Okrem toho je dôležité poznamenať, že môže existovať veľa systémov správy databáz. V podstate sa môžu líšiť. Používa napríklad MS SQL Server jazyk T-SQL, zatiaľ čo MySQL a Oracle používajú PL-SQL. Rôzne databázové systémy môžu mať rôzne typy údajov. Ostatné body sa tiež môžu líšiť. Funkcionalita ADO.NET je však postavená tak, aby vývojárom poskytla jednotné rozhranie pre prácu so širokou škálou DBMS.

Databázové rozhranie v ADO.NET je založené na obmedzenom rozsahu objektov: Connection, Command, DataReader, DataSet a DataAdapter. Objekt Connection vytvorí pripojenie k zdroju údajov. Objekt Command vám umožňuje vykonávať operácie s údajmi z databázy. Objekt DataReader číta údaje prijaté ako výsledok požiadavky. Objekt DataSet je určený na ukladanie údajov z databázy a umožňuje s nimi pracovať nezávisle od databázy. A objekt DataAdapter je prostredníkom medzi množinou údajov a zdrojom údajov. Hlavne cez tieto objekty pôjde práca s databázou.

Ak však chcete použiť rovnakú množinu objektov pre rôzne zdroje údajov, je to vhodné poskytovateľa údajov. V skutočnosti sa prostredníctvom poskytovateľa údajov v ADO.NET uskutočňuje interakcia s databázou. Navyše pre každý dátový zdroj v ADO.NET môže existovať vlastný poskytovateľ, ktorý vlastne určuje konkrétnu implementáciu vyššie uvedených tried.

V predvolenom nastavení má ADO.NET nasledujúcich vstavaných poskytovateľov:

    Poskytovateľ pre MS SQL Server

    Poskytovateľ pre OLE DB (Poskytuje prístup k niektorým starým verziám MS SQL Server, ako aj k databázam Access, DB2, MySQL a Oracle)

    Poskytovateľ pre ODBC (Poskytovateľ pre tie zdroje údajov, pre ktoré neexistujú poskytovatelia)

    Poskytovateľ pre Oracle

    Poskytovateľ EntityClient. Poskytovateľ dát pre technológiu ORM Entity Framework

    Poskytovateľ pre SQL Server Compact 4.0 Server

Okrem týchto poskytovateľov, ktorí sú zabudovaní, existuje aj mnoho ďalších určených pre rôzne databázy, ako napríklad MySQL.

Hlavné menné priestory, ktoré sa používajú v ADO.NET, sú:

    System.Data: definuje triedy, rozhrania, delegátov, ktorí implementujú architektúru ADO.NET

    System.Data.Common: obsahuje triedy spoločné pre všetkých poskytovateľov ADO.NET

    System.Data.Design: definuje triedy, ktoré sa používajú na vytváranie vlastných množín údajov

    System.Data.Odbc: Definuje funkčnosť poskytovateľa údajov pre ODBC

    System.Data.OleDb: Definuje funkčnosť poskytovateľa údajov pre OLE DB

    System.Data.Sql: Ukladá triedy, ktoré podporujú špecifické funkcie SQL Server

    System.Data.OracleClient: Definuje funkcionalitu poskytovateľa pre databázy Oracle

    System.Data.SqlClient: definuje funkcionalitu poskytovateľa pre databázy MS SQL Server

    System.Data.SqlServerCe: Definuje funkčnosť poskytovateľa pre SQL Server Compact 4.0

    System.Data.SqlTypes: obsahuje triedy pre dátové typy MS SQL Server

    Microsoft.SqlServer.Server: Ukladá komponenty pre SQL Server na komunikáciu so spoločným jazykovým modulom runtime

Schematicky môže byť architektúra ADO.NET znázornená nasledovne:

Funkčne možno triedy ADO.NET rozdeliť na dve úrovne: pripojené a odpojené. Každý poskytovateľ údajov .NET implementuje svoju vlastnú verziu Connection, Command, DataReader, DataAdapter a množstvo ďalších objektov, ktoré tvoria pripojenú vrstvu. To znamená, že pomocou nich sa vytvorí spojenie s databázou a vykoná sa interakcia s ňou. Implementácie týchto objektov pre každého konkrétneho poskytovateľa majú spravidla v názve predponu, ktorá označuje poskytovateľa:

Iné triedy ako DataSet, DataTable, DataRow, DataColumn a množstvo ďalších tvoria odpojenú vrstvu, pretože akonáhle sú dáta načítané do DataSet, môžeme s týmito dátami pracovať bez ohľadu na to, či je spojenie vytvorené alebo nie. To znamená, že po prijatí údajov z databázy je možné aplikáciu odpojiť od zdroja údajov.

Keď architekti n-tier architektúry hodnotia novú technológiu, vzor alebo stratégiu, rozhodujú sa, ako tento nový kúsok skladačky zapadne do architektúry. Ak existuje Entity Framework, integrácia nespôsobuje žiadne ťažkosti. Môže byť integrovaný do n-vrstvovej architektúry, ako aj do jednovrstvovej architektúry.

19.03.2009 15:32

Časté otázky týkajúce sa rámca entít

Pochopenie modelovania entít, mapovanie takýchto modelov na relačné databázy a navrhovanie modelov údajov entít (EDM) sú prvé kroky k pochopeniu rámca entít. Tento článok začnem odpoveďami na otázky o základoch Entity Framework vrátane triedy ObjectContext a potom odpoviem na otázky, kedy a kde používať Entity Client s Entity SQL. Okrem toho plánujem vysvetliť rozdiel medzi EntityClient a Object Services a dôsledky používania LINQ a Entity SQL dotazov spolu s týmito službami.

16.02.2009 15:15

Prehľad ADO.NET Entity Framework

V vydaní vizuálne štúdio V roku 2008 ADO.NET predstavuje novú architektúru Entity Framework. Umožňuje vývojárom pristupovať k údajom pomocou objektového modelu namiesto logického alebo relačného dátového modelu. Entity Framework pomáha abstrahovať logický diagram dáta do konceptuálneho modelu a poskytuje niekoľko spôsobov interakcie s konceptuálnym modelom prostredníctvom Object Services a nového poskytovateľa dát s názvom EntityClient. Tento mesiac článok pojednáva o tom, čo je Entity Framework, ako sa vzťahuje na aplikáciu a ako s tým myslieť na dizajn a programovanie.

13.02.2009 18:44

Vývoj dátového modelu entity s rámcom entity

Entity Framework je Nová technológia, navrhnutý pre ADO.NET. Umožňuje vývojárom vizualizovať údaje pomocou logického modelu namiesto fyzického modelu, čo poskytuje určitú flexibilitu vývoja. V júlovom čísle časopisu 2007 sme uviedli pod názvom „Dátové body“. podrobný prehľad Entity Framework technológie (oficiálne by mala byť vydaná v prvej polovici roku 2008).

13.02.2009 18:33

Používanie atribútov na normalizáciu a overenie obchodných entít

V podnikovom programovaní pri navrhovaní vrstvy prístupu k dátam často vyvstáva otázka práce s obchodnými objektmi (podnikateľskými subjektmi): ide o načítanie/zmenu/uloženie a presun medzi úrovňami. Sú na to dva hlavné prístupy – pomocou vlastných podnikateľských subjektov resp štandardné prostriedky(ADO.NET poskytuje celkom pohodlné spôsoby, ako to urobiť) - pomocou DataSet.

20.01.2007 03:54

ADO.NET: Prehľad technológie

Mnoho programátorov pracujúcich s databázami na platformy Microsoft, mohli oceniť jednoduchosť a pohodlie technológie ADO - ActiveX Data Objects. Intuitívne rozhranie a logická sada objektov spolu s jednoduchosťou programovania zaslúžene získali uznanie od programátorov. Napriek tomu Microsoft spolu s novou platformou .NET uvádza aj novú generáciu nástrojov na prístup k databázam – ADO.NET.

27.12.2006 01:32

Operácie s údajmi s hierarchickou štruktúrou. Vývoj distribuovaných aplikácií v .NET

Tento článok demonštruje techniku ​​čítania a zápisu hierarchických sád riadkov v zdroji údajov. V príkladoch kódu uvedených v tomto článku sa pripojte k databáze údaje spoločnosti Microsoft SQL Server alebo Microsoft Desktop Engine (MSDE) používa spravovaného poskytovateľa SQL. Ak sa chcete pripojiť k iným zdrojom údajov kompatibilným s OLEDB, použite poskytovateľa spravovaného ADO.

27.12.2006 01:26

Práca s údajmi offline v ADO.NET

ADO.NET, na rozdiel od svojich predchodcov ADO a OLE DB, bol navrhnutý špeciálne pre použitie v webových aplikácií, kde neexistujú žiadne trvalé pripojenia k databáze. Tradičná práca s dátami v ADO.NET je postavená podľa nasledujúcej schémy: Pripojenie, potom sa otvorí metódou Open, vytvorí sa zapuzdrený objekt Command SQL príkaz, vykoná sa a spojenie sa potom uzavrie. Tento prístup poskytuje vláknový prístup k výsledkom dotazu. Tie. pri čítaní údajov pomocou DataReadera nemôžete preskočiť viacero záznamov ani sa vrátiť k predchádzajúcemu. Prístup k streamovaniu má maximálny výkon.



Načítava...
Hore