For faster navigation, this Iframe is preloading the Wikiwand page for .NET keretrendszer.

.NET keretrendszer

.NET keretrendszer

FejlesztőMicrosoft, Xamarin
Legfrissebb stabil kiadás4.8.1 (2022. augusztus 9.)[1]
Operációs rendszerMicrosoft Windows
PlatformMicrosoft Windows
Kategóriaszoftverfejlesztési keretrendszer
Licenckereskedelmi
A(z) .NET keretrendszer weboldala

A Microsoft által készített .NET keretrendszer (a .NET Framework) gyors alkalmazásfejlesztést (RAD), platformfüggetlenséget és hálózati átlátszóságot támogató szoftverfejlesztői platform. A keretrendszert a korábbi platform, a COM leváltására szánták.

Eredetileg a .NET kifejezés nemcsak fejlesztői környezetet jelentett, hanem fejlesztőeszközök, szoftverek, sőt hardvereszközök összességét is. Az évek során a kép kitisztult, így mostanra a .NET alatt a keretrendszert értjük.

A .NET Framework eszköztára a szoftverfejlesztés szinte minden aspektusát (kliens-, illetve szerveroldali megoldások, adatbázisok kezelése, játékfejlesztés stb.) lefedi.

Története

[szerkesztés]

A kilencvenes évek közepén a Sun kiadta a Java platform első verzióját. Az új környezet hamarosan igen nagy népszerűségre tett szert platformfüggetlensége, hatalmas, jól kezelhető osztálykönyvtára illetve könnyű megtanulhatósága révén. A Microsoft és más cégek eszközei eleinte nem tudták hatékonyan felvenni a versenyt a Sun termékével, később azonban a fejlesztések beértek. A Microsoft először a Java saját implementációjával próbálkozott, de ezzel soha nem aratott különösebb sikert.

Néhány későbbi .NET technológia eredetileg ezen fejlesztések során jött létre. Amikor 1998-ban a Microsoft elhatározta, hogy nem használja tovább a Sun Microsystems Java technológiáját, a már létező Microsoft J++ (Java++) terméket a .NET projekt alapjaként használták. A .NET CLR kódja egyesek szerint a Colusa Software OmniVM termékéből származik, amit a Microsoft 1996. március 12-én vásárolt meg.

A tényleges fejlesztés a kilencvenes évek végén Next Generation Windows Services munkacím alatt Bill Gates személyes felügyelete mellett indult el. 2000-ben a Microsoft, az Intel és a Hewlett-Packard már a C# nyelv szabványosításán dolgozott, ezt az ECMA 2001-ben el is fogadta.

2000 végére elkészült az első béta változat, 2002. január 5-én pedig a .NET Framework 1.0 verziója végre a nagyközönség kezei közé került.

A következő mérföldkövet 2005. november 7. jelentette, ekkor adták ki a 2.0-s verzió végleges változatát, amely hatalmas változásokat hozott. Tulajdonképpen ez a verzió hozta meg az igazi népszerűséget a .NET számára.

Egy nap híján egy évvel később a 3.0 is napvilágot látott, rá egy évre pedig a 3.5 verzió született meg. 2008 augusztusában a Microsoft kiadta a 3.5 verzióhoz tartozó első szervizcsomagot. 2010 év elején jelent meg a 4.0 verzió, 2012-ben pedig a 4.5 verzió béta változata.

Architektúra

[szerkesztés]

Common Language Infrastructure

[szerkesztés]

A .NET Framework alapját a CLI, vagyis a Common Language Infrastructure képezi. Ez nem más, mint azon szabályok halmaza, amelyek leírnak egy nyelvfüggetlen fejlesztői környezetet, a futtatókörnyezetet, típusrendszert stb. A .NET Framework implementációját CLR-nek, Common Language Runtime-nak hívják. A CLI maga is négy fő részre oszlik:

  • Common Language Specification

A CLS a CLI része. Azokat a szabályokat írja le, amelyeket a CLI-kompatibilis nyelveknek be kell tartaniuk. Érdekesség, hogy a legtöbb .NET nyelv – pl. a C# – tartalmaz olyan elemeket, amelyek nem felelnek meg a CLS specifikációnak (pl. a CLS nem engedi meg ulong típusú paraméterek használatát, míg a C# igen).

  • Common Type System

A CTS a CLI azon része, amely a típusokat, azok memóriabeli reprezentációját illetve egymással való interakcióját írja le. A .NET minden nyelve ugyanazt a típusrendszert használja, és ugyan az egyes típusok megnevezése nyelvfüggő, viszont mindig ugyanarról a típusról van szó.

A CLR vagy VES (Virtual Execution System) a CLI nyelven megírt programok betöltéséért és végrehajtásáért felel. Felelősséggel tartozik pl. a memóriamenedzsmentért, kivételkezelésért illetve a kódbiztonságért is (itt a fontosabbak lettek említve).

A CIL (korábban MSIL) egy ún. köztes kód. Minden CLI nyelvben megírt program erre a kódra fordítódik le (ellentétben a hagyományos nyelvek natív kódjától). Ezt a kódot a tényleges futtatáskor az ún. jitter (Just in time compiler) fordítja le natív kódra, amelyet a processzor már tud kezelni. A CIL hasonlít a Java bytekódjára.

Kapcsolat a Java-val

[szerkesztés]

A Java rendszert a .NET evolúciós előfutárának szokták mondani. Ezzel ellentétben, a Sun Microsystems, később az Oracle Java licence ragaszkodott a különböző Java kivitelezések összeférhetőségéhez, azaz hogy különböző rendszereken pontosan ugyanolyan eredmény adódjék, valamint a Java rendszer elérhető legyen szinte minden elterjedten használt rendszeren. Az ugyanolyan működés biztosításának kezdetben ára volt, leginkább a platformok legkisebb közös többszöröse lett megvalósítva, kihagyva ezekből az egyes rendszerek specialitásait. Ez 2016-ban már szintén nem okoz problémát pl. standard OpenGL vagy open POSIX szabványok használatával.

A „Java (programozási nyelv)” szócikk szerint: Egyes cégek, mint például a Microsoft, mégis platformfüggő sajátságokat adtak a nyelvhez, amire a Sun keményen reagált: beperelte a Microsoftot (az amerikai bíróság 20 millió dollár kártérítésre és a sajátos tulajdonságok visszavonására kötelezte a céget). Válaszként a Microsoft kihagyta a Java rendszert a jövőbeli termékekből és Windows-változatokból. A platformfüggetlenség megvalósítása technikailag nagyon bonyolult, a Java esetében is sok vita volt: az „írd meg egyszer, futtasd bárhol” szlogenből „írd meg egyszer, hibakeress mindenhol” lett. 2015-re azonban ez már nem okoz problémát, a Java elérhető az összes jelentős platformon, szervereken való előnyét megtartotta, a .NET ezzel szemben inkább klienskörnyezetben erős. A platformfüggetlenségre a Microsoft is törekszik, például a Mono projekt megvásárlásával. Ez a platform lehetővé teszi .NET-fejlesztést más nem-Microsoft platformon is, pl. Linux alatt.

A két környezet és nyelv manapság egymás mellett fejlődik tovább, hol az egyik előzi a másikat máskor épp fordítva. Hasonlóságok: ASP – JSP, Lambda kalkulus mindkettőben. A Java Development Kitet alapvetően Java nyelven lehet programozni, bár 6-os Java óta más nyílt parancsnyelvek használatát is támogatja a platform. A .NET CLR-re a kezdetektől fogva több nyelvet támogatott, bár legerősebben a C# nyelvet. A Java a kezdetektől épített a nyílt forráskódú szoftverek közösségeire, 2007-től maga a JDK is nyílt lett. 2015-től a Microsoft is próbál nyitni az „open source” közösségek felé és a közösségi fejlesztés előnyeit kihasználni.

Szabványosítás

[szerkesztés]

A Microsoft benyújtotta a .NET specifikáció egy részét az ECMA-hoz és az ISO-hoz szabványosításra. Ez kockázatot jelentett számukra, de támogatja a szabványkövető megvalósításokat.

.NET vs JEE

[szerkesztés]

A CLI, a CIL és a C# nagy hasonlóságot mutat a Sun JVM-jéhez és a Sun Java-jához képest, ezért erős versenyben állnak egymással. Mindkettő egy saját köztes bájt kódot használ, amit a Microsoft CIL-nek (korábban MSIL) hív. A .NET bájt kódot futásidejű fordításra tervezték, míg a Javát eredetileg interpretálásra, de mára ott is futásidejű fordítás az alap viselkedési forma. A .NET jelenleg csak Windows platformon érhető el teljes valójában, míg a Java több platformon is teljesen rendelkezésre áll. Azonban a folyamatban levő megvalósítások, mint a Mono vagy a Rotor lehetővé teszik a .NET programok futtatását a Unix-típusú operációs rendszereken is, például Linuxon, FreeBSD-n és Mac OS X-en. Az Oracle terméke, a JEE, azonos funkciókat biztosít az olyan Microsoft technológiákhoz, mint a COM+ és az MSMQ, melyek erősen integráltak a Windows operációs rendszerbe. A .NET ezeket a technológiákat absztrakt módon teszi elérhetővé.

.NET vs COM

[szerkesztés]

A Microsoft által korábban támogatott komponens alapú modell a COM volt (aminek része volt az MTS az elosztott tranzakciók támogatására), később pedig a COM+ lett. Bár a .NET be tudja csomagolni a COM komponenseket és fordítva – amit a Microsoft Runtime Callable Wrapper-nek (RCW) és COM Callable Wrapper-nek (CCW) hív –, a Microsoft egyértelműen jelezte, hogy a .NET mint szoftver komponens architektúra le fogja cserélni a COM-ot. A Microsoft reményei szerint a Win32 platformra fejlesztők elkezdik használni a .NET-et a COM helyett, és a jelenlegi szolgáltatásokat absztrakt interfészeken keresztül érik el (például a tranzakciókban részt vevő .NET komponensek jelenleg COM+-t használnak).

.NET nyelvek

[szerkesztés]

A CLI-t úgy tervezték, hogy bármilyen objektumorientált programozási nyelvet támogasson, megosztva egy közös objektum modellt és egy nagy, közös osztálykönyvtárat. A .NET jelenleg több mint 40 programozási nyelvet támogat, melyek többsége ingyenes (a kereskedők fejlesztői környezeteket árulnak).

Sok nyelvet jelentősen hangoltak, hogy illeszkedjen a .NET keretrendszerbe. A gyártók ezt kihasználva gyakran egyéb nyelvi funkciókat is módosítottak.

Beépített nyelvek

[szerkesztés]
  • C#, a C++-hoz és a Sun Java nyelvéhez hasonló objektumorientált nyelv
  • JScript .NET, Microsoft JScript nyelvének fordított verziója
  • J#, a Java és a J++ programozók átmeneti nyelve a .NET keretrendszer felé
  • Managed C++, a C++ egy változata a .NET platformra
  • Visual Basic .NET, a klasszikus Visual Basic egy továbbfejlesztett, objektumorientált, többszálas verziója

Külső forrásból elérhető nyelvek (válogatás)

[szerkesztés]

ASP.NET és ADO.NET

[szerkesztés]
  • ASP.NET a klasszikus Active Server Pages (ASP) webprogramozási technológia továbbfejlesztése. Megvalósítja a .NET követelményeket, .NET osztálykönyvtárral rendelkezik, de önmagában nem egy nyelv, hanem bármely .NET-et támogató nyelven lehet használni.
  • ADO.NET az ActiveX Data Objects (ADO) továbbfejlesztett verziója, mely támogatja a .NET keretrendszert.

Alternatív megvalósítások

[szerkesztés]

Míg a Microsoft .NET Keretrendszer a .NET technológiák megvalósításának zászlóshajója, léteznek más megvalósítások is.

  • A Microsoft Rotor, vagy hivatalos nevén Shared Source Common Language Infrastructure egy shared source (megosztott forráskódú) licencű megvalósítása a .NET keretrendszernek. Microsoft Windows XP-n, FreeBSD-n és Mac OS X-en fut.
  • A Mono egy nyílt forráskódú megvalósítása a .NET futtató környezetnek és a fejlesztői könyvtáraknak. A Mono-t a Ximian (a Novell, Inc. része) és a nyílt forráskódú fejlesztői közösség fejleszti. Gyorsan fejlődik, támogatja az ASP.NET-et, az ADO.NET-et és fejlődik a Windows Forms könyvtárak támogatása is. Tartalmaz egy C# fordítót és egy Visual Basic .NET béta előtti állapotú fordítót is. A Mono új könyvtárak és technológiák fejlesztését is magában foglalja:
  • Gtk# – .NET burkoló a Gtk+ GUI készlet számára
  • XSP – C# nyelven írt webkiszolgáló ASP.NET támogatással
  • MonoDevelop – a SharpDevelop egy átültetett (portolt) változata, egy GPL-ed integrált fejlesztői környezet a .NET, a Gtk# és a Mono számára
  • Novell.Directory.Ldap osztály könyvtárak – Egy ingyenes .NET Lightweight Directory Access Protocol (LDAP) implementáció
  • SerialPortNet – egy soros portot kezelő könyvtár .NET és Mono platformra .NET 2.0 specifikáció támogatással
  • DotGNU Portable.NET kevésbé fejlett, mint a Mono, mivel a Portable.NET-et nem a Microsoft fejlesztői keretrendszerét használva hozták létre.

Jegyzetek

[szerkesztés]

További információk

[szerkesztés]
{{bottomLinkPreText}} {{bottomLinkText}}
.NET keretrendszer
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?