szoftverfejlesztői platform From Wikipedia, the free encyclopedia
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.
.NET keretrendszer | |
Fejlesztő | Microsoft, Xamarin |
Legfrissebb stabil kiadás | 4.8.1 (2022. augusztus 9.)[1] |
Operációs rendszer | Microsoft Windows |
Platform | Microsoft Windows |
Kategória | szoftverfejlesztési keretrendszer |
Licenc | kereskedelmi |
A(z) .NET keretrendszer weboldala |
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.
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.
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:
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).
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.
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.
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.
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é.
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).
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.
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.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.