Freigeben über


Einführung in .NET

.NET ist eine kostenlose plattformübergreifende Open-Source-Entwicklerplattform zum Erstellen vieler Arten von Anwendungen. Es kann Programme ausführen, die in mehreren Sprachen geschrieben wurden, wobei C# am beliebtesten ist. Sie basiert auf einer leistungsfähigen Laufzeit, die in der Produktion von vielen apps mit hoher Skalierung verwendet wird.

Informationen zum Herunterladen von .NET und zum Schreiben Ihrer ersten App finden Sie unter "Erste Schritte".

Die .NET-Plattform wurde entwickelt, um Produktivität, Leistung, Sicherheit und Zuverlässigkeit zu gewährleisten. Sie stellt die automatische Speicherverwaltung über einen Garbage Collector (GC) bereit. Sie ist aufgrund der Verwendung eines GC und strengen Sprachcompilers typsicher und speichersicher. Sie bietet Parallelität über async/await und Task Primitives. Es enthält eine große Anzahl von Bibliotheken, die über eine breite Funktionalität verfügen und für die Leistung auf mehreren Betriebssystemen und Chiparchitekturen optimiert wurden.

.NET verfügt über die folgenden Entwurfspunkte:

  • Die Produktivität ist vollständig integriert mit Laufzeit, Bibliotheken, Sprache und Tools, die alle zum Entwicklererlebnis beitragen.
  • Sicherer Code ist das primäre Computemodell, während unsicherer Code zusätzliche manuelle Optimierungen ermöglicht.
  • Statischer und dynamischer Code werden beide unterstützt und ermöglichen eine breite Palette unterschiedlicher Szenarien.
  • Interoperabilität mit nativem Code und Hardwareinterna sind kostengünstig und hochgradig zuverlässig (roher API- und Anweisungszugriff).
  • Code ist plattformübergreifend portierbar (Betriebssystem- und Chiparchitektur), während die Plattformadressierung Spezialisierung und Optimierung ermöglicht.
  • Die Anpassung über Programmierdomänen hinweg (Cloud, Client, Gaming) ist mit spezialisierten Implementierungen des allgemeinen Programmiermodells aktiviert.
  • Branchenstandards wie OpenTelemetry und gRPC werden gegenüber maßgeschneiderten Lösungen bevorzugt.

.NET wird von Microsoft und einer globalen Community gemeinsam verwaltet. Regelmäßige Updates stellen sicher, dass Benutzer sichere und zuverlässige Anwendungen in Produktionsumgebungen bereitstellen.

Komponenten

.NET enthält die folgenden Komponenten:

  • Laufzeit: führt Anwendungscode aus.
  • Bibliotheken – stellt Hilfsfunktionen wie die JSON-Analyse bereit.
  • Compiler – kompiliert C#-Quellcode (und andere Sprachen) in ausführbaren Code für die Laufzeitumgebung.
  • SDK und andere Tools – ermöglichen das Erstellen und Überwachen von Apps mit modernen Workflows.
  • App-Stapel , z. B. ASP.NET Core und Windows Forms, die das Schreiben von Apps ermöglichen.

Die Laufzeit, Bibliotheken und Sprachen sind die Säulen des .NET-Stapels. Komponenten höherer Ebene wie .NET-Tools und App-Stapel wie ASP.NET Core bauen auf diesen Säulen auf. C# ist die primäre Programmiersprache für .NET, und ein Großteil von .NET wird in C# geschrieben.

C# ist objektorientiert und die Laufzeit unterstützt die Objektausrichtung. C# erfordert Garbage Collection und die Laufzeit stellt einen Garbage Collector für die Ablaufverfolgung bereit. Die Bibliotheken (und auch die App-Stapel) gestalten diese Funktionen in Konzepte und Objektmodelle, mit denen Entwickler Algorithmen produktiv in intuitive Workflows schreiben können.

Die Kernbibliotheken stellen Tausende von Typen bereit, von denen viele in die C#-Sprache integriert sind und sie unterstützen. Mit der C# foreach -Anweisung können Sie beispielsweise beliebige Auflistungen aufzählen. Musterbasierte Optimierungen ermöglichen eine einfache und effiziente Verarbeitung von Sammlungen wie List<T>. Sie können die Ressourcenverwaltung der Garbage Collection überlassen, aber eine sofortige Bereinigung ist über IDisposable und die direkte Sprachunterstützung in der using-Anweisung möglich.

Die Unterstützung für das gleichzeitige Ausführen mehrerer Dinge ist für praktisch alle Workloads von grundlegender Bedeutung. Dies könnte Clientanwendungen sein, die Hintergrundverarbeitung durchführen, während die Benutzeroberfläche reaktionsfähig bleibt, Dienste, die viele Tausend gleichzeitige Anforderungen verarbeiten, Geräte, die auf eine Vielzahl gleichzeitiger Reize reagieren, oder hochbetriebene Maschinen parallelisieren die Verarbeitung rechenintensiver Vorgänge. Die asynchrone Programmierungsunterstützung ist ein erstklassiges Feature der C#-Programmiersprache, das die async Funktionen und await Schlüsselwörter bereitstellt, die das Schreiben und Verfassen asynchroner Vorgänge vereinfachen und gleichzeitig die vollständigen Vorteile aller Steuerungsflusskonstrukte genießen, die die Sprache zu bieten hat.

Das Typsystem bietet eine beträchtliche Bandbreite, die Sicherheit, Beschreibbarkeit, Dynamik und native Interoperabilität gleichermaßen berücksichtigt. In erster Linie ermöglicht das Typsystem ein objektorientiertes Programmiermodell. Es umfasst Typen, (einzelne Basisklassenvererbung), Schnittstellen (einschließlich Standardmethodenimplementierungen) und den virtuellen Methodenaufruf, um ein sinnvolles Verhalten für alle Typenebenen bereitzustellen, die die Objektorientierung zulässt. Generische Typen sind allgegenwärtig und ermöglichen es Ihnen, Klassen auf einen oder mehrere Typen zu spezialisieren.

Die .NET-Runtime stellt die automatische Speicherverwaltung über einen Garbage Collector bereit. Für jede Sprache ist das Speicherverwaltungsmodell wahrscheinlich das wichtigste Merkmal. Dies gilt für .NET-Sprachen. .NET verfügt über einen selbstoptimierenden GC mit Ablaufverfolgung. Es zielt im Allgemeinen auf eine benutzerfreundliche Verwendung ab und bietet gleichzeitig Konfigurationsoptionen für extremere Workloads. Der aktuelle GC ist das Ergebnis vieler Jahre Investitionen und Erkenntnisse aus einer Vielzahl von Arbeitslasten.

Wertetypen und dem Stapel zugewiesene Speicherblöcke bieten im Gegensatz zu den GC-verwalteten Typen von .NET eine direktere, niedrigere Kontrolle über Daten und native Plattform-Interoperabilität. Die meisten Grundtypen in .NET, z. B. ganzzahlige Typen, sind Werttypen, und Benutzer können ihre eigenen Typen mit ähnlicher Semantik definieren. Werttypen werden vollständig durch .NET's Generikassystem unterstützt, was bedeutet, dass generische Typen wie List<T> flache Speicherdarstellungen von Werttypsammlungen ohne zusätzlichen Aufwand bieten können.

Reflection ist ein Paradigma von "Programme als Daten", das es einem Teil eines Programms ermöglicht, einen anderen Teil dynamisch abzufragen und aufzurufen, was Assemblys, Typen und Mitglieder betrifft. Es ist besonders nützlich für spät gebundene Programmiermodelle und -tools.

Ausnahmen sind das primäre Fehlerbehandlungsmodell in .NET. Ausnahmen haben den Vorteil, dass Fehlerinformationen nicht in Methodensignaturen dargestellt oder von jeder Methode behandelt werden müssen. Die ordnungsgemäße Ausnahmebehandlung ist für die Anwendungssicherheit unerlässlich. Um zu verhindern, dass Ihre App abstürzt, können Sie absichtlich erwartete Ausnahmen in Ihrem Code behandeln. Eine abgestürzte App ist zuverlässiger und diagnosefähiger als eine App mit nicht definiertem Verhalten.

Anwendungsstapel, wie ASP.NET Core und Windows Forms, bauen auf und nutzen Bibliotheken, Sprachen und Laufzeiten auf niedrigerer Ebene. Die App-Stapel definieren die Art und Weise, wie Apps erstellt werden, und deren Ausführungslebenszyklus.

Das SDK und andere Tools ermöglichen eine moderne Entwicklerumgebung, sowohl auf einem Entwicklerdesktop als auch für die kontinuierliche Integration (CI). Die moderne Entwicklerumgebung umfasst die Möglichkeit, Code zu erstellen, zu analysieren und zu testen. .NET-Projekte können häufig durch einen einzigen dotnet build Befehl erstellt werden, der das Wiederherstellen von NuGet-Paketen und das Erstellen von Abhängigkeiten koordiniert.

NuGet ist der Paket-Manager für .NET. Es enthält Hunderte von Tausenden von Paketen, die Funktionen für viele Szenarien implementieren. Ein Großteil der Apps basiert auf NuGet-Paketen für einige Funktionen. Der NuGet-Katalog wird von Microsoft verwaltet.

Frei und Open-Source

.NET ist kostenlos, Open Source und ist ein .NET Foundation-Projekt . .NET wird von Microsoft und der Community auf GitHub in mehreren Repositorys verwaltet.

.NET-Quell- und Binärdateien werden mit der MIT-Lizenz lizenziert. Zusätzliche Lizenzen gelten für Windows.

Unterstützung

.NET wird von mehreren Organisationen unterstützt , die sicherstellen, dass .NET auf mehreren Betriebssystemen ausgeführt werden kann und auf dem neuesten Stand gehalten wird. Es kann auf Arm64-, x64- und x86-Architekturen verwendet werden.

Neue Versionen von .NET werden jährlich im November gemäß unseren Veröffentlichungs- und Unterstützungsrichtlinien veröffentlicht. Es wird monatlich am Patch-Dienstag (zweiter Dienstag) aktualisiert, in der Regel um 10 Uhr Pazifische Zeit.

.NET-Ökosystem

Es gibt mehrere Varianten von .NET, die jeweils einen anderen App-Typ unterstützen. Der Grund für mehrere Varianten ist teil historisch, teil technisch.

.NET-Implementierungen:

  • .NET Framework - Das ursprüngliche .NET. Sie bietet Zugriff auf die breiten Funktionen von Windows und Windows Server. Es wird in der Wartung aktiv unterstützt.
  • Mono - Die ursprüngliche Community und Open Source .NET. Eine plattformübergreifende Implementierung von .NET Framework. Wird für Android, iOS und WebAssembly aktiv unterstützt.
  • .NET (Core) – Modern .NET. Eine plattformübergreifende und Open Source-Implementierung von .NET, die für das Cloud-Zeitalter neu gestaltet wurde und dabei erheblich mit dem .NET Framework kompatibel bleibt. Wird für Linux, macOS und Windows aktiv unterstützt.

Nächste Schritte