.Net-Framework

Software-Plattform zur Entwicklung und Ausführung von Anwendungsprogrammen

Das.Net-Framework(Eigenschreibweise:.NET Framework) ist ein Teil vonMicrosoftsSoftware-Plattform.NETund erfüllt als solcher seine Funktion bei der Entwicklung und Ausführung von Programmen, die dasFrameworkeinbinden und verwenden. Das Framework von.NET bietet sowohl eineLaufzeitumgebungfür die Ausführung, als auch eineProgrammbibliothekfür die Entwicklung von Programmen. Für den Endanwender ist das.Net-Framework eineMiddleware,ohne die Software und Anwendungen, die das.Net-Framework benutzen, nicht lauffähig sind.

.NET Framework

Basisdaten

Entwickler Microsoft,Xamarin
Erscheinungsjahr 13. Februar 2002
AktuelleVersion 4.8.1[1]
(9. August 2022)
Betriebssystem Microsoft Windows
Kategorie Plattform
Lizenz EULA(proprietär)und teilweiseApache-Lizenz2.0(frei[2]oderquelloffen[3])
deutschsprachig ja
Download-Seite

SeitWindows Vistawird das.Net-Framework zusammen mit dem Betriebssystem installiert. Seit seiner Einführung wird das Framework überWindows Updatevon Microsoft gepflegt.

Das Framework vereinheitlichte und modernisierte die Methodik der Anwendungsentwicklung für das Microsoft-Betriebssystem,[4]für das es bis zur Einführung von.NET Coreexklusiv zur Verfügung stand. Es besteht ausSchnittstellenfür das Betriebssystem und Programmbibliotheken, unter anderem fürDateizugriffe,Netzwerkkommunikation,Datenbankzugriffe,Grafikundgrafische Benutzeroberflächen,aber auch für immer wieder verwendete Programmteile, wie zum Beispiel die für Passwörter wichtigenHashfunktionen,Zeit- und Datumsberechnungsowie -konvertierung oder Funktionen aus der alltäglichenMathematik.Auchkomplexere Programmabläufewie die gleichzeitige Ausführung von Programmteilen zur besseren Nutzung von heute handelsüblichenMehrkernprozessorenkönnen mit dem Framework einfacher und weniger fehleranfällig realisiert werden.

.NET-Anwendungen waren bis zur Einführung von.NET 8 keine selbstständig lauffähigen Programme, da sie nicht direkt inMaschinenspracheübersetzt werden, die von einemProzessornativ ausgeführt werden könnte. Aus diesem Grund wird das.Net-Framework für ihre Ausführung benötigt. Im November 2020 wurden.NET Core,.NET Standard und.Net-Framework für die weitere Entwicklung als einheitliche Plattform unter der Bezeichnung.NET 5.0zusammengeführt.[5]Unter.Net-Framework 4 erstellte Programme sollen aber dauerhaft auf den Betriebssystemversionen Windows 7 / 8 / 10 / 11 lauffähig bleiben.[6][7]

Entstehungsgeschichte

Bearbeiten

Die Entwicklung der.NET-Plattform wurde als notwendig angesehen, um die in die Jahre gekommenen Konzepte von Windows durch neue zu ersetzen, war jedoch auch das Ergebnis des Rechtsstreits von Microsoft mitSunüberJava.Microsoft hatte das von Sun entwickelteJava-Systemadaptiert und es nach eigenen Bedürfnissen erweitert, was diePlattformunabhängigkeitvon Java-Applikationen beeinträchtigte. Als Sun das unter anderem durch Gerichtsverfügung unterband, änderte Microsoft seine Strategie. Zudem war es Microsoft bis zur Entwicklung von.NET nicht gelungen, im lukrativen Markt für mobile Kleingeräte Fuß zu fassen.

Zudem hatten sich mit der Zeit verschiedene, zueinander inkompatible Softwaresysteme für Windows entwickelt. Die drei für Windows meistverwendeten ProgrammiersprachenC++,Visual Basicsowie die Microsoft-Implementierung einer Java-Syntax, J++, waren zueinander nicht kompatibel und die Zusammenarbeit über verschiedene Brücken erwies sich als sehr kompliziert.

Zeichenketten und ANSI/Unicode

Bearbeiten

DieDatentypenfürZeichenketten(engl. „strings “) waren nichtbinärkompatibelzueinander. Wollte man solche über zwei Softwaresysteme hinweg schreiben, so musste man Laufzeiteinbußen wegen Konvertierungsfunktionen hinnehmen. Verschärfend kam die Koexistenz vonANSIundUnicodehinzu. Viele Programme unterstützten kein Unicode oder wurden dafür noch nicht ausgerüstet..NET verwendet einheitlich Unicode für Zeichenketten.

Speicherverwaltung

Bearbeiten

Jede Entwicklungsplattform besaß ein eigenes System für die Verwaltung des Speichers. J++ und Visual Basic besaßen eine automatischeSpeicherverwaltung;das heißt, der Programmierer überließ (weitgehend) dem System die Verwaltung des Speichers. Visual C++ hingegen besaß keine Speicherverwaltung, der Programmierer musste sich selbst darum kümmern.

Offenlegung des Quellcodes

Bearbeiten

Am 17. Januar 2008 veröffentlichte Microsoft den Quelltext des Frameworks unter der restriktivenMicrosoft Reference License.Zu diesem Schritt entschloss sich Microsoft bereits im Oktober 2007, alsSun Microsystemssein ProduktJavaunter derGNU GPLmit eigenen Zusatzklauseln zur Verfügung stellte.

Ende 2013 gründeten Microsoft, Xamarin (Mono) und andere die.NET Foundationals neuer Rechteinhaber und Lizenzgeber des.Net-Frameworks. Seitdem sind fast alle Rechte an der.NET-Klassenbibliothek von Microsoft an die.NET Foundationübertragen worden. Unter dem Dach der.NET Foundationwerden mit Stand 2014 30 Projekte verwaltet.[8]

Verhältnis zu Mono

Bearbeiten

Teile der Open-Source-Community[9]sahen in der Offenlegung unter der damaligen restriktiven Lizenz eine Gefahr für das ProjektMono,welches.NET-Anwendungen unter Linux teilweise verfügbar macht. Microsoft hatte 2007 noch behauptet, das Projekt enthalte Quellcode aus dem.NET-Framework. Da das Framework und Mono gleichermaßen.NET implementieren, befürchtet man nun zwangsweise starke Ähnlichkeiten im Quellcode.

Das umstrittene Patentabkommen zwischen Microsoft undNovell[10](dem ehemaligen Projektträger von Mono) schützt derzeit sowohl die Community unter Novell als auch Microsoft vor gegenseitigen Patentansprüchen.

Mit der Gründung der.NET Foundation und der Übertragung der Rechte und Quellcodes an die Foundation arbeitet Microsoft mit Xamarin (Mono) aktiv zusammen, um.NET auf unterschiedlichen Plattformen bereitzustellen. Durch die Offenlegung der Quellcodes unter der MIT-Lizenz bzw. Apache 2.0 Lizenz ist der Quellcode des.NET-Frameworks nahezu beliebig – sprich auch inClosed-Source-Projekten – verwendbar. Lizenz- und patentrechtliche Auseinandersetzungen sind somit kaum noch möglich und somit auch nicht mehr zu befürchten.[11]

Chronik der.NET-Framework-Entwicklung

Bearbeiten
Jahr Ereignisse
2000
  • Juni – Bill Gates stellt erstmals die.NET-Vision vor.
  • Juli – Auf der EntwicklerkonferenzProfessional Developers Conference(PDC) gibt es erstmals CDs mit lauffähigen Vorabversionen des Frameworks und von Visual Studio.NET
  • Oktober – C# und dieCLI(siehe unten) werden (von MS, HP und Intel) bei der europäischen StandardisierungsorganisationEuropean Computer Manufacturers Association(ECMA) eingereicht, was für Microsoft einen ungewöhnlichen Schritt der Öffnung darstellt.
2002
  • Januar –.NET (V1.0) wird offiziell mit der zugehörigen EntwicklungsumgebungSDK(und Visual Studio.NET 2002) vorgestellt.
  • Verwirrung: Im Zuge des Marketings wird nach Microsofts Gewohnheit versucht, alle anstehenden Neuentwicklungen unter einen, den.NET-Begriff, zu fassen, wodurch selbst Fachleute einschließlich Microsoft-Mitarbeiter nicht mehr verstehen, worum es eigentlich geht. Die Programmiertechnik und Entwicklungsumgebung wird zunächst in Verbindung gestellt zu konkreten Webdiensten, die Microsoft anbietet (Codename Hailstorm wird zu.Net My Services) und später vom Marketing wieder von.NET entkoppelt. Auch die nächste Betriebssystem-Generation von Windows wird als Bestandteil von.NET angekündigt.
2003
  • Vorstellung von.NET 1.1 und Visual Studio 2003 mit im Wesentlichen geringfügigen Verbesserungen und Erweiterungen.
2005
  • Betaversionen von.NET 2.0 und Visual Studio 2005 erhältlich
  • 7. November: Visual Studio 2005 und.Net-Framework 2.0. werden in den USA veröffentlicht.
  • 19. Dezember: Deutsche Version des.Net-Framework 2.0 verfügbar
2006
  • 6. Februar: Visual Studio 2005 wird in deutscher Sprache veröffentlicht.
  • 6. November:.NET Framework 3.0verfügbar
2007
  • Erste Berichte um.NET 3.5 und dem neuen Visual Studio 2008 mit dem Codenamen „Orcas “
  • 19. November:.NET 3.5 und Visual Studio 2008 wird in den USA veröffentlicht.
2008
  • 17. Januar: Das.Net-Framework wird zwecks „erleichtertemDebugging“im Quelltext veröffentlicht.
  • Februar: Visual Studio 2008, Microsoft SQL Server 2008 und Windows Server 2008 werden veröffentlicht.
2009
  • 18. Mai:.NET 4.0 Beta 1 veröffentlicht
  • 19. Oktober:.NET 4.0 Beta 2 veröffentlicht
2010
  • 10. Februar:.NET 4.0 RC veröffentlicht.
  • 12. April:.NET 4.0 sowie Visual Studio 2010 in finaler Version veröffentlicht
2012
  • 31. Mai:.NET 4.5 RC veröffentlicht
  • 15. August:.NET 4.5 (Final) veröffentlicht
2013
  • 12. Oktober:.NET 4.5.1 (Final) veröffentlicht
2014
  • 5. Mai:.NET 4.5.2 (Final) veröffentlicht
2015
  • 20. Juli:.NET 4.6 (Final) veröffentlicht
  • 17. November:.NET 4.6.1 (Final) veröffentlicht
2016
  • 20. Juli:.NET 4.6.2 (Final) veröffentlicht
2017
  • 5. April:.NET 4.7 als Bestandteil des Windows 10 Creators Update veröffentlicht
  • 2. Mai:.NET 4.7 als eigenständige Installation veröffentlicht
  • 17. Oktober.NET 4.7.1 veröffentlicht
2018
  • 30. April:.NET 4.7.2 veröffentlicht
2019
  • 18. April:.NET 4.8 veröffentlicht
2022
  • 9. August:.NET 4.8.1 veröffentlicht

Konzept und Bestandteile

Bearbeiten

Die.NET-Plattform ist dieUmsetzungdesCommon-Language-Infrastructure-Standards (CLI) und stellt mit diesem eine Basis zur Entwicklung und Ausführung von Programmen dar, die mit unterschiedlichen Programmiersprachen auf verschiedenen Plattformen erstellt wurden. Hauptbestandteile sind die (objektorientierte)LaufzeitumgebungCommon Language Runtime (CLR), die Base Class Library (BCL) sowie diverse Hilfsprogramme zum Beispiel zur Rechteverwaltung.

Mit.NET löste Microsoft zuvor eingesetzte Softwareentwicklungskonzepte wie dasComponent Object Modelab, bis es COM in einer erweiterten Form unter dem NamenWindows Runtimereaktivierte. Seitdem plant Microsoft den parallelen Einsatz beider Frameworks für die Betriebssystemgeneration umWindows 8.

Common Language Runtime

Bearbeiten

Die Common Language Runtime (CLR) ist dieLaufzeitumgebungdes.Net-Framework und enthält denJIT-Compilerfür den standardisiertenZwischencode,dieCommon Intermediate Language(CIL). Die CIL hieß früherMicrosoft Intermediate Language (MSIL),wurde aber im Rahmen der Standardisierung durch dieEcma Internationalumbenannt. Für sie wurde ein sprachübergreifendes System von objektbasiertenDatentypendefiniert, so dass für alle Hochsprachen, die sich an denCommon Language Infrastructure-Standard (CLI) halten, gültiger CIL-Bytecode erstellt werden kann.

.NET wurde von Anfang an dafür entwickelt, dass Programmierer in unterschiedlichen Programmiersprachen arbeiten können. Jede dieser Hochsprachen wird von.NET dann in die CIL übersetzt.

Das Besondere an der CLR ist weniger die technische Innovation als vielmehr die strategische Entscheidung von Microsoft für einlaufzeitbasiertes System.Es soll unter anderem helfen, Systemabstürze zu vermindern, da die Runtime Applikationsfehler abfangen kann. Damit entschied sich Microsoft erstmalsgegendie bisher angewandte direkte Kompilierung in denMaschinencodedes Zielsystems. Zusammen mit der Marktmacht vonJavaund dem Erfolg vonSkriptsprachenist damit ein Trend zu identifizieren. Dieser stellt einen Bruch mit den direktkompilierenden Programmiersprachen (insbesondereC++undC) dar.

MittelsReflectionist es möglich, zur Laufzeit Programmcode über einObjektmodellzu generieren und es direkt im Speicher in lauffähigen Code zu überführen.

Die.NET-Terminologie unterscheidet dabei zwischenBytecode,welcher von der CLR verwaltet und inMaschinenspracheumgesetzt wird („verwalteter Code“), und Teilen, die nicht innerhalb der CLR ausgeführt werden („nicht verwaltet“). Daneben gibt es noch die Möglichkeit in.NET sogenannten „unsicheren Code “(oder „Code im unsicheren Kontext “) zu schreiben, um weiterhin z. B. klassischeZeiger-Operationenunmittelbar auf einem Speicherbereich durchführen zu können.[12]

Interop-Technik

Bearbeiten
Interop-Technik

Mit Hilfe der Interop-Technik lassen sich alle klassischen, binär kompilierten Windows-Bibliotheken mit.NET-Kapseln (oder auch mit sogenanntenWrappern) versehen und danach deren Programmfunktionen wie „normale “.NET-Programmfunktionenaufrufen. Technisch gesehen gibt die CLR allerdings im Moment des Aufrufs einer Funktion einer nicht überwachten DLL einen großen Teil der Kontrolle über den Programmfluss ab.

Umgekehrt lassen sich auch.NET-Funktionen wieCOM-Funktionen aufrufen. Damit soll eine fließende Migration von Software-Projekten auf.NET ermöglicht werden und die Integration von.NET-Modulen in eine bestehende Umgebung erleichtert werden.

Sicherheit

Bearbeiten

Eines der wichtigsten Konzepte von.NET ist die Sicherheit. Das Sicherheitskonzept beginnt bei Mechanismen, die die Identität des Programmherstellers gewährleisten sollen (Authentizität), geht über in solche zum Schutz der Programme vor Veränderung (Integrität) und reicht bis hin zu Techniken, die den Ort der Herkunft bzw. Programmausführung (zum Beispiel dasInternet) einbeziehen. Es gibt sowohl ein codebasiertes (Code-based Security) als auch ein nutzerbasiertes (Role-based Security) Sicherheitsmodell.

Attribute

Bearbeiten

Eine programmiertechnisch interessante Neuerung von.NET ist die Einführung von Attributen: gekennzeichneteMetadatenals Bestandteil der Programmiersprache. Beispielsweise können im Rahmen der komponentenbasierten Programmierung Komponenteneigenschaften ausgedrückt werden. Für die Verteilung, Installation und Konfiguration, für die Sicherheit, fürTransaktionenund andere Programme können dem Code beschreibende Eigenschaften hinzugefügt werden.

Innerhalb eines Programmes kann mit Hilfe von Reflection auf die Attribute eines.NET-Programms und die in ihr enthaltenen Elemente zugegriffen werden.

Dieses Konzept wurde später unter anderem in Java übernommen, wo es in Form sogenannterAnnotationsverwirklicht ist.

Verteilte Programmierung und Web Services

Bearbeiten

.NET ab Version 3.0 enthält dieWindows Communication Foundationzur Kommunikation in verteilten Systemen. Diese geben Entwicklern die Möglichkeit, Probleme, die bis dahin mit folgenden Technologien des.NET-Frameworks gelöst werden konnten, über ein einheitliches Programmiermodell zu lösen.[13]

  • ASP.NET Web Services (ASMX) mit Web Service Enhancements (WSE) extensions
  • Microsoft Message Queue (MSMQ)
  • Enterprise Services/COM+ runtime environment
  • .NET Remoting

Sprachneutralität und gemischtsprachige Programmierung

Bearbeiten

Die Common Language Specification (CLS) definiert als eine gemeinsame Untermenge denBytecodeder CIL, der von der virtuellen Laufzeitumgebung (VM) in den Maschinencode der Zielmaschine übersetzt und ausgeführt werden kann. Somit ist es möglich,.NET mit verschiedenen, an die CLR angepassten Sprachen zu programmieren. Von Microsoft zum Beispiel schon im Visual Studio mitgeliefert sind das, neben der von Microsoft für.NET eingeführten SpracheC#,die SprachenC++/CLI,dasproprietäreVisual Basic.NETsowieJ#(eine Portierung von Microsofts veränderter Java-Implementierung) und abschließend – nicht zu verwechseln mit J# –JScript.NET.Außerdem wurde mit Visual Studio 2010 die funktionale ProgrammierspracheF#eingeführt.

Insbesondere das vereinheitlichteTypsystem(Common Type System), das eine gemeinsame Schnittmenge anDatentypenbeschreibt, sorgt für ein reibungsloses Zusammenspiel beim Aufruf von in einer anderen Sprache geschriebenen Komponenten. Das stellt einen wichtigen Fortschritt dar, da man unter Visual Basic 6 unter Umständen gezwungen war, Funktionen, die nicht in Visual Basic implementiert werden konnten, in Visual C++ zu programmieren. In diesem Fall gab es immer Schwierigkeiten bei der Zuordnung der Datentypen von Visual Basic zu den entsprechenden Datentypen unter C++. Auch bei der Programmierung von COM-Komponenten in C++ musste man als Programmierer mit einem eingeschränkten Satz von Datentypen auskommen, die zur Automation benutzt werden konnten. Außerdem wurden Zeichenketten unter C++ und Visual Basic 6 intern unterschiedlich gespeichert, was die Programmierung erschwerte.

Die Vorteile der Unterstützung gemischtsprachiger Programmierung von.NET sind nicht unumstritten. Beispielsweise ist die Wartbarkeit eines Projektes, welches in mehreren Sprachen implementiert wurde, schlechter als bei der Entwicklung mit nur einer Sprache.

Neben den vonMicrosoftfür die.NET-Plattform angepassten Sprachen C#, Visual Basic.NET, F# und C++/CLI (Managed C++) werden weitere.NET-Sprachen von Drittanbietern zur Verfügung gestellt (zum BeispielDelphi PrismvonEmbarcadero,aber auch weniger bekannte Sprachen wieAPLvon Dyalog).

Die für.NET bereitgestellteIDEvonMicrosoft,dasVisual Studio.NET,bietet die Möglichkeit, weitere Sprachen von Drittanbietern in ein Projekt einzubinden und somit deren Funktionalität zu nutzen. Dass die Entwicklung in einer konsistenten Entwicklungsumgebung stattfindet und es nicht für jede Sprache eine eigene IDE gibt, ist zusätzlich von Vorteil.

Plattformunabhängigkeit

Bearbeiten

Die angestrebtePlattformunabhängigkeitwäre unter.NET grundsätzlich möglich, Microsoft selbst hatte 2002 für die erste Version von.NET eine eingeschränkte (und nicht mehr aktuelle).NET-Variante namens Shared Source CLI (SSCLI) fürmacOSundFreeBSDzur Verfügung gestellt. 2006 folgte die Version 2.0 von SSCLI für.NET 2.0, die aber nur noch aufWindows XPSP2 lauffähig ist.

Mehrere von Microsoft quasi unabhängigeOpen-Source-Projekte haben sich einer entsprechend flexiblen Implementierung der Rahmenkomponenten auf Grundlage des ECMA-Standards angenommen. Das am weitesten entwickelte Projekt istMono,das vom Hersteller Ximian initiiert wurde. DasdotGNU-Projekt, welches an einerPortable.NETgenannten Laufzeitumgebung arbeitete, wurde dagegen eingestellt.

Beide Implementierungen sind jedoch noch nicht auf dem Entwicklungsstand des heutigen.NET. Zwar hat Mono mit der Version 2.0 einen wichtigen Meilenstein, nämlich die Kompatibilität mit den nicht-windowsspezifischen Bibliotheken von.NET 2.0, erreicht. Auf der anderen Seite gibt es viele Programme, die P-Invoke oder COM Interop benutzen, d. h. auf Bibliotheken zugreifen, die nicht in IL-Code, sondern in normalem, prozessorspezifischen Maschinencode vorliegen. Zwar kann auch Mono auf Bibliotheken zugreifen, die inCoder C++ geschrieben sind, allerdings sind die meisten dieser Bibliotheken plattformabhängig. Weiterhin hat Microsoft mit.NET 3.0 und.NET 3.5 gravierende Weiterentwicklungen des Frameworks veröffentlicht, die von Mono bzw. dotGNU bis dato noch nicht oder nur teilweise implementiert wurden, aber in Arbeit sind. Explizit ausgenommen wurde dieWindows Presentation Foundation,die auf absehbare Zeit nicht reimplementiert werden wird. Allerdings wird es trotzdem Unterstützung fürXAMLgeben.

Laufzeitumgebung

Bearbeiten

Verwalteter oder auchmanaged Codewird, wie oben erwähnt, von der Laufzeitumgebung Common Language Runtime (CLR) verwaltet. Diesevirtuelle Maschineübernimmt die Anforderung und Freigabe von Speicher und anderen Ressourcen (automatische Speicherbereinigung,engl.garbage collection) und stellt sicher, dass geschützte Speicherbereiche nicht direkt angesprochen oder überschrieben werden können. Wie oben unterSicherheitbeschrieben, können auch Zugriffe auf Dienste,Dateisystem-Funktionen oder Geräte überwacht und, sofern sie gegen Sicherheitsrichtlinien verstoßen, von der CLR abgelehnt werden.

Ausführungsgeschwindigkeit

Bearbeiten

Für den Erfolg von.NET war und ist es wichtig, die Entwicklergemeinde von C++ für.NET zu gewinnen. Daher war Geschwindigkeit bei.NET von Anfang an ein wesentliches Entwurfsziel.

Durch verschiedene Techniken wird versucht, den negativen Einfluss der CLR auf die Ausführungsgeschwindigkeit möglichst klein zu halten. Zum Beispiel wurden analog zu Java sogenannteJIT-Compilereingeführt, die einen Mittelweg zwischen Interpretation und Kompilierung gehen. Außerdem kann man mit.NET als Neuerung auch Programme in bereits kompiliertem Code, als sogenanntes „natives Image “installieren. Das wirkt sich insbesondere auf die erstmaligen Ladezeiten bei Programmen mit größeren Klassenmengen aus. Weiterhin kann der Speicherbedarf reduziert werden, wenn mehrere Programme dieselbe Assembly nutzen bzw. das Programm mehrfach gestartet wird (Terminalserver), da die nativen Images im Gegensatz zu JIT-Code zwischen den Programmen über gemeinsam genutzten Speicher (engl.shared memory) geteilt werden. Der Gewinn an Ausführungsgeschwindigkeit durch native Images muss durch sorgfältige Messungen („profiling “) analysiert werden. Der Einsatz von nativen Images erfordert weitere Planungsschritte bei der Entwicklung der Software, zum Beispiel eine sorgfältige Auswahl der DLL-Basisadresse der Assemblies, um eine Relokation der DLLs zu verhindern. Schließlich müssen die Assemblies auch imGACinstalliert werden, um anhand der Identität die Integrität der Images garantieren zu können. Wird das nicht beachtet, führt die Relokation bzw. die Identitätsprüfung der Assembly zu weiteren Ausführungszeiten, die den Vorteil der nativen Images wieder zunichtemachen.

Die automatische Ressourcenverwaltung und die verbesserte Sicherheit haben dennoch ihren Preis – die Ausführung von managed code hat einen erhöhten Ressourcenbedarf und benötigt mehr Zeit. Außerdem sind dieAntwortzeitenauf Programm-Ereignisse wesentlich schwieriger zu kalkulieren und zum Teil deutlich größer, was die Anwendbarkeit inEchtzeitsystemenstark einschränkt.

Ein Grund dafür ist dieautomatische Speicherbereinigung,die Garbage Collection, die automatische Freigabe nicht mehr benötigten Speichers und anderer Ressourcen. Im Regelfall entscheidet der Garbage Collector, wann der Speicher aufgeräumt werden soll. Der Entwickler kann aber den Zeitpunkt der Speicherbereinigung auch selbst festlegen. Während das einerseits, durch die Zusammenfassung der Freigabeoperationen, die Ausführungsdauer von Programmläufen verringern kann, können andererseits die Antwortzeiten auf Ereignisse dadurch in Mitleidenschaft gezogen werden. Das ist besonders für kleinere Maschinen nachteilig und stellt, vor allem im Hinblick auf die Marktausrichtung zu mobilen Kleingeräten, ein Problem dar.

.NET wird inzwischen auch bei performancekritischen Programmen, zum Beispiel Computerspielen (zum Beispiel mit demXNA Framework), Animationsprogrammen, Konstruktionsprogrammen und ähnlichen, hochaufwendigen Programmen genutzt, da viele Programmierer der Meinung sind, dass aktuelle Systeme durch ihre höhere Geschwindigkeit den durch.NET bedingten Leistungsverlust ausgleichen.

Auf der anderen Seite steht die Meinung, dass die Qualität und Effizienz der traditionellen Softwareentwicklung zu wünschen übrig lassen und dass die diesbezüglichen Vorteile durch obige Verfahren deren Nachteile in der Regel aufwiegen. Im Allgemeinen wird dabei von einer asymmetrischen Verteilung ausgegangen, dass zum Beispiel 90 Prozent einer durchschnittlichen Anwendung problemlos „managed “, das heißt, auch mit automatischer Speicherbereinigung ausgeführt werden können, und lediglich 10 Prozent (zum Beispiel einzelne Funktionen oder Klassen) optimiert werden müssen.

Nicht zuletzt können Programme auch in Hinblick auf die Ausführungsgeschwindigkeit im Zusammenspiel mit automatischer Speicherbereinigung optimiert werden.

Klassenbibliothek

Bearbeiten

Die Framework Class Library (FCL) umfasst z. B. in der Version 3.5 bereits etwa 11.400Klassenund andere Datentypen, die in mehr als 300 sogenannteNamensräume(Namespaces) unterteilt sind.[14]Im Vergleich zur ersten Version 1.0 mit 3.581 Datentypen in 124 Namensräumen ist das ein deutlicher Anstieg. Die Klassen erfüllen Aufgaben wie das Formatieren von Text, das Verschicken von E-Mails, aber auch das Generieren von Code. Die Unterteilung in Namensräume dient dazu, die große Menge an Informationen übersichtlicher zu gestalten. Beispielsweise befinden sich Klassen zum Generieren von Code in dem NamensraumSystem.Reflection.Emit.

Die Dokumentation der Klassen liefert der Hersteller in seinem Software Development Kit (SDK) mit (siehe unten).

Programmausführung

Bearbeiten

Der Compiler für.NET-Sprachen erzeugt keinen Maschinencode, der direkt vom Prozessor ausgeführt werden kann. Stattdessen wird ein prozessorunspezifischer Zwischencode, der sogenannteIntermediate Language Code(Zwischen-Sprachcode, IL-Code) erzeugt. Dieser besteht aus Befehlen, die auf der stackbasiertenvirtuellen Maschine(VM) ausgeführt werden. Die resultierenden Programme („.exe-Dateien “) besitzen wie native Windows-Programme denPE-Header.Eine kleine Routine am Anfang des Programms ermöglicht den Start der virtuellen Maschine, welche wiederum den Zwischencode ausführt.

Wenn das Programm ausgeführt wird, übersetzt einJIT-Compiler,der in der Laufzeitumgebung Common Language Runtime (CLR) enthalten ist, den Zwischencode in Maschinencode, der dann vom Prozessor direkt ausgeführt werden kann.

Da Code aus allen.NET-Sprachen in dieselbe Zwischensprache übersetzt wird, können Funktionen und Klassenbibliotheken, die in verschiedenen.NET-Sprachen geschrieben sind, problemlos gemeinsam in einem Programm verwendet werden.

Assemblies

Bearbeiten

Übersetzte Programmklassen werden als ausführbare Programme in sogenannten Assemblies zusammengefasst und bereitgestellt (vergleichbar mitJAR-Dateien inJava). Diese haben typischerweise die Endungen.exe oder.dll und sind gültigePortable Executables,werden jedoch anders strukturiert. Insbesondere sind im sogenannten Manifest alle notwendigen Metadaten aufgeführt, so dass für reine.NET-Programme in der Regel dieRegistrierungentfällt (Ausnahme zum Beispiel COM+/Enterprise Services).

Assemblies können entweder „privat “, „gemeinsam “(shared) oder „global “sein. Private Assemblies befinden sich in demselben Verzeichnis wie das auszuführende Programm. Daher wird angenommen, dass die Version des Assemblies kompatibel zum Programm ist und daher nicht von der CLR geprüft wird.

Ein gemeinsames Assembly kann sich in einem Verzeichnis befinden, auf das von mehreren Programmen zugegriffen wird. Daher wird für ein gemeinsames Assembly ein sogenannter „Strong Name “benötigt, bestehend aus dem Dateinamen des Assemblies, seiner Version, der „Culture “– die dieLokalisierungdefiniert – und einem kryptografischen Schlüssel. Durch eine Konfigurationsdatei, die sich in dem Verzeichnis des Programms befindet, kann der Anwendung der Speicherort der gemeinsamen Assemblies mitgeteilt werden. Ein Strong Name kann mit Hilfe des Werkzeugs sn erzeugt werden.

Ein globales Assembly wird im globalen Assembly-Zwischenspeicher (Global Assembly Cache,GAC) gespeichert. Mit Hilfe des Werkzeugs gacutil können Assemblies dem GAC hinzugefügt werden. Innerhalb des GAC können Assemblies mit unterschiedlichen Versionen, Kulturen gespeichert werden. Mit Hilfe von Konfigurationsdateien kann festgelegt werden, welche Versionen eines Assemblies von der Anwendung benutzt werden sollen. Erfolgt keine Angabe, so wird nur die Version benutzt, die bei der Erstellung der Anwendung benutzt wurde. Wenn diese nicht vorhanden ist, wird beim Start des Programms eine Fehlermeldung ausgegeben.

AktuelleWindows-Versionen besitzen eine Explorer-Erweiterung, die eine aussagekräftige Anzeige des Inhalts des GAC im Windows Explorer ermöglicht.

Verfügbarkeit, Standardisierung, alternative Produkte

Bearbeiten

.NET ist im vollen Umfang nur für Windows verfügbar. Am 17. Januar 2008 veröffentlichte Microsoft Teile desQuelltextesfür Windows-Entwickler.[15]Große Teile von.NET, insbesondere die Laufzeitumgebung und die Klassenbibliotheken, wurden unter dem NamenCommon Language Infrastructure(CLI) alsECMA-Standardnormiert. Durch die Standardisierung der Laufzeitumgebung gibt es alternative Produkte, die Software, die mit.NET erstellt wurde, ausführen beziehungsweise Software für.NET erstellen können. Viele Programme, die mit.NET erstellt wurden, laufen beispielsweise dank der durch dasOpen-Source-ProjektMonozur Verfügung gestellten Software auch aufUnix-basiertenBetriebssystemen wie z. B.LinuxodermacOS.

Der Hersteller Microsoft bietet.NET in verschiedenen Formen an. Als reine Laufzeitumgebung samt benötigter Klassenbibliotheken (Framework), als kostenlosesSDKfür Entwickler, als kostenpflichtigeintegrierte Entwicklungsumgebung(IDE) in Form des Microsoft Visual Studio.NET. Speziell für Einsteiger und Studenten gibt es die kostenlosen Microsoft Visual Studio Express Editions mit Einschränkungen gegenüber den kostenpflichtigen Standard- oder Professional-Varianten. Eine ebenfalls kostenfreie IDE für.NET (und Mono) unter Windows findet man im Open-Source-ProjektSharpDevelop.Studenten bietet Microsoft weiterhin die Möglichkeit, über das DreamSpark-Programm kostenfrei die Professional-Variante des Visual Studios zu beziehen.

SeitWindows Server 2003bietet Microsoft darüber hinaus Server-Betriebssysteme an, die bereits eine.NET-Laufzeitumgebung integriert haben. Bei Vorversionen muss diese manuell installiert werden, sofern die betreffende Windows-Variante unterstützt wird..NET ist erst abWindows NT 4.0beziehungsweiseWindows 98einsetzbar, die Programmierung von Webanwendungen (ASP.NET) etwa läuft nur abWindows 2000.AbWindows Vistaist.NET ein Kernbestandteil des Systems. Auf Nicht-Windows-Systemen wird.NET von Microsoft offiziell nicht unterstützt – so verbleibt die Plattformunabhängigkeit in der Liste der Möglichkeiten von.NET. Allerdings existieren die bereits erwähnten Open-Source-Projekte, die.NET auch für andere Plattformen (zum Beispiel Linux) verfügbar machen, wenn sie auch nicht den vollen Funktionsumfang des.NET-Frameworks unter Windows bieten können.

Versionen

Bearbeiten

Überblick

Bearbeiten

Microsoft begann mit der Entwicklung des.Net-Frameworks in den späten 1990ern, ursprünglich unter dem Namen derNext Generation Windows Services (NGWS).Gegen Ende des Jahres 2000 wurden die ersten Betaversionen von.NET 1.0 veröffentlicht.

Die.NET-Framework-Hierarchie
Version Versionsnummer Datum enthalten in
1.0 1.0.3705.0 5. Januar 2002
1.1 1.1.4322.573 1. April 2003 Windows Server 2003
2.0 2.0.50727.42 7. November 2005 Windows Server 2003 R2
3.0 3.0.4506.30 6. November 2006 Windows Vista,Windows Server 2008
3.5 3.5.21022.8 9. November 2007 Windows Server 2008 R2
3.5 SP 1 3.5.30729.1 11. August 2008 Windows 7mitSP1
4.0 4.0.30319 12. April 2010
4.5 4.5.50501 15. August 2012 Windows 8,Windows Server 2012
4.5.1 4.5.50938 12. Oktober 2013 Windows 8.1,Windows Server 2012 R2
4.5.2 4.5.51090 5. Mai 2014 Windows 8.1,Windows Server 2012 R2
4.6 4.6.00081 10. Juli 2015 Windows 10,Windows Server 2016
4.6.1 17. November 2015
4.6.2 20. Juli 2016
4.7 11. April 2017
4.7.1 13. Oktober 2017
4.7.2 4.7.3081.0 10. Juli 2018 Windows Server 2019
4.8 4.8.3761.0 18. April 2019
4.8.1 9. August 2022

.NET Framework 1.0

Bearbeiten

Version 1.0 stellt die erste Veröffentlichung des.Net-Frameworks dar. Es wurde am 13. Februar 2002 fürWindows 98,NT 4.0,2000undXPveröffentlicht. Der Support vonMicrosoftfür diese Version endete am 10. Juli 2007, der erweiterte Support lief noch bis zum 14. Juli 2009.[16]

.NET Framework 1.1

Bearbeiten

Die erste Erweiterung von.NET wurde alsInstalleram 3. April 2003 veröffentlicht. Es wurde gleichzeitig als integraler Bestandteil der Entwicklungsumgebung Visual Studio.NET 2003 vertrieben. Version 1.1 war die erste Version von.NET, die zusammen mit einem Betriebssystem, nämlich demWindows Server 2003,ausgeliefert wurde. Dieser hieß bis zum Freigabekandidat sogar Windows.NET Server.[17]Die offizielle Unterstützung für diese Version endete am 14. Oktober 2008, die erweiterte Unterstützung endete am 8. Oktober 2013.[18]Da.NET 1.1 eine Komponente des Windows Server 2003 darstellt, lief die erweiterte Unterstützung zusammen mit der Unterstützung für dieses Betriebssystem am 14. Juli 2015 aus.[19]

Änderungen in 1.1 im Vergleich mit 1.0
  • Eingebaute Unterstützung für mobileASP.NET-Schaltflächen. Zuvor verfügbar alsAdd-onfür das.Net-Framework, nun ein Bestandteil des Frameworks
  • Änderungen in der Sicherheitsarchitektur – Windows-Forms-Assemblies aus dem Internet werden in einer Sandbox ausgeführt, zusätzlich wurde für ASP.NET-Anwendungen dieCode Access Securityaktiviert.
  • Eingebaute Unterstützung für ODBC- und Oracle-Datenbanken, zuvor verfügbar als Add-on für das.NET 1.0, nun ein Bestandteil des Frameworks
  • Einführung der Internet Protocol Version 6 (IPv6)
  • Diverse Änderungen in der API

.NET Framework 2.0

Bearbeiten

.NET 2.0 wurde zusammen mitVisual Studio 2005,Microsoft SQL Server2005 undMicrosoft BizTalk2006 veröffentlicht.

  • Das.NET-2.0-Paket wurde am 22. Januar 2006 zum Download zur Verfügung gestellt.
  • Version 2.0 ohne Servicepack ist die letzte Version, dieWindows 98undWindows Meunterstützt.
  • .NET Framework 2.0 SP1 ist die lezte offiziell fürWindows 2000unterstützte Version.[20]
    • .NET Framework 2.0 SP2 wird offiziell nicht für Windows 2000 unterstützt.[21]
  • Die Version wird auch mit demWindows Server 2003 R2ausgeliefert (nicht standardmäßig installiert).
Änderungen in 2.0 im Vergleich mit 1.1
  • Zahlreiche Änderungen in der API
  • Eine neue API für native Anwendungen, die eine Instanz der.NET-Laufzeit beherbergen wollen. Die neue API gewährleistet eine feinstrukturierte Kontrolle über das Verhalten der Laufzeit in Bezug auf Multithreading,Speicherallokation,dem Laden von Assemblies und mehr. Es wurde ursprünglich entwickelt, um effizient die Laufzeit imMicrosoft SQL Serverzu betreiben, welcher seinen eigenen Scheduler und eine eigene Speicherverwaltung implementiert.
  • Vollständige 64-Bit-Unterstützung für diex64- und alleIA64-Plattformen
  • Direkt in die.NET CLR eingebaute Sprachunterstützung fürgenerische Typen
  • Viele Zusätze und Verbesserungen für ASP.NET-Web-Schaltflächen
  • Neue Datensteuerung mit deklarativer Datenbindung (engl. „data binding “)
  • Neue personalisierende Features für ASP.NET, zum Beispiel Unterstützung von Themes, Skins undWebparts

.NET Framework 3.0

Bearbeiten

.Net-Framework 3.0, ehemals WinFX genannt, erweitert die Managed-API, die einen integralen Bestandteil der BetriebssystemeWindows VistaundWindows Server 2008darstellt. Seit dem 6. November 2006 ist das.Net-Framework 3.0 fürWindows XPab Service Pack 2 und fürWindows Server 2003verfügbar, um Entwicklern rechtzeitig die Entwicklung und Portierung von Programmen nach Vista zu ermöglichen. In der dritten Hauptversion von.NET wurden tiefgreifende Änderungen an der Architektur vorgenommen. Dazugekommen sind Funktionalitäten, die vor allem unter Windows Vista zum Einsatz kommen sollen. Das.Net-Framework 3.0 greift auf die CLR aus.NET 2.0 zurück.

Das.Net-Framework 3.0 beinhaltet vier neue Hauptkomponenten:

  • Windows Presentation Foundation(entwickelt unter dem CodenamenAvalon): Eine neue Technik, Objekte mit Hilfe der eigens dafür entwickelten BeschreibungsspracheXAMLauf dem Bildschirm darzustellen. Dabei werden, wie beiQuartz ExtremeuntermacOS,beispielsweise Transparenzeffekte nicht mit derCPUerrechnet, sondern leistungssteigernd über die 3D-Grafikkarte.Das entlastet die CPU und lässt das System auch optisch „flüssiger “aussehen.
  • Windows Communication Foundation(entwickelt unter dem CodenamenIndigo): Eine neue dienstorientierte Kommunikationsplattform für verteilte Anwendungen. Hier will Microsoft viele Netzwerk-Funktionen zusammenführen und den Programmierern solcher Anwendungen standardisiert zur Verfügung stellen. Bei dieser Weiterentwicklung vonDCOMlegt Microsoft besonderen Wert auf internetbasierte Anwendungen.
  • Windows Workflow Foundation:Infrastruktur für die einfachere Entwicklung von Workflow-Anwendungen, sowohl in geschäftlicher als auch technischer Hinsicht, aber auch für dokument- und webbasierte Workflows. Bietet zudem grafische Designer für Visual Studio (Modellierung mittels Fluss- und Zustandsdiagrammen). Funktionen davon sollen unter anderem in zukünftigen Versionen von Office (SharePoint) undBizTalkverwendet werden.
  • Windows CardSpace(entwickelt unter dem CodenamenInfoCard):Identitätsmanagement-Infrastruktur für verteilte Anwendungen. Mit CardSpace will Microsoft einen neuen Standard für das Identitätsmanagement unter anderem im Internet etablieren. In dem eigenen BrowserInternet Explorer(Version 7) schon integriert, will Microsoft für diesen Dienst auchPlug-insfür alternative Browser entwickeln, mindestens aber fürMozilla Firefox.[22]

Für die Vorab-Demonstration des neuen.Net-Framework präsentierte Microsoft den Fotodienst Microsoft Max. Mit Herausgabe der endgültigen Version wurde der Dienst eingestellt.

.NET Framework 3.5

Bearbeiten

Version 3.5 des.Net-Frameworks wurde am 19. November 2007 veröffentlicht. Es verwendet die CLR aus Version 2.0. Mit Version 3.5 werden gleichzeitig das.NET Framework 2.0 SP1 und.NET Framework 3.0 SP1 installiert.

Die Version 3.5 SP1 (11. August 2008) ergänzte die Bibliothek um das ADO.NET Entity Framework 1.0 und die ADO.NET Data Services. Mit der Version 3.5 SP1 werden gleichzeitig das.NET Framework 2.0 SP2 und.NET Framework 3.0 SP2 installiert. Am 18. Dezember 2008 wurde zudem ein General Distribution Release veröffentlicht, das lediglich Fehlerbehebungen beinhaltet.[23]

Der Quellcode der Klassenbibliothek (BCL) wurde teilweise unter der Microsoft Reference Source License freigegeben.

Änderungen seit Version 3.0

.NET Framework 4.0

Bearbeiten

Microsoft gab Informationen zum.Net-Framework 4 erstmals am 29. September 2008 und auf der Professional Developers Conference (PDC 2008) bekannt. Die erste Beta-Version des.NET 4 wurde am 18. Mai 2009 veröffentlicht. Am 19. Oktober 2009 folgte eine zweite Beta-Version. Ursprünglich war die Veröffentlichung des.NET-Frameworks zusammen mit der EntwicklungsumgebungMicrosoft Visual Studio 2010für den 22. März 2010 geplant. Um jedoch mehr Zeit für weitere von Nutzern der Beta 2 des Microsoft Visual Studio 2010 geforderte Optimierungen zu erhalten, kündigte Microsoft im Dezember 2009 eine Verschiebung des Releases von.NET 4 und Visual Studio 2010 um einige Wochen an.[24]Am 10. Februar 2010 erschien das „Release Candidate “. Die endgültige Version von.NET 4 und Visual Studio 2010 in der englischen Sprachfassung wurde von Microsoft schließlich am 12. April 2010 veröffentlicht.[25]

Zu den wichtigsten Neuerungen[26]bei.Net-Framework 4 gehörten unter anderem:

  • Dynamic Language Runtime
  • Codeverträge
  • Unterstützung fürKovarianz und Kontravarianzdurch generische Schnittstellen und Delegaten
  • Managed Extensibility Framework
  • Unterstützung für Speicherabbilddateien
  • Automatische Speicherbereinigung im Hintergrund
  • Neues Programmiermodell zum Schreiben von Multithread- und asynchronem Code[27]
  • Verbesserte Leistung, Skalierbarkeit und Workflow-Modellierung sowie neuer Designer bei der Windows Workflow Foundation[28]
  • Version 4.0 ist die letzte Version, dieWindows XPundWindows Server 2003unterstützt.

.NET Framework 4.5

Bearbeiten

Die ersten Informationen zu.Net-Framework 4.5 gab Microsoft auf der BUILD Windows Konferenz am 14. September 2011 bekannt. Die endgültige Version erschien am 15. August 2012.[29]

Mit Version 4.5 hat Microsoft die Bereitstellung zweier separater Installationspakete, einem „Full Package “und einem im Funktionsumfang reduzierten „Client Profile “, wieder eingestellt.[30]Als Grund dafür gilt, dass das Client Profile-Installationspaket nur unbedeutende 7 MB an Download einspart, dafür aber häufig Verunsicherung über die richtige Wahl beim Benutzer verursachte.[31] Neben einigen kleinen Verbesserungen (u. a. Performance des JIT-Compilers) wurde die Unterstützung asynchroner Methodenaufrufe durch neue Schlüsselwörter in C# (async, await) und Visual Basic (Async, Await) hinzugefügt.[32]

.NET Framework 4.5.1

Bearbeiten

Mit Version 4.5.1 wurden erneut einige kleinere Verbesserungen vorgenommen, außerdem erschien eine neue Version 2013 von Visual Studio.

.NET Framework 4.5.2

Bearbeiten

Mit Version 4.5.2 wurden kleinere Verbesserungen bei der High-DPI-Darstellung vorgenommen.

.NET Framework 4.6

Bearbeiten

Mit Version 4.6 wurden u. a. die Performance des 64 Bit JIT-Compilers verbessert sowie umfangreiche Änderungen an Basisklassenbibliotheken vorgenommen.[33]

Version 4.6 ist die letzte Version, dieWindows VistaundWindows Server 2008unterstützt.[34]

.NET Framework 4.6.1

Bearbeiten

Version 4.6.1 bringt Fixes und neue Features.[35]

.NET Framework 4.6.2

Bearbeiten

Version 4.6.2 bringt Fixes und neue Features.[36]

.NET Framework 4.7

Bearbeiten

Version 4.7 bringt Fixes und neue Features:

  • Verbesserte Unterstützung der Sicherheit mit Transport Layer Security (TLS) vor allem der Version 1.2
  • Verbesserte Unterstützung für Verschlüsselung mitElliptic Curve Cryptography
  • Unterstützung für High-DPI Größenerkennung in Windows Forms
  • Feinere Erkennung von „touch and stylus “in der Windows Presentation Foundation (WPF)
  • Neue Druckerschnittstelle für WPF

Eine Vorschauversion wurde imWindows-Insider-ProgrammvonWindows 10ab Januar 2017 ausgeliefert.

Die finale Version wurde zusammen mit dem Creators Update für Windows 10 ausgeliefert,[37]welches am 11. April freigegeben wurde.[38]

Am 2. Mai 2017 wurde.NET 4.7 fürWindows 7 mit Service Pack 1,Windows 8.1,Windows 10 mit dem Anniversary Update (1607),Windows Server 2008 R2mit Service Pack 1,Windows Server 2012,Windows Server 2012 R2undWindows Server 2016veröffentlicht.[39]

.NET Framework 4.7.1

Bearbeiten

Am 13. Oktober 2017 wurde.NET 4.7.1 für Windows 7 mit Service Pack 1, Windows 8.1, Windows 10 mit dem Fall Creators Update (Version 1709), Windows Server 2008 R2 mit Service Pack 1, Windows Server 2012, Windows Server 2012 R2 und Windows Server 2016 veröffentlicht.[40][41]

.Net-Framework 4.7.1 unterstützt den.NET Standard 2.0, wenn zusätzliche.NET Standard-Unterstützungsdateien (dotnet-standard-support-vs2015-2.0.0-win-x86.msi) installiert werden.

.NET Framework 4.7.2

Bearbeiten

Am 30. April 2018 wurde.NET 4.7.2 für Windows 7 mit Service Pack 1, Windows 8.1, Windows 10 mit dem Spring Creators Update (Version 1803), Windows Server 2008 R2 mit Service Pack 1, Windows Server 2012, Windows Server 2012 R2 und Windows Server 2016 angekündigt.[42]

.Net-Framework 4.7.2 baut auf früheren Versionen von.Net-Framework 4.x auf. Visual Studio-Anwendungen ab 2012 werden unterstützt.

.NET Framework 4.8.0

Bearbeiten

Am 18. April 2019 wurde.Net 4.8 offiziell freigegeben.[43]Es werden folgende Windows-Versionen unterstützt: Windows 7, Windows 8.1, Windows 10, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Server 2016 und Windows Server 2019

Die Version 4.8.0 wird automatisch mit dem Windows 10 Update aufVersion 1903ausgeliefert.

Der Just in Time Compiler von.NET 4.8 basiert auf.NET Core 2.1. Alle Fehlerkorrekturen und viele auf der Codegenerierung basierende Leistungsoptimierungen von.NET Core 2.1 sind nun auch im.Net-Framework verfügbar.

Version 4.8 bringt Fixes und neue Features:

  • Runtime – JIT Verbesserung
  • BCL – Verwendung der aktuellen ZLib
  • Anpassungen für Monitore mit unterschiedlich hohen DPI Auflösungen

.NET Framework 4.8.1

Bearbeiten

Am 9. August 2022 wurde.NET 4.8.1 freigegeben. Dieses verbessert die Barrierefreiheit und die Performance aufARM64-Geräten (mitWindows 11) durch native Unterstützung.[44]

.NET Compact Framework

Bearbeiten

Für Handhelds und Mobiltelefone, die unterWindows CEbzw.Windows Mobilelaufen, existiert eine funktional reduzierte Version der.NET-Laufzeitumgebung in Form des.NET Compact Frameworks. Es lässt sich aber nur unter Verwendung des kostenpflichtigen Visual Studio.NET 2003 oder neuer für diese Plattform entwickeln. Zeitgleich mit der Version 3.5 von.NET wurde das.NET Compact Framework 3.5 veröffentlicht.

.NET Micro Framework

Bearbeiten

Im September 2006 stellte Microsoft zusätzlich das.NET Micro Framework vor. Es stellt eine nochmals eingeschränkte Version des.Net-Frameworks speziell für Embedded-Geräte dar. Je nach Plattform soll das Framework zwischen 512 KByte und 1 MByte auf dem Gerät beanspruchen und lässt sich direkt aus dem Flash-Speicher oder dem ROM starten. In diesem Falle arbeitet das Micro Framework alsBetriebssystem,es kann aber auch auf ein vorhandenes Windows-Betriebssystem aufsetzen.

Silverlight

Bearbeiten

Silverlight (vormalsWPF/E) enthält eine stark verkleinerte Untermenge des.Net-Frameworks und soll im WesentlichenWebbrowserbefähigen,reichhaltige Internetanwendungenauf Basis derWPFauszuführen. Normale Programme auf Basis der WPF sind ebenfalls „webfähig “, benötigen aber das vollständige.NET 3.0, welches derzeit nur für Windows verfügbar ist. Silverlight sollte ursprünglich auch für macOS, ältere PCs mit Windows sowie Linux bereitgestellt werden. Microsoft stellte dann allerdings jegliche Unterstützung für Silverlight am 12. Oktober 2021 ein.

.NET Core und.NET

Bearbeiten

Am 12. November 2014 wurde eine Teilmenge des Reference Source aufGitHubgehostet und unter derMIT-Lizenzveröffentlicht.[45]Das geschah auch, um das Mono-Projekt zu unterstützen, damit Lücken zwischen Mono und.NET durch Verwendung desselben Codes geschlossen werden können.[46]DiesesRepositorybezieht sich auf das.Net-Framework 4.6 und hat deshalb nur Lesezugriff. Gleichzeitig veröffentlichte Microsoft die überarbeiteten Komponenten des Frameworks unter der Bezeichnung.NET Coreauf GitHub und zwar auch unter MIT-Lizenz.[47].NET Core erlaubt die Beteiligung durch die Community und ist von Microsoft an die 2014 gegründete.NET Foundation überstellt worden. Durch die Verwendung der MIT-Lizenz gibt es faktisch keine Einschränkungen, wie der Quellcode von.NET Core verwendet werden darf. Die veröffentlichten Komponenten umfassen auch die Werkzeuge für eine Softwareentwicklung aufKommandozeilenebenesowie ASP.NET (Weiterentwicklung in geänderter Form als ASP.NET Core)..NET Core ist auch unter Linux und macOS lauffähig.[48][49]Im November 2020 wurden.NET Core,.Net-Framework als einheitliche Plattform unter der Bezeichnung.NET 5.0 zusammengeführt.[50]

Siehe auch

Bearbeiten

Literatur

Bearbeiten
  • Wolfgang Beer et al.:Die.NET-Technologie: Grundlagen und Anwendungsprogrammierung.dpunkt Verlag 2006,ISBN 978-3-89864-421-1.
  • Dino Esposito, Andrea Saltarello:Architecting Applications for the Enterprise: Microsoft.NET.Microsoft Press, Second Edition 2014,ISBN 978-0-7356-8535-2.
  • Jürgen Kotz u. a.:.NET 3.0. WPF, WCF und WF – ein Überblick;Addison-Wesley, München Februar 2007,ISBN 3-8273-2493-9.
  • Daniel Liebhart u. a.:Architecture Blueprints;Hanser Verlag, 2007,ISBN 978-3-446-41201-9.
  • Jeffrey Richter:Microsoft.NET Framework-Programmierung in C#. Expertenwissen zur CLR und dem.NET Framework 2.0.Microsoft Press, 2. Auflage 2006,ISBN 978-3-86063-984-9.
  • Holger Schwichtenberg:Microsoft.NET 2.0 Crashkurs.Microsoft Press, Unterschleißheim 2006,ISBN 3-86063-987-0.
  • Holger Schwichtenberg:Microsoft.NET 3.0 Crashkurs.Microsoft Press, Unterschleißheim 2007,ISBN 3-86645-501-1.
  • Holger Schwichtenberg u. a.:Microsoft.NET 4.5 Update.Microsoft Press 2012,ISBN 978-3-86645-468-2.
Bearbeiten

Einzelnachweise

Bearbeiten
  1. .NET Framework 4.8.1 is available on Windows Update and Catalog June 27, 2023.27. Juni 2023 (abgerufen am 3. Juli 2023).
  2. Projekt Roslyn: Microsoft gibt Code der.Net-Compiler-Plattform freiGolem,am 3. April 2014; u. a. mit „Interessierte können sich nun die Compiler für C# und Visual Basic genauer ansehen. “
  3. Sprachcompiler für C# und Visual Basic sind jetzt Open SourceHeise online,am 4. April 2014
  4. Immo Landwerth:Introducing.NET Standard.In:.NET Blog.Microsoft, 26. September 2016,abgerufen am 24. September 2019(englisch).
  5. heise online:.NET 5.0 ist erschienen.Abgerufen am 12. November 2020.
  6. olprod:Häufig gestellte Fragen zum Lebenszyklus –.NET Framework.Abgerufen am 12. November 2020.
  7. adegeo:Installieren des.NET Framework unter Windows 11 -.NET Framework.Abgerufen am 11. August 2022(deutsch).
  8. .NET Foundation Projects..NET Foundation,abgerufen am 13. November 2014(englisch).
  9. Steven J. Vaughan-Nichols:Microsofts Open-Source Trap for Mono.In:eweek.com.3. Oktober 2007,abgerufen am 1. Februar 2023(englisch).
  10. Was die Kunden wollen: Microsoft und Novell kooperieren– Artikel beiHeise open,vom 3. November 2006
  11. .NET Framework Blog – Announcing.NET 2015 Preview: A New Era for.NET.Microsoft,abgerufen am 13. November 2014(englisch).
  12. Was ist „verwalteter Code “?Microsoft Docs,erstveröffentlicht am 20. Juni 2016; u. a. auch mit „nicht verwalteten Code “und „unsicheren Kontext “
  13. Introduction to Building Windows Communication Foundation Services.Microsoft, archiviert vomOriginal(nicht mehr online verfügbar) am14. August 2012;abgerufen am 23. September 2012(englisch).Info:Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäßAnleitungund entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/msdn.microsoft.com
  14. Brad Abrams: Number of Types in the.NET Framework
  15. ScottGu’s Blog (Corporate Vice President in the Microsoft Developer Division)(engl.)
  16. Microsoft Support Lifecycle –.NET Framework 1.0.Abgerufen am 21. November 2013.
  17. Windows.NET Server – Die große Preview zum RC 1– Bericht beiWindows-Tweaks Info;Stand: 13. September 2011, abgerufen am 16. Mai 2012
  18. Microsoft Support Lifecycle –.NET Framework 1.1.Abgerufen am 21. November 2013.
  19. Microsoft Support Lifecycle – Windows Server 2003.Abgerufen am 6. März 2014.
  20. Microsoft.NET Framework 2.0 Service Pack 1 (x86)Downloadseite für.NET Framework 2.0 Service Pack 1 (x86_32), Systemanforderung mindestens Windows 2000 SP4. Abgerufen am 7. August 2024
  21. Microsoft.NET Framework 2.0 Service Pack 2Archivlink (Archive.org) für.NET Framework 2.0 Service Pack 2 (x86_32), Systemanforderung mindestens Windows XP. Abgerufen am 7. August 2024
  22. itmagazine.ch:Microsoft bringt Identity Management für Firefox
  23. GDR (General Distribution Release)
  24. Verlängerte Betaphase für Visual Studio 2010 – „Release Candidate “im Februar 2010Visual Studio News-Blog,am 18. Dezember 2009
  25. Visual Studio 2010 und.NET 4 veröffentlicht– Artikel beiHeise online.12. April 2010
  26. Neues in.NET Framework 4
  27. Parallele Programmierung in.NET Framework
  28. Neues in Windows Workflow Foundation
  29. Microsoft (MSDN): Announcing the release of.NET Framework 4.5 RTM
  30. Microsoft:.NET Framework Client Profile
  31. Blogspot:.Net 4.5-The End of Microsoft.Net Framework Client Profile
  32. msdn.microsoft.com
  33. Neuigkeiten in.NET 2015 RC,microsoft.com library 2015.
  34. Microsoft.NET Framework 4.6.1 (Offlineinstaller).Abgerufen am 14. Juni 2018.
  35. Introducing the.NET Framework 4.6.1,MSDN Library
  36. Introducing the.NET Framework 4.6.2,MSDN Library
  37. Announcing the.NET Framework 4.7.Microsoft, 5. April 2017,abgerufen am 2. Mai 2017(englisch).
  38. Yusuf Mehdi:Windows 10 Creators Update coming April 11, Surface expands to more markets.Microsoft, 29. März 2017,abgerufen am 2. Mai 2017(englisch).
  39. Microsoft.NET Framework 4.7 (Offlineinstaller) für Windows 7 SP1, Windows 8.1, Windows 10 Anniversary Update, Windows Server 2008 R2 SP1, Windows Server 2012, Windows Server 2012 R2 und Windows Server 2016.Microsoft, 2. Mai 2017,abgerufen am 2. Mai 2017.
  40. Microsoft.NET Framework 4.7.1 (Offlineinstaller) für Windows 7 SP1, Windows 8.1, Windows 10 Anniversary Update, Windows 10 Creators Update, Windows Server 2008 R2 SP1, Windows Server 2012, Windows Server 2012 R2 und Windows Server 2016– Microsoft Download Center, am 13. Oktober 2017; u. a. mit „Veröffentlichungsdatum “(wenn die „Details “über das „+ “-Zeichen geöffnet werden, was ggf. die Ausführungserlaubnis fürJavaScripterfordert)
  41. Announcing the.NET Framework 4.7.1(englisch) – Ankündigung aufMicrosoftsNET Blog,von Preeti Krishna, am 17. Oktober 2017
  42. Announcing the.NET Framework 4.7.2.30. April 2018,abgerufen am 25. August 2018(englisch).
  43. Announcing the.NET Framework 4.8.18. April 2019,abgerufen am 12. Juli 2019(amerikanisches Englisch).
  44. Tara Overfield:Announcing.NET Framework 4.8.1.9. August 2022,abgerufen am 11. August 2022(amerikanisches Englisch).
  45. Microsoft Reference Source on GitHub.Microsoft,abgerufen am 13. November 2014(englisch).
  46. The.NET blog (AKA: dotnet blog) discusses new features in the.NET Framework and important issues for.NET developers.
  47. .NET Core on GitHub.Microsoft,abgerufen am 13. November 2014(englisch).
  48. Alexander Neumann:.NET Core 1.0 und ASP.NET Core 1.0: Versionswechsel impliziert Neuanfang,in:heise onlinevom 20. Januar 2016, abgerufen am 21. Januar 2016.
  49. ASP.NET 5 Is Dead – Introducing ASP.NET Core 1.0 and.NET Core 1.0, abgerufen am 19. Januar 2017
  50. heise online:Build 2019: Microsoft führt Mono und.NET Core zusammen zu.NET 5.0.Abgerufen am 6. Mai 2019.