23 сентября стартовала .NET Conf 2019, к которой был приурочен выпуск новых и обновление существующих продуктов компании Microsoft: Ниже представлен краткий обзор. |
.NET Core 3.0
Одним из ключевых событий конференции стал выход .NET Core 3.0 RTM. На странице загрузки уже доступны run-time и SDK для Windows, Linux и macOS.
Среди новых возможностей .NET Core можно выделить следующие:
- Поддержка
- C# 8
- F# 4.7 (подробнее тут)
- .NET Standard 2.1, который, в том числе, необходим для C# 8 (детали).
- Windows-приложений, написанных под WPF и WinForms. В SDK входит дизайнер WPF форм.
- Новый JSON API, оптимизированный по скорости работы и с меньшим потреблением памяти.
- Улучшенная производительность сборщика мусора.
- Оптимизация использования процессора и памяти при работе в Docker.
- Работа под управлением ARM и Raspberry Pi.
.NET Core 3.0 уже используется командами внутри компании. Например, для сайтов dot.net и Bing.com.
Версия .NET Core 3.0 является текущей и коротким циклом поддержки. LTS версией (с поддержкой не менее 3 лет) будет .NET Core 3.1, ожидаемая в ноябре 2019 года.
Для разработки приложений под .NET Core 3.0 необходимо:
- Visual Studio 2019 – установить 3 обновление (версию 16.3).
- Visual Studio Mac – обновить до версии 8.3.
- Visual Studio Code – использовать последнюю версию расширения C#.
Полное описание .NET Core 3.0 доступно на сайте Microsoft.
C# 8
Одновременно с .NET Core 3.0 была выпущена новая версия C#. Среди ее новых возможностей:
- Асинхронные потоки.
- Диапазоны и индексы.
- Новый синтаксис switch.
- Ссылочные типы, допускающие значение null.
- Реализация по умолчанию.
- Объявление переменных с using.
Так как C# 8 требует поддержку со стороны платформы, то в данный момент ее можно использовать только в .NET Standard 2.1 и .NET Core 3 проектах. Для .NET Framework 4.x, а так же предыдущих версий .NET Standard и .NET Core, по прежнему максимально доступная версия C# 7.3.
Стоит отметить, что после установки обновления 3 обновления Visual Studio 2019, выбор версии C# будет происходить автоматически, исходя из целевой платформы проекта:
- .NET Framework (все версии) – C# 7.3
- .NET Standard 2.0 и младше – C# 7.3
- .NET Standard 2.1 – C# 8
- .NET Core 2.x и младше – C# 7.3
- .NET Core 3.x и выше – C# 8
Диалог выбора версии языка теперь выглядит следующим образом:
Visual Studio 2019.3
Для использования C# 8 и .NET Core 3.0 в Visual Studio 2019 необходимо установить третье минорное обновление (версия 16.3). Вот какие изменения и новые возможности появились с его выходом:
- Поддержка
- C# 8
- F# 4.7
- .NET Core 3.0
- Xcode 11 и iOS 13
- Android 10
- TypeScript 3.6
- Поиск по списку последних проектов в стартовом окне.
- Улучшенный поиск шаблона проекта в окне “New Project”.
- Отладка Azure Function запущенных в Linux контейнере.
- Новые возможности для рефакторинга C#.
- Улучшенная работе рефакторинга TypeScript.
- Окно поиска (Ctrl+Q) теперь поддерживает поиск по коду.
Полное описание всех изменений доступно на сайте Microsoft.
Entity Framework Core 3.0
Entity Framework Core 3.0 стала доступна для загрузки через NuGet практически одновременно с входом .NET Core 3.0. И это не случайно, так как она может быть использована только в .NET Standard 2.1 .NET Core 3.0 проектах. Все дело в использовании новых возможностей, появившихся в C# 8:
- запросы могут использовать асинхронные потоки
- в сущностях разрешено использование ссылочных типов, допускающих значение null.
Кроме того, можно выделить следующее:
- Поддержка клиентских вычислений. Entity Framework Core 3.0 может самостоятельно разделить выражение на серверную часть, которая будет транслирована в SQL, и клиентскую, которая может быть выполнена только на клиенте. В предыдущих версиях такие выражения вызывали ошибку трансляции.
- Транслирование выражений в один SQL запрос. Если это невозможно, то будет выброшено исключение.
- Поддержка Cosmos DB.
- Возможность перехвата выполнения операций БД, таких как открытие соединения, начало транзакции, выполнение команды. Разработчик можно указать код, который будет выполняться в этом случае.
- Обратный инжиниринг представлений (view) базы данных.
Полное описание всех изменений доступно на сайте Microsoft.
WinForms дизайнер для .NET Core 3.0 (предварительная версия)
Как было отмечено выше, .NET Core 3.0 поддерживает WinForms, WPF и SDK содержит дизайнер WPF форм. А дизайнер для WinForms пока находится в предварительной версии и доступен для отдельной загрузки.