.NET 3.5 SP1 = Adatkezelés vNext

Tegnap elkészült az SQL Server 2008 és hozzá a .NET Framework 3.5 és a Visual Studio 2008 első javítócsomagja. Azonban nem csak egy egyszerű javításról van szó, hanem számos olyan technológia válik ezáltal elérhetővé, amely jelentősen kibővíti a lehetőségeinket az adatkezelés terén.

Már hosszú ideje teljesen nyilvánvalóvá vált, hogy az adatkezelés terén drasztikus újításokra van szükség, hogy az ORM jellegű favágómunkát egyszerűsítsük. Bár már a korábbi Visual Studio verziókban is számos varázsló segítette ezt a munkát, az igazi változást a .NET Framework 3.5 verziójában megjelent LINQ to SQL hozta el, amely a Visual Studio 2008 RTM változatban dizájner támogatást is kapott. A lekérdezések nyelvbe integrálásával Anders Hejlsberg megint nagyot alakított, azonban ennek a megközelítésnek van egy jellegzetessége: szorosan kapcsolja össze az adatbázist a forráskód osztályaival és objektumaival. Ez egyesek szerint a technológia gyenge pontja, mások szerint kevésbé; a lényeg, hogy néha praktikus, néha zavaró.

Nem véletlenül nézett a fejlesztői társadalom nagy várakozással a LINQ to SQL-re épülő ADO.NET Entity Framework elé, amely nagyobb rugalmasságot ad a fejlesztők kezébe: segítségével definiálható a jól ismert egyed-kapcsolat modellen alapuló Entity Data Model (EDM), sőt le is kérdezhető a hozzá fejlesztett Entity SQL nyelv segítségével. Mindez lehetővé teszi, hogy az adatbázis-szerkezet pontos ismerete nélkül kezeljünk adatokat, pusztán a logikai szinten mozogva.

Sokak szerint ez a Microsoft első igazi ORM megoldása (szerintem a LINQ to SQL is már az), amely megpróbál minden adatkezelési problémára megoldást adni. Lévén az adatkezelési problémák tere óriási, így a technológia sem lett egyszerű: új XML leírások, modellek, dizájnerek és lekérdező nyelv rögös útjain kell haladnia a fejlesztőnek. Nem véletlen, hogy az Entity Framework nem készült el korábban, hanem csak most, az SP1-ben teszi a Microsoft elérhetővé – bár sokak szerint a technológia még nem teljesen életképes. Lássuk be, valahol mindent el kell kezdeni, ez az 1.0 változat.

A LINQ to SQL és az Entity Framework két kiváló technológia, mindkettő remekül programozható .NET-ből. De mi van akkor, ha a kliensnek fogalma sincs a .NET Frameworkről? Akkor megtehetjük, hogy kipublikálhatjuk az adatokat például egy webszolgáltatáson keresztül, hiszen az ráadásul (elvileg) platform független is. Bár mi a Visual Studio dizájner támogatásának köszönhetően nagyon könnyen írunk és hívunk webszolgáltatásokat, ez nem minden környezetben ilyen egyszerű. (Aki próbált már például JavaScriptből SOAP protokollon kommunikálni, tudja, hogy miről beszélek.) Ráadásul nem is mindig szükséges, sokszor tényleg csak alapműveletekre, leggyakrabban szűrt lekérdezésekre van szükség, amihez a webszolgáltatás csak felesleges overhead. Van a SOAP-nál egyszerűbb módszer, ami tökéletesen működik az interneten, úgy hívják Representational State Transfer, azaz REST. Sokat lehetne arról vitatkozni, hogy pontosan mitől lesz egy szolgáltatás RESTful, abban azonban minden szerző egyetért, hogy a kérések lényege az URL-ben van: nem bohóckodunk a metódushívás és a paraméterek csomagolásával, mindet beleírjuk az URL-be, lehetőleg query string paraméterek nélkül. Egy URL-re HTTP kérést küldeni és a választ feldolgozni pedig a mai világban minden nyelvből lehet. Képzeljünk el egy egyszerű webkijelzőt vagy sidebar gadgetet, ami mögött nem ülhet DLL, vagy egy böngészőbe ültetett Flash vagy Silverlight plugint, amely az interneten keresztül szerezné be a szükséges adatokat. De persze a REST használható vastag kliens környezetben is, tipikusan akkor, ha egyszerű interfészt kell adni vagy hívni a platformfüggetlenség érdekében. Ezekben az esetekben segíthet a .NET Framework 3.5 SP1-ben megjelent ADO.NET Data Services, gyerekkori nevén az “Astoria”.

Ha már web és adatkezelés: a Microsoft szerint annyira gyakori az adatkezeléssel kapcsolatos programozási feladat webes környezetben, hogy itt is lehetne fordítani az eddigi hagyományokon: ahelyett, hogy a korábbiakhoz hasonlóan nulláról építenénk fel egy adatbázison alapuló weboldalt, hagyjuk, hogy az ASP.NET Dynamic Data keretrendszer automatikusan felépítse azt nekünk és mi csak testreszabjuk azt az igényeinknek megfelelően. Ezt hívják data scaffoldingnek. Természetesen a háttérben LINQ to SQL vagy Entity Framework alapú adatmodell dolgozik, a testreszabást pedig az ASP.NET alapjai, mesterlapok és új vezérlők biztosítják. Ez a technológia korábban BLinq néven futott, akkor próbaként megcsinálták vele a www.asp.net oldal prototípusát, majd dolgoztak rajta közel 2 további évet. Természetesen ez is 1.0 technológia, de bízunk az ASP.NET csapatban, amely Scott Guthrie vezetésével már sokat tett le az asztalra.

Mindezek csak a .NET Framework 3.5 SP1 újdonságai, de itt van még az SQL Server 2008 is. Meg sem próbálom leírni azt a rengeteg újítást, amit 3 év alatt beépítettek, csak kiemelek két dolgot. Letölthető a Microsoft Sync Framework v1, amely elsősorban az ún. occasionally connected alkalmazások fejlesztéséhez nyújt segítséget, amelyek néha a hálózaton el tudják érni a működésükhöz szükséges adatbázis szervert és webszolgáltatásokat, máskor nem. A Sync Framework provider alapú, a Microsoft ADO.NET, fájl rendszer és RSS-ATOM feedek szinkronizálásához szükséges providereket szállít. Mindezek egyébként nem csak kliens-szerver, hanem peer-to-peer modellben, akár WCF felett is használhatóak, sőt van támogatás mobil eszközre és SQL Server Compact Editionre is. Ha SQL Server 2008-cal kombináljuk a Sync Services for ADO.NET v2-t, akkor még az SQL Server 2008 change tracking szolgáltatását is kihasználhatjuk. (Most készült el a Sync Services for ADO.NET v2, amely az új Sync Framework v1-re épül, annak részeként érhető el. A v1 még önálló volt.)

A másik SQL Server 2008-cal kapcsolatos technológia, amit ki kell emelnem, az SQL Server Data Services (nem összekeverendő az ADO.NET Data Services-zel). Az SSDS lényegében egy hosztolt adatközpont szolgáltatás, amelyhez a Microsoft adja a hardvert, a szoftvert, az üzemeltetést, megbízhatóságot, rendelkezésre állást, mindent. Bár a háttérben SQL Serverek ketyegnek, nem egyszerű relációs adatbázis szolgáltatásról van szó: attribútum-érték párokat tárolhatunk a rendszerben, amely így “minőségileg többre képes szupererőforrás” szolgáltatássá válik. A szolgáltatás egyelőre béta változatban érhető el.

Mindez csak néhány újítás azok közül, amikkel találkozhatunk, ha beleássuk magunkat a .NET Framework 3.5 SP1-be. Számos új funkció és természetesen javítás is található még a csomagban az ASP.NET, WinForms és WPF fejlesztők vagy éppen a TFS-t használó fejlesztőcsoportok számára. A hangsúly azonban az adatkezelésen van.

Kezdhetünk tanulni.

 

Linkek és letöltések:

 

One thought on “.NET 3.5 SP1 = Adatkezelés vNext

  1. András

    Nem rossz az Entity Framework, de amennyire nézegettem pl.: adatbázissémát nem tud legenerálni, csak egy meglévő sémára tud mappelni. Bár ígérik, hogy v2-ben ez benne lesz, azért szerintem ez már v1-be illő lett volna.A Linq2SQL meg talán azért nem igazi ORM, mert pl.: N-M kapcsolatokat nem tud külön segédobjektum nélkül kezelni.Ezektől függetlenül mind a 2 jól használható technológia, sokkal kényelmesebben használhatóak, mint a Java-s megfelelőik (JPA, …), bár tudásban még nem tartanak ott.

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s