Мы рады объявить о выпуске .NET Core 3.1. Это действительно небольшое обновление, в основном призванное устранить проблемы версии .NET Core 3.0, которую мы выкатили пару месяцев назад. Самое важное о .NET Core 3.1 — это релиз долгосрочной поддержки (LTS) и мы будем поддерживать эту версию как минимум в течение 3 лет. Как и в прошлом, мы не хотели торопиться с выпуском нового релиза LTS. Дополнительные два месяца (после выхода .NET Core 3.0) позволили нам выбрать и реализовать правильный набор улучшений по сравнению с уже стабильной версией. .NET Core 3.1 теперь полностью готов к использованию в чем угодно, на что только способно ваше воображение.

Вы можете скачать .NET Core 3.1для Windows, macOS, и Linux:


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 были в основном сфокусированы на 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 и другими проектами, над которыми мы работаем (на английском).

Основы


Desktop


ASP.NET


Общее

Комментарии (17)


  1. WayMax
    11.12.2019 10:54
    +2

    Visual Studio 2019 16.4 также выкачена и включает в себя .NET Core 3.1.

    Кем и откуда выкачена? Ладно бы: «мы выкатили релиз версии ХХ.УУ» — это хоть как-то звучит. Но в вашем предложении речь идет о скачивании, а никак не о публикации.


    1. QtRoS
      11.12.2019 11:29

      Да вообще по моему мнению такой сленг недопустим в официальном блоге компании. Звучит нелепо!


    1. ArXen42
      11.12.2019 15:12
      +1

      Не могу удержаться от еще одной выдержки из текста:


      Да, это переломное изменение. Вы заметите разрывы сборки, если будете использовать элементы управления, которые мы удалили, в своих приложениях.


      1. a-tk
        12.12.2019 08:53

        Сборку порвало от негодования, видимо.


        1. PowerMetall
          13.12.2019 11:50

          Но до этого ведь не было ни единого разрыва!


          1. a-tk
            13.12.2019 12:18

            Ну так ведь и загрузка до 99% не доходила!


  1. GennPen
    11.12.2019 13:23
    +1

    Спасибо за LTS, можно переходить.

    .NET Core 2.1 будет поддерживаться до августа 2021 (это также LTS-релиз).
    Отметили бы это тогда на странице релизов, а то пусто.


  1. Tantrido
    11.12.2019 18:27
    +2

    Вот эти 2 фразы постоянно друг другу противоречат:

    .NET Core 3.1 теперь полностью готов к использованию в чем угодно, на что только способно ваше воображение.
    Заметка: приложения Windows Forms и WPF поддерживаются и функционируют только на Windows.


    1. alex_zzzz
      11.12.2019 19:03

      Это же прикладные библиотеки/феймвоки для Windows со словом Windows в названии, просто портированные на NET Core. Где им ещё работать?


      1. mad_nazgul
        12.12.2019 10:46
        +1

        Везде?! :-)
        А так получается вы можете писать кроссплатформенное приложение, но только под Windows.


        1. GennPen
          12.12.2019 12:59

          Понятно, что не совсем везде и приложение это не только оконное WPF/WindowsForms. На FreeBSD до сих пор не поддерживается, поэтому на какой нть CentOS запилить приложение не получится.


          1. a-tk
            12.12.2019 13:48

            Use Avalonia, Luke!
            Сделать интерфейс кроссплатформенным всегда было проблемой, проблемой это остаётся и сейчас.


            1. mad_nazgul
              13.12.2019 08:00

              Электрон же :-)


              1. a-tk
                13.12.2019 08:23

                Удачи на мобилках.


  1. iluxa1810
    12.12.2019 08:22

    А есть какая-нибудь дорожная карта на 2020 год по VS и .NET?


    1. enzain
      12.12.2019 10:42

      Как всегда — "мы активно пилим, как запилим — вместе посмотрим что получилось" :)