Szerző: Gálffy Csaba

2016. június 28. 14:53

Megérkezett a .NET Core 1.0

Egész pályás letámadásba kezd a Microsoft, a gatyába rázott .NET-tel egyszerre száll szembe a régi versenytárs Java mellett a Go-, Swift- és JS-féle új generációs nyelvekkel is.

Hivatalosan elkészült a .NET Core első, 1.0-s, stabilnak jelölt kiadása - jelentette be a Microsoft a jelenleg folyó Red Hat Summit színpadán. A .NET keretrendszer szabad szoftveres magja mellett 1.0-s kiadáshoz érkezett az ASP.NET Core és az Entity Framework Core is, a három szoftver pedig Windows mellett macOS és Linux platformra is elérhetővé vált.

Az új runtime, könyvárak és fejlesztői eszközök mellett a Visual Studio és VS Code mellé is megérkeztek azok a kiterjesztések, amelyekkel .NET Core projektekbe lehet belekezdeni. Igaz, ehhez a kiterjesztéseken túl a Visual Studio 2015 Update 3 telepítésére is szükség lesz. A Microsoftnál fújó új szeleknek megfelelően a keretrendszer dokumentációja már a docs.microsoft.com oldalra kerül fel, ez a cég új platformja az ilyen jellegű tartalomhoz.

A Red Hat konferenciáján a Microsoft azt is bejelentette, hogy a .NET Core 1.0 immár teljes körű támogatással érhető el RHEL (Red Hat Enterprise Linux) platformon, illetve az OpenShift környezetben, minősítéssel rendelkező konténerek formájában. Ezekhez a támogatást a Red Hat biztosítja, ami nem meglepő a két cég látványos összeborulása óta.

.NET-reneszánsz jön?

"Ez a .NET legnagyobb átalakulása annak kitalálása óta, és meg fogja határozni a platform következő évtizedét" - mondja a Microsoft. "Újraépítettük a .NET alapjait a mai világ igényei alapján: elosztott felhős alkalmazások, mikroszolgáltatások és konténerek [irányába]."

Talán még ennél is fontosabb, hogy a 2014-ben elkezdett .NET Core projekt tényleg a keretrendszer alapjaihoz nyúlt hozzá. A szabad szoftveres implementáció modularizált és egységes, mindkettő hatalmas előrelépés a .NET Framework eddigi állapotához képest. A .NET ugyanis meglehetősen fragmentált platform, annak különböző rendszereken futó kiadásai (a Windows Phone-tól a Windowsig, a Linuxtól a szerveroldalig) hasonló, de nem egybevágó képességekkel, tulajdonságokkal rendelkeznek. Ez kompatibilitási problémákat, szokatlan viselkedést eredményez, amit nagyon nehéz folyamatosan szem előtt tartani - a különböző platformokra készült .NET-portokat más csapatok tartják karban, más ütemterv és egyedi verziók formájában.

A másik probléma, hogy a .NET Frameworkre a Microsoft a kezdetektől egységes egészként tekintett, és nem fektetett hangsúlyt annak modularizálására. Ezzel is szakít a .NET Core, az új filozófia szerint már szó sincs monolitikus keretrendszerről, az egyes elemek akár külön-külön, akár összeválogatva is működnek.

A .NET Core-ral tehát a .NET (és a Microsoft) hatalmasat modernizál. A hagyományos hosszú fejlesztési periódusok helyére gyorsabb, agilis fejlesztés léphet, nyílt, kipróbálható béta verziókkal, közösségi részvétellel, fejlesztői visszajelzésekkel - pont úgy, ahogy az 2016-ban megszokott és elvárható egy ilyen fontos platformtól.

Ilyen az új .NET világ

Hogyan más a .NET Core felépítése az eddig megismerthez képest? Lássuk, hogyan magyarázta ezt Immo Landwerth, a .NET Framework programigazgatója a New Stacknek. Legalul a runtime-ok, vagyis a futtatásért közvetlenül felelős szoftverelemek találhatóak, a JIT-fordítóval, VM-mel, szemétgyűjtővel (garbage collection), és egyéb elemekkel. Ezekből már ma is több található a .NET ökoszisztémában, a Microsoft a CoreCLR és a .NET Native képében rögtön kettőt is kínál, de ide tartozik a Mono is, mint külső (bár a Xamarinnal már házon belül került) implementáció.

(forrás: New Stack)

A következő réteget a Base Class Libraryk adják, amelyek a keretrendszer alapvető funkcióit valósítják meg, mint a hálózatkezelés, a reflexiók, collection-ök, streamek, stb. Ennek tetejére kerülnek az alkalmazásmodellek, tehát az appok tulajdonképpeni formái, a Windows Store-os, JSON.NET, ASP.NET, stb. formátumok.

Amiben a .NET Core újdonságot hoz a .NET Frameworkhöz képest, az a runtime és a BCL-ek közötti új absztrakciós réteg, amely képes arra, hogy a runtime-ok közötti különbségeket elfedje. Így hiába tér el jelentősen a .NET CoreCLR és a Mono implementációja, ez az "adapter" egy egységes interfészt tud prezentálni a könyvtárak felé. Ebbe a rétegbe kerülnek a PCL-ek (portable class library) is, ezek frissítésével pedig azonnal használhatóvá válnak a friss API-k is.

Fejlesztő vagy? Segíts! Hack the Crisis. Gyere hétvégén fejleszteni, csatlakozz a hazai fejlesztői közösséghez!

Mi szükség minderre? - kérdezheti az egyszeri .NET-fejlesztő. Windowson ugyanis ragyogóan működött az eddigi felépítés, némi megrázkódtatást csak az új platformok, a Windows Phone és az univerzális alkalmazások hoztak. Igen ám, de a Windows ma már nem elég a világuralomhoz, oda keresztplatformos működés, androidos és iOS-es port, Linux-támogatás is szükséges, ehhez pedig már hozzá kellett nyúlni a .NET architektúrájához is.

Változik a támogatási modell is, a .NET Core két "ízben" lesz elérhető. A "hosszanfriss" LTS (long term support) kiadások három éves támogatást kapnak, ilyen státusszal rendelkezik minden főverzió, így a most publikált 1.0 is. Az FTS (fast track support) kiadások a kisebb verziók lesznek, amelyek osztoznak a megelőző főverzió támogatási ciklusában. Ezzel a Microsoft egyszerre igyekszik kedvében járni a stabilitást pártoló nagyvállalati ügyfeleknek és a friss cuccra éhező, gyorsabban lépő fejlesztőknek is.

A Samsung is beszáll

A Microsoft egy új .NET Foundation tagot is bejelentett, a Samsung csatlakozása az alapítványhoz igazi meglepetés. A cég ugyanis jelenleg Android-függő, és emellett próbálja tolni saját operációs rendszerét, a Tizent is is - az első Javában, a második pedig HTML5-CSS-JavaScript, illetve C/C++ kombinációval programozható.

A .NET támogatása így egy érdekes új irány lehet, ha ez stratégiai döntés, akkor érdekes újdonságokra készülhetünk a Samsungtól. Elképzelhető például, hogy a Linux-alapú Tizent a .NET irányába fordítja a cég, erre immár lehetőséget ad a .NET Core. A cég már el is kezdett dolgozni a keretrendszeren, az első fejlesztések az ARM-kompatibilitást érintették.

a címlapról