.NET Core 3.1 - релиз долгосрочной поддержки (LTS)
.NET Core 3.1 - релиз долгосрочной поддержки (LTS)
Microsoft объявила о выпуске .NET Core 3.1. Это небольшое обновление, в основном призванное устранить проблемы версии .NET Core 3.0. Самое важное о .NET Core 3.1 — это релиз долгосрочной поддержки (LTS) и Microsoft будет поддерживать эту версию как минимум в течение 3 лет. Как и в прошлом, Microsoft не хотел торопиться с выпуском нового релиза LTS. Дополнительные два месяца (после выхода .NET Core 3.0) позволили выбрать и реализовать правильный набор улучшений по сравнению с уже стабильной версией. .NET Core 3.1 теперь полностью готов к использованию в чем угодно, на что только способно ваше воображение.
Вы можете скачать .NET Core 3.1для Windows, macOS, и Linux:
- .NET Core 3.1 SDK и Runtime
- Образы контейнеров Docker
- Установщик Snap
ASP.NET Core и EF Core также стали общедоступны.
Visual Studio 2019 16.4 также теперь доступна и включает в себя .NET Core 3.1. Это необходимое обновление для использования .NET Core 3.1 с Visual Studio. Пользователям Visual Studio 2019 мы рекомендуем просто обновить Visual Studio до 16.4 вместо отдельного скачивания .NET Core 3.1.
Visual Studio для Mac также поддерживает и включает в себя .NET Core 3.1, пробуйте Visual Studio для Mac 8.4 Preview.
Заметки релиза:
- Заметки о релизе .NET Core 3.1
- Страница GitHub для описания проблем с .NET Core 3.1
- Релиз на GitHub
Изменения в .NET Core 3.1 были в основном сфокусированы на Blazor и Windows Desktop, двух больших новинках .NET Core 3.0. В них входит поддержка C++/CLI, которая была частым запросом от разработчиков, ориентированных на Windows.
Прежде чем перейти к краткому обзору новинок .NET Core 3.1, советуем изучить новинки .NET Core 3.0.
Поддержка платформ
.NET Core 3.1 поддерживается на следующих ОС:
- 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+
Заметка: приложения Windows Forms и WPF поддерживаются и функционируют только на Windows.
Поддержка чипов:
- x64 на Windows, macOS, и Linux
- x86 на Windows
- ARM32 на Windows и Linux
- ARM64 на Linux (kernel 4.14+)
Заметка: обратите внимание, что в развертываниях .NET Core 3.1 ARM64 используется Linux kernel версии 4.14 или более поздней. Например, Ubuntu 18.04 удовлетворяет этому требованию, а 16.04 нет.
Удаление элементов управления Windows Forms
Следующие элементы управления Windows Forms были удалены из .NET Core 3.1:
- DataGrid
- ToolBar
- ContextMenu
- Menu
- MainMenu
- MenuItem
Эти элементы управления были заменены более мощными элементами управления в .NET Framework 2.0 еще в 2005 году. Они не были доступны по умолчанию в Visual Studio Designer Toolbox в течение многих лет. В результате мы решили убрать эти элементы управления и сосредоточиться на новых.
Рекомендуются следующие замены:
Старый элемент (API) | Рекомендуемая замена | Другие связанные удаленные API |
DataGrid | DataGridView | DataGridCell, DataGridRow, DataGridTableCollection, DataGridColumnCollection, DataGridTableStyle, DataGridColumnStyle, DataGridLineStyle, DataGridParentRowsLabel, DataGridParentRowsLabelStyle, DataGridBoolColumn, DataGridTextBox, GridColumnStylesCollection, GridTableStylesCollection, HitTestType |
ToolBar | ToolStrip | ToolBarAppearance |
ToolBarButton | ToolStripButton | ToolBarButtonClickEventArgs, ToolBarButtonClickEventHandler, ToolBarButtonStyle, ToolBarTextAlign |
ContextMenu | ContextMenuStrip | |
Menu | ToolStripDropDown, ToolstripDropDownMenu | MenuItemCollection |
MainMenu | MenuStrip | |
MenuItem | ToolstripMenuItem |
Да, это переломное изменение. Вы заметите разрывы сборки, если будете использовать элементы управления, которые мы удалили, в своих приложениях. Кроме того, если вы откроете приложения .NET Core 3.0 в последних версиях конструктора .NET Core Windows Forms, вы увидите ошибки, если будете использовать эти элементы управления.
Мы рекомендуем вам обновить ваши приложения до .NET Core 3.1 и перейти на альтернативные элементы управления. Замена элементов управления — это простой процесс, по сути «найти и заменить».
Во-первых, мы должны были внести эти изменения до того, как выпустили .NET Core 3.0, и мы извиняемся за это. Мы стараемся избегать слишком поздних изменений и нам очень жаль, что так получилось.
Продвинувшись дальше в реализации проекта дизайнера Windows Forms, мы поняли, что эти элементы управления не связаны с созданием современных приложений и никогда не должны были быть частью .NET Core Windows Forms. Мы также поняли, что нам потребуется слишком много ресурсов для их поддержки.
Цель — продолжать совершенствовать Windows Forms для обеспечения высокого DPI, доступности и надежности, и это позднее изменение было действительно важно.
C++/CLI
Добавили поддержку создания компонентов C++/CLI (AKA «управляемый C++»), которые можно использовать с .NET Core 3.0+ в Visual Studio 2019 16.4. Для использования C++/CLI необходимо установить рабочую нагрузку «Desktop-разработка с C++» и компонент «поддержка C++/CLI».
Этот компонент добавляет пару шаблонов, которые вы можете использовать:
- CLR библиотека классов (.NET Core)
- CLR пустой проект (.NET Core)
Если вы не можете их найти, просто поищите в диалоговом окне «Новый проект».
C++/CLI доступны только на Windows. Вы не можете использовать компоненты C++/CLI предназначенные для .NET Framework с .NET Core и наоборот.
Рекомендуем перейти на .NET Core 3.1 как только у вас появится возможность. Это отличный релиз (в основном благодаря 3.0), который вносит улучшения во многие аспекты .NET Core. Это также релиз долгосрочной поддержки (LTS), который будет поддерживаться в течение как минимум трех лет.
Обновления жизненного цикла:
- Поддержка .NET Core 3.0 завершится 3 марта 2020 года.
- Поддержка .NET Core 2.2 завершится 23 декабря 2019.
- .NET Core 2.1 будет поддерживаться до августа 2021 (это также LTS-релиз).
Следующие сообщения .NET Core рекомендуется прочитать, чтобы узнать больше о том, что вы получаете с .NET Core 3.1 и другими проектами (на английском).
Основы
- Floating-Point Parsing and Formatting improvements in .NET Core 3.0
- Default implementations in interfaces
- Introducing the new Microsoft.Data.SqlClient
- Introducing diagnostics improvements in .NET Core 3.0
- Understanding the Whys, Whats, and Whens of ValueTask
Desktop
- .NET Core 3 for Windows Desktop
- Continuously deploy and monitor your UWP, WPF, and Windows Forms app with App Center
- Introducing .NET Core Windows Forms Designer Preview 1
- Migrating a Sample WPF App to .NET Core 3
- Porting desktop apps to .NET Core
ASP.NET
- Improvements in .NET Core 3.0 for troubleshooting and monitoring distributed apps
- Blazor Server in .NET Core 3.0 scenarios and performance
- Supporting the community with WF and WCF OSS projects
- Upcoming SameSite Cookie Changes in ASP.NET and ASP.NET Core
- Re-reading ASP.Net Core request bodies with EnableBuffering()
- gRPC vs HTTP APIs
- Collecting .NET Core Linux Container CPU Traces from a Sidecar Container
Общее
- How the .NET Team uses Azure Pipelines to produce Docker Images
- The Evolving Infrastructure of .NET Core
- Update on .NET Standard adoption
- .NET Core is the Future of .NET
- .NET Core and systemd
- .NET Core Workers as Windows Services