.NET-Architekturkomponenten.NET architectural components

Eine .NET-App wird für .NET-Implementierungen entwickelt und wird in mindestens einer ausgeführt.A .NET app is developed for and runs in one or more implementations of .NET. Implementierungen von .NET sind z. B. das .NET Framework, .NET 5 (und .NET Core) und Mono.Implementations of .NET include the .NET Framework, .NET 5 (and .NET Core), and Mono. .NET Standard ist die API-Spezifikation, die mehreren .NET-Implementierungen zugrunde liegt.There is an API specification common to multiple implementations of .NET that's called .NET Standard. Dieser Artikel bietet eine kurze Einführung in jedes dieser Konzepte.This article gives a brief introduction to each of these concepts.

.NET Standard.NET Standard

.NET Standard besteht aus einem Satz von APIs, die durch die Basisklassenbibliothek einer .NET-Implementierung implementiert werden..NET Standard is a set of APIs that are implemented by the Base Class Library of a .NET implementation. Formeller ausgedrückt ist es eine Spezifikation von .NET-APIs, die eine einheitliche Gruppe von Verträgen bilden, mit denen Sie Code kompilieren.More formally, it's a specification of .NET APIs that make up a uniform set of contracts that you compile your code against. Diese Verträge sind Teil mehrerer .NET-Implementierungen.These contracts are implemented in multiple .NET implementations.

.NET Standard ist ein Zielframework..NET Standard is a target framework. Wenn Ihr Code auf eine bestimmte .NET Standard-Version ausgerichtet ist, kann er auf jeder .NET-Implementierung ausgeführt werden, die diese .NET Standard-Version unterstützt.If your code targets a version of .NET Standard, it can run on any .NET implementation that supports that version of .NET Standard.

.NET Standard wurde erstellt, um die Portabilität über verschiedene .NET-Implementierungen hinweg zu ermöglichen. Jetzt bietet allerdings .NET 5 eine bessere Möglichkeit, Code über mehrere Plattformen und Workloads hinweg gemeinsam zu nutzen..NET Standard was created to enable portability across different .NET implementations, but now .NET 5 offers a better way to share code across multiple platforms and workloads. Weitere Informationen finden Sie unter .NET 5 und .NET Standard.For more information, see .NET 5 and .NET Standard.

.NET-Implementierungen.NET implementations

Jede Implementierung von .NET umfasst die folgenden Komponenten:Each implementation of .NET includes the following components:

  • Mindestens eine Runtime.One or more runtimes. z. B.: .NET Framework-CLR und .NET 5-CLRExamples: .NET Framework CLR, .NET 5 CLR.
  • eine Klassenbibliothek,A class library. z. B. .NET Framework-Basisklassenbibliothek, .NET 5-BasisklassenbibliothekExamples: .NET Framework Base Class Library, .NET 5 Base Class Library.
  • Optional mindestens ein Anwendungsframework.Optionally, one or more application frameworks. Beispiele: ASP.NET, Windows Forms und Windows Presentation Foundation (WPF) sind im .NET Framework und in .NET 5 enthalten.Examples: ASP.NET, Windows Forms, and Windows Presentation Foundation (WPF) are included in the .NET Framework and .NET 5.
  • Optional Entwicklungstools.Optionally, development tools. Einige Entwicklungstools werden zwischen mehreren Implementierungen freigegeben.Some development tools are shared among multiple implementations.

Es gibt vier .NET-Implementierungen, die von Microsoft unterstützt werden:There are four .NET implementations that Microsoft supports:

  • .NET 5 (und .NET Core) und höhere Versionen:.NET 5 (and .NET Core) and later versions
  • .NET Framework.NET Framework
  • MonoMono
  • UWPUWP

.NET 5 ist nun die primäre Implementierung, auf die aktuell bei der Entwicklung der Fokus gelegt wird..NET 5 is now the primary implementation, the one that is the focus of ongoing development. .NET 5 basiert auf einer einzelnen Codebasis, die mehrere Plattformen und viele Workloads unterstützt, z. B. Windows-Desktop-Apps und plattformübergreifende Konsolen-Apps, Cloud-Dienste und Websites..NET 5 is built on a single code base that supports multiple platforms and many workloads, such as Windows desktop apps and cross-platform console apps, cloud services, and websites.

.NET 5.NET 5

.NET 5 ist eine plattformübergreifende Implementierung von .NET und wurde entwickelt, um größere Server- und Cloudworkloads zu verarbeiten..NET 5 is a cross-platform implementation of .NET that is designed to handle server and cloud workloads at scale. Außerdem werden andere Workloads unterstützt, einschließlich Desktop-Apps.It also supports other workloads, including desktop apps. Diese Implementierung kann unter Windows, macOS und Linux ausgeführt werden.It runs on Windows, macOS, and Linux. Damit wird .NET Standard implementiert. Code, der auf .NET Standard ausgerichtet ist, kann also in .NET 5 ausgeführt werden.It implements .NET Standard, so code that targets .NET Standard can run on .NET 5. ASP.NET Core, Windows Forms und Windows Presentation Foundation (WPF) werden in .NET 5 ausgeführt.ASP.NET Core, Windows Forms, and Windows Presentation Foundation (WPF) all run on .NET 5.

Weitere Informationen finden Sie in den folgenden Ressourcen:For more information, see the following resources:

.NET Framework.NET Framework

.NET Framework ist die ursprüngliche .NET-Implementierung, die 2002 auf den Markt gebracht wurde..NET Framework is the original .NET implementation that has existed since 2002. .NET Framework 4.5 und höhere Versionen implementieren .NET Standard. Code, der auf .NET Standard abzielt, kann also in diesen .NET Framework-Versionen ausgeführt werden.Versions 4.5 and later implement .NET Standard, so code that targets .NET Standard can run on those versions of .NET Framework. .NET Framework enthält zusätzliche Windows-spezifische APIs, wie z.B. APIs für die Windows-Desktopentwicklung mit Windows Forms und WPF.It contains additional Windows-specific APIs, such as APIs for Windows desktop development with Windows Forms and WPF. .NET Framework wurde für das Erstellen von Windows-Desktopanwendungen optimiert..NET Framework is optimized for building Windows desktop applications.

Weitere Informationen finden Sie im Leitfaden zum .NET Framework.For more information, see the .NET Framework guide.

MonoMono

Bei Mono handelt es sich um eine .NET-Implementierung, die in erster Linie verwendet wird, wenn eine kleine Runtime erforderlich ist.Mono is a .NET implementation that is mainly used when a small runtime is required. Mono ist die Runtime für Xamarin-Anwendungen unter Android, macOS, iOS, tvOS und watchOS und ist hauptsächlich auf einen geringen Ressourcenbedarf ausgelegt.It is the runtime that powers Xamarin applications on Android, macOS, iOS, tvOS, and watchOS and is focused primarily on a small footprint. Mono treibt Spiele an, die mit der Unity-Engine erstellt wurden.Mono also powers games built using the Unity engine.

Außerdem unterstützt Mono alle derzeit veröffentlichten Versionen von .NET Standard.It supports all of the currently published .NET Standard versions.

In der Vergangenheit hat Mono die größere API des .NET Framework implementiert und einige der beliebtesten Funktionen unter Unix emuliert.Historically, Mono implemented the larger API of the .NET Framework and emulated some of the most popular capabilities on Unix. Manchmal wird es zum Ausführen von .NET-Anwendungen verwendet, die auf diesen Unix-Funktionen basieren.It is sometimes used to run .NET applications that rely on those capabilities on Unix.

Mono wird in der Regel mit einem Just-In-Time-Compiler verwendet. Es enthält aber auch einen vollständig statischen Compiler (Ahead-of-time-Kompilierung), der auf Plattformen wie iOS verwendet wird.Mono is typically used with a just-in-time compiler, but it also features a full static compiler (ahead-of-time compilation) that is used on platforms like iOS.

Weitere Informationen finden Sie in der Mono-Dokumentation:For more information, see the Mono documentation.

Universelle Windows-Plattform (UWP)Universal Windows Platform (UWP)

Die UWP ist eine Implementierung von .NET, mit der moderne Windows-Anwendungen für Touchscreengeräte und Software für das Internet der Dinge (Internet of Things, IoT) erstellt werden.UWP is an implementation of .NET that is used for building modern, touch-enabled Windows applications and software for the Internet of Things (IoT). Sie wurde als einheitliche Plattform entwickelt, um das Programmieren für verschiedene Gerätetypen, von PCs, Tablets und Smartphones bis hin zur Xbox, zu ermöglichen.It's designed to unify the different types of devices that you may want to target, including PCs, tablets, phones, and even the Xbox. Die UWP bietet viele Dienste, z.B. einen zentralen App Store, eine Ausführungsumgebung (AppContainer) und mehrere Windows-APIs, die anstelle von Win32 (WinRT) verwendet werden.UWP provides many services, such as a centralized app store, an execution environment (AppContainer), and a set of Windows APIs to use instead of Win32 (WinRT). Apps können in C++, C#, Visual Basic und JavaScript geschrieben werden.Apps can be written in C++, C#, Visual Basic, and JavaScript.

Weitere Informationen finden Sie in der Einführung in die Universelle Windows-Plattform.For more information, see Introduction to the Universal Windows Platform.

.NET-Runtimes.NET runtimes

Eine Laufzeit ist die Ausführungsumgebung eines verwalteten Programms.A runtime is the execution environment for a managed program. Das Betriebssystem ist Teil der Laufzeitumgebung, gehört jedoch nicht zur .NET-Runtime.The OS is part of the runtime environment but is not part of the .NET runtime. Dies sind einige Beispiele für .NET-Runtimes:Here are some examples of .NET runtimes:

  • Die Common Language Runtime (CLR) für das .NET FrameworkCommon Language Runtime (CLR) for .NET Framework
  • Die Common Language Runtime (CLR) für .NET 5Common Language Runtime (CLR) for .NET 5
  • .NET Native für die universelle Windows-Plattform.NET Native for Universal Windows Platform
  • Die Mono-Runtime für Xamarin.iOS, Xamarin.Android, Xamarin.Mac und das Mono-DesktopframeworkThe Mono runtime for Xamarin.iOS, Xamarin.Android, Xamarin.Mac, and the Mono desktop framework

.NET-Tools und die allgemeine Infrastruktur.NET tooling and common infrastructure

Es stehen verschiedene Tools und Infrastrukturkomponenten zur Verfügung, die in allen Implementierungen von .NET funktionieren,You have access to an extensive set of tools and infrastructure components that work with every implementation of .NET. Zu diesen Tools und Komponenten zählen:These tools and components include:

  • Die .NET-Sprachen und deren CompilerThe .NET languages and their compilers
  • Das .NET-Projektsystem, das auf CSPROJ-, VBPROJ- und FSPROJ-Dateien basiert)The .NET project system (based on .csproj, .vbproj, and .fsproj files)
  • MSBuild, die Build-Engine, mit dem Projekte erstellt werdenMSBuild, the build engine used to build projects
  • NuGet, der Paket-Manager von Microsoft für .NETNuGet, Microsoft's package manager for .NET
  • Open-Source-Buildorchestrierungtools, z.B. CAKE und FAKEOpen-source build orchestration tools, such as CAKE and FAKE

Weitere Informationen finden Sie unter Tools und Produktivität.For more information, see Tools and productivity.

Anwendbare StandardsApplicable standards

Die Spezifikationen für die Sprache C# und die CLI (Common Language Infrastructure) werden über Ecma International® standardisiert.The C# Language and the Common Language Infrastructure (CLI) specifications are standardized through Ecma International®. Die erste Ausgabe dieser Standards wurde von Ecma im Dezember 2001 veröffentlicht.The first editions of these standards were published by Ecma in December 2001.

Nachfolgende Überarbeitungen der Standards wurden von den Arbeitsgruppen TC49-TG2 (C#) und TC49-TG3 (CLI) innerhalb des Programming Languages Technical Committee (TC49) entwickelt und von der Ecma General Assembly und anschließend von ISO/IEC JTC 1 im Rahmen des ISO Fast-Track-Prozesses übernommen.Subsequent revisions to the standards have been developed by the TC49-TG2 (C#) and TC49-TG3 (CLI) task groups within the Programming Languages Technical Committee (TC49), and adopted by the Ecma General Assembly and subsequently by ISO/IEC JTC 1 via the ISO Fast-Track process.

Aktuelle StandardsLatest standards

Die folgenden offiziellen Ecma-Dokumente sind für C# und die CLI (TR-84) verfügbar:The following official Ecma documents are available for C# and the CLI (TR-84):

  • The C# Language Standard (version 5.0) (Sprachstandard für C# [Version 5.0]): ECMA-334.pdfThe C# Language Standard (version 5.0): ECMA-334.pdf
  • The Common Language Infrastructure (Die Common Language Infrastructure): ECMA-335.pdf.The Common Language Infrastructure: ECMA-335.pdf.
  • Information Derived from the Partition IV XML File (Aus Partition IV der XML-Datei abgeleitete Informationen): Format: ECMA-084.pdf.Information Derived from the Partition IV XML File: ECMA-084.pdf format.

Die offiziellen ISO/IEC-Dokumente sind auf der ISO/IEC-Seite Publicly Available Standards (Öffentlich verfügbare Standards) erhältlich.The official ISO/IEC documents are available from the ISO/IEC Publicly Available Standards page. Diese Links stammen direkt von dieser Seite:These links are direct from that page:

  • Information technology - Programming languages - C# (Informationstechnologie – Programmiersprachen – C#): ISO/IEC 23270:2018Information technology - Programming languages - C#: ISO/IEC 23270:2018
  • Information technology – Common Language Infrastructure (CLI) Partitions I to VI (Informationstechnologie – Common Language Infrastructure (CLI), Partitionen I bis VI) ISO/IEC 23271:2012Information technology — Common Language Infrastructure (CLI) Partitions I to VI: ISO/IEC 23271:2012
  • Information technology – Common Language Infrastructure (CLI) – Technical Report on Information Derived from Partition IV XML File (Informationstechnologie – Common Language Infrastructure (CLI) – Technischer Bericht zu Informationen, die aus Partition IV der XML-Datei abgeleitet sind): ISO/IEC TR 23272:2011Information technology — Common Language Infrastructure (CLI) — Technical Report on Information Derived from Partition IV XML File: ISO/IEC TR 23272:2011

Siehe auchSee also