Neuigkeiten in .NET Core 2.0What's new in .NET Core 2.0

.NET Core 2.0 enthält Verbesserungen und neue Funktionen in folgenden Bereichen:.NET Core 2.0 includes enhancements and new features in the following areas:

ToolsTooling

„dotnet restore“ wird implizit ausgeführt.dotnet restore runs implicitly

In früheren Versionen von .NET Core mussten Sie den dotnet restore-Befehl sowohl ausführen, um Abhängigkeiten sofort nach der Erstellung eines neuen Projekts mit dem dotnet new-Befehl herunterzuladen, als auch immer dann, wenn Sie dem Projekt eine neue Abhängigkeit hinzugefügt hatten.In previous versions of .NET Core, you had to run the dotnet restore command to download dependencies immediately after you created a new project with the dotnet new command, as well as whenever you added a new dependency to your project.

Hinweis

Ab .NET Core 2.0 SDK müssen Sie dotnet restore nicht mehr ausführen, da der Befehl implizit von allen Befehlen, z.B. dotnet new, dotnet build und dotnet run, ausgeführt wird, die eine Wiederherstellung erfordern.Starting with .NET Core 2.0 SDK, you don't have to run dotnet restore because it's run implicitly by all commands that require a restore to occur, such as dotnet new, dotnet build and dotnet run. In bestimmten Fällen eignet sich der Befehl dennoch. Dies ist etwa bei Szenarios der Fall, in denen das Ausführen einer expliziten Wiederherstellung sinnvoll ist. Beispiele hierfür sind Continuous Integration-Builds in Azure DevOps Services oder Buildsystemen, die den Zeitpunkt für die Wiederherstellung explizit festlegen müssen.It's still a valid command in certain scenarios where doing an explicit restore makes sense, such as continuous integration builds in Azure DevOps Services or in build systems that need to explicitly control the time at which the restore occurs.

Sie können den automatischen Aufruf von dotnet restore auch deaktivieren, indem Sie die Befehlszeilenoption --no-restore den Befehlen new, run, build, publish, pack und test übergeben.You can also disable the automatic invocation of dotnet restore by passing the --no-restore switch to the new, run, build, publish, pack, and test commands.

Neuzuweisung zu .NET Core 2.0Retargeting to .NET Core 2.0

Wenn .NET Core 2.0 SDK installiert ist, können Projekte, die .NET Core 1.x zugewiesen sind, .NET Core 2.0 neu zugewiesen werden.If the .NET Core 2.0 SDK is installed, projects that target .NET Core 1.x can be retargeted to .NET Core 2.0.

Bearbeiten Sie Ihre Projektdatei für die Neuzuweisung zu .NET Core 2.0 durch Ändern des Werts des <TargetFramework>-Elements (oder <TargetFrameworks>-Elements, wenn Ihre Projektdatei mehrere Zuweisungen enthält) von 1.x in 2.0:To retarget to .NET Core 2.0, edit your project file by changing the value of the <TargetFramework> element (or the <TargetFrameworks> element if you have more than one target in your project file) from 1.x to 2.0:

<PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
 </PropertyGroup>

Auf die gleiche Weise können Sie auch .NET Standard-Bibliotheken zu .NET Standard 2.0 neu zuweisen:You can also retarget .NET Standard libraries to .NET Standard 2.0 the same way:

<PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
 </PropertyGroup>

Weitere Informationen zum Migrieren Ihres Projekts zu .NET Core 2.0 finden Sie unter Migrating from ASP.NET Core 1.x to ASP.NET Core 2.0 (Migrieren von ASP.NET Core 1.x zu ASP.NET Core 2.0).For more information about migrating your project to .NET Core 2.0, see Migrating from ASP.NET Core 1.x to ASP.NET Core 2.0.

SprachenunterstützungLanguage support

Außer C# und F# unterstützt .NET Core 2.0 auch Visual Basic.In addition to supporting C# and F#, .NET Core 2.0 also supports Visual Basic.

Visual BasicVisual Basic

Mit Version 2.0 unterstützt .NET Core jetzt Visual Basic 2017.With version 2.0, .NET Core now supports Visual Basic 2017. Sie können Visual Basic zum Erstellen folgender Projekttypen verwenden:You can use Visual Basic to create the following project types:

  • .NET Core-Konsolen-Apps.NET Core console apps
  • .NET Core-Klassenbibliotheken.NET Core class libraries
  • .NET Standard-Klassenbibliotheken.NET Standard class libraries
  • .NET Core-Komponententestprojekte.NET Core unit test projects
  • .NET Core-xUnit-Testprojekte.NET Core xUnit test projects

Führen Sie z.B. zum Erstellen einer „Hello World“-Anwendung in Visual Basic die folgenden Schritte in der Befehlszeile aus:For example, to create a Visual Basic "Hello World" application, do the following steps from the command line:

  1. Öffnen Sie ein Konsolenfenster, erstellen Sie ein Verzeichnis für Ihr Projekt, und machen Sie es zu Ihrem aktuellen Verzeichnis.Open a console window, create a directory for your project, and make it the current directory.

  2. Geben Sie den Befehl dotnet new console -lang vb ein.Enter the command dotnet new console -lang vb.

    Der Befehl erstellt eine Projektdatei mit einer .vbproj-Erweiterung zusammen mit einer Visual Basic-Quellcodedatei mit dem Namen Program.vb.The command creates a project file with a .vbproj file extension, along with a Visual Basic source code file named Program.vb. Diese Datei enthält den Quellcode, um die Zeichenfolge „Hello World!“This file contains the source code to write the string "Hello World!" im Konsolenfenster anzuzeigen.to the console window.

  3. Geben Sie den Befehl dotnet run ein.Enter the command dotnet run. Die .NET Core-CLI kompiliert die Anwendung automatisch und führt sie aus, um die Meldung „Hallo Welt!“ anzuzeigen.The .NET Core CLI automatically compiles and executes the application, which displays the message "Hello World!" im Konsolenfenster anzuzeigen.in the console window.

Unterstützung für C# 7.1Support for C# 7.1

.NET Core 2.0 unterstützt C# 7.1 und wird so durch eine Reihe neuer Funktionen einschließlich der folgenden ergänzt:.NET Core 2.0 supports C# 7.1, which adds a number of new features, including:

  • Die Main-Methode, der Einstiegspunkt der Anwendung, kann mit dem async-Schlüsselwort gekennzeichnet werden.The Main method, the application entry point, can be marked with the async keyword.
  • Abgeleitete Tupelnamen.Inferred tuple names.
  • Standardausdrücke.Default expressions.

PlattformverbesserungenPlatform improvements

.NET Core 2.0 umfasst eine Reihe von Funktionen, die das Installieren von .NET Core und die Verwendung auf unterstützten Betriebssystemen erleichtern..NET Core 2.0 includes a number of features that make it easier to install .NET Core and to use it on supported operating systems.

.NET Core für Linux ist eine einzelne Implementierung..NET Core for Linux is a single implementation

.NET Core 2.0 bietet eine einzelne Linux-Implementierung, die für mehrere Linux-Distributionen verwendet werden kann..NET Core 2.0 offers a single Linux implementation that works on multiple Linux distributions. .NET Core 1.x setzte das Herunterladen einer distributionsspezifischen Linux-Implementierung voraus..NET Core 1.x required that you download a distribution-specific Linux implementation.

Sie können auch Apps entwickeln, die für das Betriebssystem Linux im Allgemeinen vorgesehen sind.You can also develop apps that target Linux as a single operating system. .NET Core 1.x setzte voraus, dass Sie für jede Linux-Distribution separat entwickeln..NET Core 1.x required that you target each Linux distribution separately.

Unterstützung der kryptografischen Apple-BibliothekenSupport for the Apple cryptographic libraries

.NET Core 1.x auf macOS setzte die kryptografische Bibliothek des OpenSSL-Toolkits voraus..NET Core 1.x on macOS required the OpenSSL toolkit's cryptographic library. .NET Core 2.0 verwendet die kryptografischen Apple-Bibliotheken und benötigt OpenSSL nicht, sodass Sie auf dessen Installation zukünftig verzichten können..NET Core 2.0 uses the Apple cryptographic libraries and doesn't require OpenSSL, so you no longer need to install it.

API-Änderungen und BibliotheksunterstützungAPI changes and library support

Unterstützung für .NET Standard 2.0Support for .NET Standard 2.0

.NET Standard definiert einen Satz von APIs mit Versionsangabe, die in .NET Implementierungen verfügbar sein müssen, die dieser Version des Standards entsprechen.The .NET Standard defines a versioned set of APIs that must be available on .NET implementations that comply with that version of the standard. .NET Standard ist auf Bibliotheksentwickler ausgerichtet.The .NET Standard is targeted at library developers. Er soll die Funktionalität garantieren, die einer Bibliothek zur Verfügung steht, die für eine Version von .NET Standard in jeder .NET-Implementierung vorgesehen ist.It aims to guarantee the functionality that is available to a library that targets a version of the .NET Standard on each .NET implementation. .NET Core 1.x unterstützt die .NET Standard-Version 1.6; .NET Core 2.0 unterstützt die neueste Version, .NET Standard 2.0..NET Core 1.x supports the .NET Standard version 1.6; .NET Core 2.0 supports the latest version, .NET Standard 2.0. Weitere Informationen finden Sie unter .NET Standard.For more information, see .NET Standard.

.NET Standard 2.0 umfasst über 20.000 APIs mehr, als in .NET Standard 1.6 verfügbar waren..NET Standard 2.0 includes over 20,000 more APIs than were available in the .NET Standard 1.6. Diese Oberflächenerweiterung resultiert zu einem großen Teil aus dem Einbeziehen in .NET Framework und Xamarin üblicher APIs in .NET Standard.Much of this expanded surface area results from incorporating APIs that are common to the .NET Framework and Xamarin into .NET Standard.

.NET Standard 2.0-Klassenbibliotheken können auch auf .NET Framework-Klassenbibliotheken verweisen, vorausgesetzt, dass sie APIs aufrufen, die in .NET Standard 2.0 vorhanden sind..NET Standard 2.0 class libraries can also reference .NET Framework class libraries, provided that they call APIs that are present in the .NET Standard 2.0. Es ist keine Neukompilierung der .NET Framework-Bibliotheken erforderlich.No recompilation of the .NET Framework libraries is required.

Eine Liste der APIs, die .NET Standard seit der letzten Version, .NET Standard 1.6, hinzugefügt wurden, finden Sie unter .NET Standard 2.0 vs. 1.6 (.NET Standard 2.0 im Vergleich zu 1.6).For a list of the APIs that have been added to the .NET Standard since its last version, the .NET Standard 1.6, see .NET Standard 2.0 vs. 1.6.

Erweiterte OberflächeExpanded surface area

Die Gesamtanzahl der in .NET Core 2.0 verfügbaren APIs hat sich im Vergleich zu .NET Core 1.1 mehr als verdoppelt.The total number of APIs available on .NET Core 2.0 has more than doubled in comparison with .NET Core 1.1.

Und mit dem Windows Compatibility Pack ist die Portierung aus .NET Framework ebenfalls viel einfacher geworden.And with the Windows Compatibility Pack porting from .NET Framework has also become much simpler.

Unterstützung für .NET Framework-BibliothekenSupport for .NET Framework libraries

.NET Core-Code kann auf vorhandene .NET Framework-Bibliotheken einschließlich der vorhandenen NuGet-Pakete verweisen..NET Core code can reference existing .NET Framework libraries, including existing NuGet packages. Beachten Sie, dass die Bibliotheken APIs verwenden müssen, die im .NET Standard enthalten sind.Note that the libraries must use APIs that are found in .NET Standard.

Visual Studio-IntegrationVisual Studio integration

Visual Studio 2017 Version 15.3 und in einigen Fällen Visual Studio für Mac bieten eine Reihe erheblicher Verbesserungen für .NET Core-Entwickler.Visual Studio 2017 version 15.3 and in some cases Visual Studio for Mac offer a number of significant enhancements for .NET Core developers.

Neuzuweisung von .NET Core-Apps und .NET Standard-BibliothekenRetargeting .NET Core apps and .NET Standard libraries

Wenn das .NET Core 2.0 SDK installiert ist, können Sie Projekte von .NET Core 1.x zu .NET Core 2.0 und .NET Standard 1.x-Bibliotheken zu .NET-Standard 2.0 neu zuweisen.If the .NET Core 2.0 SDK is installed, you can retarget .NET Core 1.x projects to .NET Core 2.0 and .NET Standard 1.x libraries to .NET Standard 2.0.

Um Ihr Projekt in Visual Studio neu zuzuweisen, öffnen Sie die Registerkarte Anwendung des Eigenschaftendialogfelds des Projekts und ändern den Wert Zielframework in .NET Core 2.0 oder .NET Standard 2.0.To retarget your project in Visual Studio, you open the Application tab of the project's properties dialog and change the Target framework value to .NET Core 2.0 or .NET Standard 2.0. Sie können es auch ändern, indem Sie mit der rechten Maustaste auf das Projekt klicken und die Option *.csproj-Datei bearbeiten auswählen.You can also change it by right-clicking on the project and selecting the Edit *.csproj file option. Weitere Informationen finden Sie weiter oben in diesem Thema im Abschnitt Tools.For more information, see the Tooling section earlier in this topic.

Live Unit Testing-Unterstützung für .NET CoreLive Unit Testing support for .NET Core

Wenn Sie Ihren Code ändern, führt Live Unit Testing automatisch alle betroffenen Komponententests im Hintergrund aus und zeigt die Ergebnisse und die Codeabdeckung in der Visual Studio-Umgebung live an.Whenever you modify your code, Live Unit Testing automatically runs any affected unit tests in the background and displays the results and code coverage live in the Visual Studio environment. .NET Core 2.0 unterstützt jetzt Live Unit Testing..NET Core 2.0 now supports Live Unit Testing. Bisher war Live Unit Testing nur für .NET Framework-Anwendungen verfügbar.Previously, Live Unit Testing was available only for .NET Framework applications.

Weitere Informationen finden Sie unter Live Unit Testing mit Visual Studio 2017 und Live Unit Testing – häufig gestellte Fragen.For more information, see Live Unit Testing with Visual Studio 2017 and the Live Unit Testing FAQ.

Bessere Unterstützung für mehrere ZielframeworksBetter support for multiple target frameworks

Wenn Sie ein Projekt für mehrere Zielframeworks erstellen, können Sie nun die Zielplattform im Hauptebenenmenü auswählen.If you're building a project for multiple target frameworks, you can now select the target platform from the top-level menu. In der folgenden Abbildung ist ein Projekt namens „SCD1“ für 64-Bit-macOS X 10.11 (osx.10.11-x64) und 64-Bit-Windows 10/Windows Server 2016 (win10-x64) bestimmt.In the following figure, a project named SCD1 targets 64-bit macOS X 10.11 (osx.10.11-x64) and 64-bit Windows 10/Windows Server 2016 (win10-x64). Sie können das Zielframework vor der Projektschaltfläche auswählen, in diesem Fall zum Ausführen eines Debugbuilds.You can select the target framework before selecting the project button, in this case to run a debug build.

Screenshot mit der Zielframeworkauswahl beim Erstellen eines Projekts

Parallele Unterstützung für .NET Core-SDKsSide-by-side support for .NET Core SDKs

Sie können das .NET Core-SDK jetzt unabhängig von Visual Studio installieren.You can now install the .NET Core SDK independently of Visual Studio. So können mit einer einzelnen Version von Visual Studio Projekte für verschiedene .NET Core-Versionen erstellt werden.This makes it possible for a single version of Visual Studio to build projects that target different versions of .NET Core. Bisher waren Visual Studio und das .NET Core-SDK eng miteinander verbunden; eine bestimmte SDK-Version gehörte zu einer bestimmten Version von Visual Studio.Previously, Visual Studio and the .NET Core SDK were tightly coupled; a particular version of the SDK accompanied a particular version of Visual Studio.

DokumentationsverbesserungenDocumentation improvements

.NET-Anwendungsarchitektur.NET Application Architecture

.NET-Anwendungsarchitektur ermöglicht Ihnen Zugriff auf eine Sammlung von E-Books, die Hilfestellung, bewährte Methoden und Beispielanwendungen zur Verwendung von .NET beim Erstellen folgender Software bieten:.NET Application Architecture gives you access to a set of e-books that provide guidance, best practices, and sample applications when using .NET to build:

Siehe auchSee also