Frameworkbibliotheken

.NET verfügt über einen umfangreichen Standardsatz an Klassenbibliotheken, die entweder als Basisklassenbibliotheken (Kernsatz) oder Frameworkklassenbibliotheken (vollständiger Satz) bezeichnet werden. Diese Bibliotheken bieten Implementierungen für viele allgemeine und App-spezifische Typen, Algorithmen und Hilfsprogrammfunktionen. Sowohl kommerzielle als auch communitybasierte Bibliotheken bauen auf den Frameworkklassenbibliotheken auf und bieten einfache, sofort einsatzbereite Bibliotheken für eine Vielzahl von Computingaufgaben.

Eine Teilmenge dieser Bibliotheken wird mit jeder .NET-Implementierung bereitgestellt. BCL-APIs (Base Class Library, Basisklassenbibliothek) werden in jeder .NET-Implementierung vorausgesetzt, weil sie von Entwicklern gewünscht und von beliebten Bibliotheken für die Ausführung benötigt werden. Über die BCL hinausgehende App-spezifische Bibliotheken – wie z.B. ASP.NET – sind nicht in allen .NET-Implementierungen verfügbar.

Basisklassenbibliotheken

Basisklassenbibliotheken stellen die meisten grundlegenden Typen und Hilfsprogrammfunktionen bereit und bilden die Grundlage für alle anderen .NET-Klassenbibliotheken. Sie sind darauf ausgerichtet, sehr allgemeine Implementierungen anzubieten, ohne einer bestimmten Arbeitsauslastung den Vorzug zu geben. Leistung ist immer ein wichtiger Gesichtspunkt, da je nach App unterschiedliche Richtlinien ein höheres Gewicht haben – z.B. niedrige Latenz gegenüber hohem Durchsatz oder geringer Arbeitsspeicherverbrauch gegenüber geringer CPU-Auslastung. Diese Bibliotheken sind generell auf hohe Leistung ausgelegt und versuchen, angesichts all der verschiedenen Leistungsanforderungen einen Mittelweg zu finden. Für die meisten Apps funktioniert diese Herangehensweise ziemlich gut.

Primitive Typen

.NET umfasst eine Reihe primitiver Typen, die (in unterschiedlichem Maß) in allen Programmen verwendet werden. Diese Typen enthalten Daten, beispielsweise Zahlen, Zeichenfolgen, Bytes und beliebige Objekte. Die Sprache C# enthält Schlüsselwörter für diese Typen. Unten finden Sie einen Beispielsatz dieser Typen, zusammen mit den entsprechenden C#-Schlüsselwörtern.

  • System.Object (object): Die ultimative Basisklasse im CLR-Typsystem. Sie bildet den Stamm der Typhierarchie.
  • System.Int16 (short): Ein ganzzahliger 16-Bit-Typ mit Vorzeichen. Es gibt auch einen UInt16-Typ ohne Vorzeichen.
  • System.Int32 (int): Ein ganzzahliger 32-Bit-Typ mit Vorzeichen. Es gibt auch einen UInt32-Typ ohne Vorzeichen.
  • System.Single (float): Ein 32-Bit-Gleitkommatyp.
  • System.Decimal (decimal): Ein 128-Bit-Dezimaltyp.
  • System.Byte (byte): Ein 8-Bit-Ganzzahltyp ohne Vorzeichen, der ein Byte Arbeitsspeicher darstellt.
  • System.Boolean (bool): Ein boolescher Typ, der „true“ oder „false“ darstellt.
  • System.Char (char): Ein numerischer 16-Bit-Typ, der ein Unicode-Zeichen darstellt.
  • System.String (string): Stellt eine Reihe von Zeichen dar. Unterscheidet sich von char[], ermöglicht aber die Indizierung für jedes einzelne char in der string.

Datenstrukturen

.NET umfasst eine Reihe von Datenstrukturen, die die Arbeitsgrundlage für nahezu alle .NET-Apps darstellen. Die meisten sind Auflistungen, es gibt jedoch auch andere Typen.

  • Array: Stellt ein Array aus stark typisierten Objekten dar, auf die über einen Index zugegriffen werden kann. Verfügt konstruktionsbedingt über eine festgelegte Größe.
  • List: Stellt eine stark typisierte Liste von Objekten dar, auf die über einen Index zugegriffen werden kann. Die Größe wird nach Bedarf automatisch angepasst.
  • Dictionary: Stellt eine Auflistung aus Werten dar, die durch einen Schlüssel indiziert werden. Auf die Werte kann über einen Schlüssel zugegriffen werden. Die Größe wird nach Bedarf automatisch angepasst.
  • Uri: Stellt eine Objektdarstellung eines URIs (Uniform Resource Identifier) sowie einfachen Zugriff auf die Teile des URIs bereit.
  • DateTime: Stellt einen Zeitpunkt dar, der üblicherweise als Datum und Uhrzeit dargestellt wird.

Hilfsprogramm-APIs

.NET umfasst eine Reihe von Hilfsprogramm-APIs, die Funktionen für viele wichtige Aufgaben bereitstellen.

  • HttpClient: Eine API zum Senden von HTTP-Anforderungen und Empfangen von HTTP-Antworten aus einer Ressource, die durch einen URI identifiziert wird.
  • XDocument: Eine API zum Laden und Abfragen von XML-Dokumenten mit LINQ.
  • StreamReader: Eine API zum Lesen von Dateien (StreamWriter). Kann zum Schreiben von Dateien verwendet werden.

App-Modell-APIs

Es gibt viele App-Modelle von unterschiedlichen Herstellern, die mit .NET verwendet werden können.

  • ASP.NET: Stellt ein Webframework zum Erstellen von Websites und -diensten bereit. Unterstützt unter Windows, Linux und macOS (je nach ASP.NET-Version).