.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

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

Common Language Infrastructure

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

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

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

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

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

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

  • 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)

ASP.NET és ADO.NET

  • 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

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

  1. https://devblogs.microsoft.com/dotnet/net-framework-november-13-2019-update-for-net-framework-4-8/

További információk

  • Külső forrásból származó .NET nyelvek listája
  • What is .NET Framework? a .NET hivatalos honlapján
Sablon:Windows-komponensek
  • m
  • v
  • sz
A Microsoft Windows komponensei
Menedzsmenteszközök
  • CMD.EXE
  • Vezérlőpult
  • Eszközkezelő
  • Lemezkarbantartó
  • Töredezettségmentesítő
  • Illesztőprogram-ellenőrző
  • Eseménynapló
  • IExpress
  • Management Console
  • Netsh
  • Windows Error Reporting
  • Recovery Console
  • Resource Monitor
  • ScanDisk
  • Sysprep
  • System Configuration
  • System File Checker
  • System Policy Editor
  • System Restore
  • Task Manager
  • Windows Easy Transfer
  • Windows Installer
  • Windows PowerShell
  • Windows Update
  • WinPE
  • WinRE
  • WMI
Alkalmazások
Shell
Szolgáltatások
  • Service Control Manager
  • BITS
  • CLFS
  • Multimedia Class Scheduler
  • Shadow Copy
  • Task Scheduler
  • Error Reporting
  • Wireless Zero Configuration
Fájlrendszerek
Szerver
  • Tartományok
  • Active Directory
  • Csoportházirend
  • DNS
  • Roaming user profiles
  • Folder redirection
  • Distributed Transaction Coordinator
  • MSMQ
  • Windows Media Services
  • Rights Management Services
  • IIS
  • Remote Desktop Services
  • WSUS
  • SharePoint
  • Network Access Protection
  • PWS
  • DFS Replication
  • Remote Differential Compression
  • Print Services for UNIX
  • Remote Installation Services
  • Windows Deployment Services
  • System Resource Manager
  • Hyper-V
  • Server Core
Architektúra
  • Architecture of Windows NT
  • Startup process
  • CSRSS
  • Desktop Window Manager
  • Portable Executable
  • Graphics Device Interface
  • hal.dll
  • I/O request packet
  • Imaging Format
  • Kernel Transaction Manager
  • Library files
  • Logical Disk Manager
  • LSASS
  • MinWin
  • NTLDR
  • Ntoskrnl.exe
  • Object Manager
  • Open XML Paper Specification
  • Regisztrációs adatbázis
  • Resource Protection
  • Security Accounts Manager
  • Server Message Block
  • Shadow Copy
  • SMSS
  • System Idle Process
  • USER
  • Win32 console
  • Winlogon
Biztonság
  • Action Center
  • BitLocker
  • Data Execution Prevention
  • Family Safety
  • Kernel Patch Protection
  • Mandatory Integrity Control
  • Protected Media Path
  • Felhasználói fiókok felügyelete
  • User Interface Privilege Isolation
  • Windows Defender
  • Windows Firewall
Kompatibilitás
  • COMMAND.COM
  • Windows Services for UNIX
    • POSIX subsystem
    • Interix
  • Virtual DOS machine
  • Windows on Windows
  • WoW64
API
  • Active Scripting
    • WSH
    • VBScript
    • JScript
  • COM
    • ActiveX
    • ActiveX Document
    • COM Structured storage
    • DCOM
    • OLE
    • OLE Automation
    • Transaction Server
  • DirectX
  • .NET keretrendszer
  • Windows Holographic
  • Windows Runtime
Megszűnt
Játékok
  • 3D Pinball
  • Chess Titans
  • FreeCell
  • Hearts
  • Hover!
  • InkBall
  • Hold 'Em
  • Mahjong Titans
  • Minesweeper
  • Purble Place
  • Reversi
  • Solitaire
  • Spider Solitaire
  • Tinker
Egyebek
  • ActiveMovie
  • Névjegytár
  • Backup and Restore
  • Cardfile
  • CardSpace
  • Diagnostics
  • DriveSpace
  • DVD Maker
  • DVD Player
  • Fax
  • File Manager
  • File Protection
  • HyperTerminal
  • Internet Mail and News
  • Mail
  • Media Control Interface
  • Meeting Space
  • Messaging
  • Messenger
  • NetMeeting
  • Next-Generation Secure Computing Base
  • NTBackup
  • Outlook Express
  • Photo Gallery
  • Program Manager
  • Video for Windows
  • Oldalsáv
  • Windows SideShow
  • WinHelp
  • WinSAT
  • Write
  • Informatika Informatikai portál • összefoglaló, színes tartalomajánló lap