Windows Azure Storage újdonságok a .NET SDK 2.0 kapcsán

2013 április végén megjelent a .NET-es Windows Azure SDK 2.0 verziója, ami számos újdonságot hozott magával a Cloud Service-ek és az Azure Storage terén is (a könyv az írásakor aktuális 1.8-as SDK verzióhoz készült). Ebben a blogbejegyzésben az újdonságok Storage-et érintő részeiről tájékozódhatsz, a Cloud Service-ekről egy későbbi blogbejegyzésben esik majd szó.

Storage terén három fő újdonságot hozott a 2.0-ás SDK:

  • Új .NET-es projektekbe alapértelmezésként a 2.0-ás StorageClient könyvtár kerül be.
  • A Visual Studio Server Explorer új funkciókkal bővült és már a Table-eket is kezeli.
  • Új PowerShell cmdletek jelentek meg, amikkel már nem csak Storage Accountokat lehet létrehozni és törölni, hanem a Storage Accountok adattartalma is kezelhető (egyelőre a blobok).

Alapértelmezésként 2.0-s StorageClient könyvtár

Az Azure Storage nyers API-ja egy REST-es (azaz HTTP kérésekkel programozható) API. Mivel egy ilyen programozási felülettel fáradságos dolgozni, szinte minden fontosabb nyelvhez (.NET, Java, PHP, node.js, Python, Ruby stb.) készült osztálykönyvtár, ami elfedi a REST API hívásokat és az adott nyelvből natívan használhatóvá teszi az Azure Storage-et a fejlesztő kényelme és produktivitása érdekében.

A .NET-es osztálykönyvtárat StorageClientnek hívják, a Microsoft.WindowsAzure.Storage névtérben lakik és az Azure SDK telepítésekor kerül fel a gépre. Közönséges .NET-es könyvtárról beszélünk, ezért Azure Role-okon kívül bármilyen .NET-es alkalmazásból használható.

Ebből az osztálykönyvtárból már 2012 októberében elkészült a 2.0.0.0-s verziószámú DLL. Ez az 1.8-as Azure SDK részeként került publikálásra, de a régi verzió mellett, vagyis az 1.8-s Azure SDK verzió egymás mellett tartalmazta az 1.7.0.0 és a 2.0.0.0 verziójú StorageClient könyvtárakat. Mivel a 2.0.0.0-s StorageClient változat több API változást is magával hozott, ezért a Microsoft nem tette alapértelmezetté, új projektekbe továbbra is az 1.7.0.0 verzió került bele, de akinek igénye volt rá, az már a 2.0.0.0 verziót is használatba vehette.

A változás most az, hogy a 2.0-s Azure SDK immár a 2.0.0.0-s StorageClient DLL-t használja alapértelmezésként, vagyis új alkalmazások létrehozásakor már ez az osztálykönyvtár-verzió kerül a referenciák közé. Az új változat számos javítást és fejlesztést tartalmaz, de emellett néhány API változást is, ami meglepetésként érheti a korábbi változathoz szokott fejlesztőket. Nézzük ezek közül a fontosabbakat!

  • Megváltoztak a névterek. Korábban Microsoft.WindowsAzure.StorageClient névtérről volt szó, ami most megváltozott Microsoft.WindowsAzure.Storage névtérre. Emellett a névtéren belül is logikusabbá vált a funkciók elrendezése: az összes blobokkal kapcsolatos funkció bekerült például a Microsoft.WindowsAzure.Storage.Blob névtérbe, és így tovább. Emiatt egy korábbi, frissen migrált alkalmazásban szükséges lehet módosítani a using-okat.
  • Más objektumot kell használni, ha blobokkal dolgozunk. Korábban egy blob kódból való létrehozásakor használhattuk a CloudBlob objektumot (ami belül Block Blobot jelentett). Mostantól kötelező vagy a CloudBlockBlob, vagy a CloudPageBlob objektumot használni, ezzel egyértelműen meghatározva, hogy melyik típusú blobbal szeretnénk dolgozni.
  • Jelentősen egyszerűsödött a Table Storage API-ja. Korábban viszonylag nehézkes volt kódból dolgozni a Table Storage-dzsal, a 2.0.0.0 verziószámú könyvtárban az API sokkal egyszerűbbé vált. (Könyvünkben mi már a 2.0.0.0 verziószámú DLL-t mutattuk be, így aki a könyvből tanulta a Table Storage használatát, az már az új API-t ismeri.) Akinek az alkalmazása még a régi API-val szemben íródott, annak fel kell venni egy using-ot a Microsoft.WindowsAzure.Storage.Table.DataServices névtérre, hogy a régi szintaxisú kódja továbbra is működőképes maradjon.

Ezek a fontosabb változások, ezeken kívül van még egy sor apróbb API módosítás, ezekről a szakasz végén lévő linken találsz teljes listát.

A kisebb-nagyobb változásokért, kényelmetlenségekért cserébe azonban számos újdonságot kapunk:

  • Támogatás az új Azure Storage szolgáltatásokhoz. Az Azure Storage képes blobokra és konténerekre lease-t (írási lockot) tenni, blobokat másolni adatközponton belül különféle fiókok között (megkerülve ezzel a letöltés és újrafeltöltés sávszélesség-igényét), illetve speciális URL-ekkel (Shared Access Signature) nagyon finoman állítható hozzáférést adni blobokhoz, táblákhoz és sorokhoz. Ezeket a szolgáltatásokat a REST API természetesen rögtön megjelenésük óta támogatja, mostantól ezek a StorageClient könyvtáron keresztül natívan is elérhetők.
  • .NET Framework 4 Client Profile támogatás, hogy a StorageClient-et használó kliensoldali alkalmazások telepítése egyszerűbbé váljon
  • OperationContext osztály, ami részletes diagnosztikai információkat tartalmaz a végrehajtott műveletekről, így a fejlesztő betekinthet a „motorháztető alatti” történésekbe, az egyes REST API kérések hibakódjaiba, újrapróbálkozási számaiba stb.
  • Állítható timeout értékek.
  • Folytatási lehetőség megszakadt blob-letöltésekhez.
  • Windows Runtime támogatás. A Windows 8 appok fejlesztői a Microsoft.WindowsAzure.Storage.winmd komponenst alkalmazva használhatják alkalmazásaikból az Azure Storage-et.
  • És még sok minden más!

A lényeg tehát, hogy ne lepődj meg, ha új alkalmazások nyitásakor kicsit más az API, régi alkalmazásaidat pedig célszerű átmozgatni az új StorageClient verzióra!

A 2.0.0.0-s StorageClient könyvtárban végrehajtott változtatások kimerítő listája itt olvasható: http://blogs.msdn.com/b/windowsazurestorage/archive/2012/10/29/introducing-windows-azure-storage-client-library-2-0-for-net-and-windows-runtime.aspx

Holnap folytatjuk!

Ezeket az újdonságokat Te is kipróbálhatod! Regisztrálj az ingyenes, 90 napos Azure előfizetésre!

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