Wir freuen uns, die Veröffentlichung von .NET Core 3.1 bekannt zu geben. Es ist wirklich nur eine kleine Reihe von Korrekturen und Verbesserungen gegenüber
.NET Core 3.0 , die wir vor etwas mehr als zwei Monaten veröffentlicht haben. Das wichtigste Feature ist, dass .NET Core 3.1 eine
langfristig unterstützte Version (LTS) ist und drei Jahre lang unterstützt wird. Wie in der Vergangenheit wollten wir uns Zeit nehmen, bevor wir die nächste LTS-Version veröffentlichen. Die zusätzlichen zwei Monate (nach .NET Core 3.0) ermöglichten es uns, die richtigen Verbesserungen gegenüber einer bereits sehr stabilen Basis auszuwählen und zu implementieren. .NET Core 3.1 kann jetzt überall dort eingesetzt werden, wo es Ihrer Fantasie oder Ihren geschäftlichen Anforderungen entspricht.
Sie können
.NET Core 3.1 für Windows, macOS und Linux
herunterladen :
ASP.NET Core und
EF Core werden heute ebenfalls veröffentlicht.
Visual Studio 2019 16.4 wurde heute ebenfalls veröffentlicht und enthält .NET Core 3.1. Für die Verwendung von .NET Core 3.1 mit Visual Studio ist ein Update erforderlich. Für Benutzer von Visual Studio 2019 wird empfohlen, Visual Studio einfach auf 16.4 zu aktualisieren und .NET Core 3.1 nicht separat herunterzuladen.
Visual Studio für Mac unterstützt und enthält .NET Core 3.1 im Vorschau-Kanal von Visual Studio für Mac 8.4. Sie müssen sich für den Vorschau-Kanal anmelden, um .NET Core 3.1 verwenden zu können.
Versionshinweise:

Die Änderungen in .NET Core 3.1
betrafen hauptsächlich
Blazor und
Windows Desktop , die beiden neuen und umfangreichen Ergänzungen in .NET Core 3.0. Dies schließt die Unterstützung von C ++ / CLI ein, die regelmäßig von Entwicklern für Windows angefordert wurde.
Bevor wir uns mit den Neuerungen in .NET Core 3.1 befassen, werfen wir einen kurzen Blick auf die wichtigsten Verbesserungen in
.NET Core 3.0 , bei denen es sich hauptsächlich um wichtige
Aspekte handelt , die für .NET Core 3.1 zu berücksichtigen sind.
Zusammenfassung der Verbesserungen in .NET Core 3.0
Die folgenden wichtigen Verbesserungen wurden in .NET Core 3.0 bereitgestellt. Wir haben bereits von
Entwicklern großer Websites gehört, dass es für sie super gut funktioniert.
- .NET Core 3.0 ist bereits kampferprobt, da es monatelang bei dot.net und auf Bing.com gehostet wird . Viele andere Microsoft-Teams werden in Kürze umfangreiche Workloads auf .NET Core 3.1 in der Produktion bereitstellen.
- Die Leistung wird in vielen Komponenten erheblich verbessert und unter Leistungsverbesserungen in .NET Core 3.0 und Hardware-Eigenheiten in .NET Core ausführlich beschrieben.
- C # 8 fügt asynchrone Streams, Bereiche / Indizes, weitere Muster und nullfähige Referenztypen hinzu . Mit Nullable können Sie die Fehler im Code, die zu
NullReferenceException
führen, NullReferenceException
. Die unterste Ebene der Framework-Bibliotheken wurde mit Anmerkungen versehen, sodass Sie wissen, wann Sie mit null
rechnen müssen. - F # 4.7 konzentriert sich darauf, einige Dinge mit impliziten
yield
und einigen Syntaxrelaxationen einfacher zu machen. Es enthält auch Unterstützung für LangVersion
und wird mit dem nameof
und dem Öffnen von statischen Klassen in der Vorschau nameof
. Die F # Core Library zielt jetzt auch auf .NET Standard 2.0 ab. Weitere Informationen finden Sie unter Ankündigung von F # 4.7 . - .NET Standard 2.1 erweitert den Satz an Typen, die Sie in Code verwenden können, der sowohl mit .NET Core als auch mit Xamarin verwendet werden kann. .NET Standard 2.1 enthält Typen seit .NET Core 2.1.
- Windows Desktop-Apps werden jetzt mit .NET Core sowohl für Windows Forms als auch für WPF (und Open Source ) unterstützt. Der WPF-Designer ist Teil von Visual Studio 2019. Der Windows Forms-Designer ist in der Vorschau und als Download verfügbar.
- .NET Core-Apps haben jetzt standardmäßig ausführbare Dateien. In früheren Versionen mussten Apps wie
dotnet myapp.dll
über den Befehl dotnet myapp.dll
. Apps können nun mit einer app-spezifischen ausführbaren Datei wie ./myapp
oder ./myapp
je nach Betriebssystem gestartet werden. - Es wurden leistungsstarke JSON-APIs für Lese- / Schreib-, Objektmodell- und Serialisierungsszenarien hinzugefügt. Diese APIs wurden von Grund auf auf
SpanT
und verwenden UTF8 im SpanT
anstelle von UTF16 (wie ein string
). Diese APIs minimieren die Zuweisungen, was zu einer schnelleren Leistung führt und den Garbage Collector erheblich entlastet. Siehe Testen Sie die neuen System.Text.Json-APIs . - Der Garbage Collector benötigt standardmäßig weniger Speicher, oft viel weniger. Diese Verbesserung ist sehr vorteilhaft für Szenarien, in denen viele Anwendungen auf demselben Server gehostet werden. Der Garbage Collector wurde ebenfalls aktualisiert, um eine größere Anzahl von Kernen auf Computern mit mehr als 64 Kernen besser nutzen zu können. Siehe Verbessern der CPU-Konfiguration für den GC auf Computern mit> 64 CPUs .
- .NET Core wurde für Docker gehärtet, damit .NET-Anwendungen in Containern vorhersehbar und effizient arbeiten können. Der Garbage Collector und der Thread-Pool wurden so aktualisiert, dass sie viel besser funktionieren, wenn ein Container für begrenzten Arbeitsspeicher oder begrenzte CPU konfiguriert wurde. .NET Core Docker-Images sind kleiner, insbesondere das SDK-Image. Siehe: Ausführen mit Server GC in einem Szenario mit kleinen Containern Teil 0 , Ausführen mit Server GC in einem Szenario mit kleinen Containern Teil 1 - Harte Grenze für den GC-Heap und gemeinsame Verwendung von .NET und Docker - DockerCon 2019-Update .
- Raspberry Pi und ARM-Chips werden jetzt unterstützt, um die IoT-Entwicklung zu ermöglichen, auch mit dem Remote-Visual Studio-Debugger. Mithilfe der neuen GPIO-APIs können Sie Apps bereitstellen, die Sensoren abhören und Nachrichten oder Bilder auf einem Display drucken. ASP.NET kann verwendet werden, um Daten als API oder als Site bereitzustellen, mit der ein IoT-Gerät konfiguriert werden kann.
Plattformunterstützung
.NET Core 3.1 wird unter folgenden Betriebssystemen unterstützt:
- Alpine: 3.10+
- Debian: 9+
- Ubuntu: 16.04+
- Fedora: 29+
- RHEL: 6+
- openSUSE: 15+
- SUSE Enterprise Linux (SLES): 12 SP2 +
- macOS: 10.13+
- Windows Client: 7, 8.1, 10 (1607+)
- Windows Server: 2012 R2 +
Hinweis: Windows Forms und WPF-Apps sind nur funktionsfähig und werden unter Windows unterstützt.
Chip-Unterstützung folgt:
- x64 unter Windows, macOS und Linux
- x86 unter Windows
- ARM32 unter Windows und Linux
- ARM64 unter Linux (Kernel 4.14+)
Hinweis: Stellen Sie sicher, dass .NET Core 3.1 ARM64-Bereitstellungen den Linux-Kernel 4.14 oder höher verwenden. Beispielsweise erfüllt Ubuntu 18.04 diese Anforderung, 16.04 jedoch nicht.
Entfernen von Windows Forms-Steuerelementen
Die folgenden Windows Forms-Steuerelemente wurden aus .NET Core 3.1 entfernt:
- DataGrid
- Symbolleiste
- Kontextmenü
- Menü
- Hauptmenü
- MenuItem
Diese Steuerelemente wurden bereits 2005 in .NET Framework 2.0 durch leistungsstärkere Steuerelemente ersetzt. Sie sind seit vielen Jahren standardmäßig nicht mehr in der Visual Studio Designer Toolbox verfügbar. Aus diesem Grund haben wir beschlossen, diese Steuerelemente zu entfernen und uns nur auf die neuen zu konzentrieren.
Die folgenden Ersetzungen werden empfohlen:
Ja, das ist eine unglückliche Veränderung. Sie werden Build-Unterbrechungen sehen, wenn Sie die Steuerelemente verwenden, die wir in Ihren Anwendungen entfernt haben. Wenn Sie .NET Core 3.0-Anwendungen in den neuesten Versionen des .NET Core Windows Forms-Designers öffnen, werden außerdem Fehler angezeigt, wenn Sie diese Steuerelemente verwenden.
Wir empfehlen Ihnen, Ihre Anwendungen auf .NET Core 3.1 zu aktualisieren und zu den alternativen Steuerelementen zu wechseln. Das Ersetzen der Steuerelemente ist ein unkomplizierter Vorgang, im Wesentlichen "Suchen und Ersetzen".
Erstens sollten wir diese Änderungen vorgenommen haben, bevor wir .NET Core 3.0 veröffentlicht haben, und wir entschuldigen uns dafür. Wir versuchen, verspätete Änderungen zu vermeiden, und noch mehr, Änderungen zu brechen, und es tut uns weh, diese zu machen.
Als wir uns mit dem Windows Forms-Designer-Projekt befassten, stellten wir fest, dass diese Steuerelemente nicht mit der Erstellung moderner Anwendungen in Einklang standen und niemals Teil des .NET Core-Ports von Windows Forms sein sollten. Wir sahen auch, dass sie mehr Zeit von uns benötigen würden, um uns zu unterstützen, als es sinnvoll erscheint.
Unser Ziel ist es, Windows Forms für hohe DPI, Zugänglichkeit und Zuverlässigkeit weiter zu verbessern. Diese späte Änderung war erforderlich, damit wir uns auf die Bereitstellung konzentrieren können.
C ++ / CLI
Wir haben die Unterstützung für das Erstellen von C ++ / CLI-Komponenten (AKA "managed C ++") hinzugefügt, die mit .NET Core 3.0+ in Visual Studio 2019 16.4 verwendet werden können. Sie müssen die Workload "Desktop-Entwicklung mit C ++" und die Komponente "C ++ / CLI-Unterstützung" installieren, um C ++ / CLI verwenden zu können.
Diese Komponente fügt einige Vorlagen hinzu, die Sie verwenden können:
- CLR-Klassenbibliothek (.NET Core)
- CLR-leeres Projekt (.NET Core)
Wenn Sie sie nicht finden können, suchen Sie sie einfach im Dialogfeld "Neues Projekt".
C ++ / CLI ist nur unter Windows aktiviert. Sie können keine C ++ / CLI-Komponenten für .NET Framework mit .NET Core oder umgekehrt verwenden.
Schließen
Wir empfehlen, so bald wie möglich auf .NET Core 3.1 umzusteigen. Es ist eine großartige Version (hauptsächlich aufgrund von 3.0), die Verbesserungen an so vielen Aspekten von .NET Core bringt. Es handelt sich auch um eine
LTS-Version (Long Term Support) , die drei Jahre lang unterstützt wird.
Lebenszyklus-Update:
- .NET Core 3.0 läuft ab dem 3. März 2020 in drei Monaten aus.
- .NET Core 2.2 endet jeweils am 23. Dezember.
- .NET Core 2.1 wird bis August 2021 unterstützt (es ist auch eine LTS-Version).
In den folgenden Beiträgen zu .NET Core wird empfohlen, mehr darüber zu erfahren, was Sie mit .NET Core 3.1 und anderen Projekten, an denen wir gearbeitet haben, erhalten.
Grundlagen
Desktop
ASP.NET
General