Posted on 11. April 2019

Обновления .NET Core в апреле 2019 года - Версии 2.1.10 и 2.2.4

Недавно были выпущенны обновления .NET Core за апрель 2019 года. Они содержат исправления безопасности и надежности. Смотрите примечания к каждой отдельной сборке для получения подробной информации об этих исправлениях. 

.NET Core 2.2.4 и .NET Core SDK 2.2.106 (Загрузить | Примечания к выпуску)

.NET Core 2.1.10 и .NET Core SDK 2.1.506 (Загрузить | Примечания к выпуску)

Безопасность

Уязвимость отказа в обслуживании существует в ASP.NET Core 2.2, где, если приложение размещено на Internet Information Server (IIS), удаленный злоумышленник, не прошедший проверку подлинности, может использовать специально созданный запрос, чтобы вызвать отказ в обслуживании.

Уязвимость затрагивает любые Microsoft ASP.NET Core 2.2 приложения, если они размещены на IIS сервере, на котором запущен AspNetCoreModuleV2 (ANCM), включительно до 12.2.19024.2. Это обновление безопасности устраняет эту уязвимость, обеспечивая предотвращение сбоя рабочего процесса IIS в ответ на специально созданные запросы.

Как получить обновление?

Последние .NET Core обновления доступны на странице загрузки .NET Core.

Смотрите примечания к выпуску .NET Core (2.1.10 | 2.2.4) и узнайте больше об исправленных проблемах и затронутых пакетах.

Docker Изображения

.NET Docker Изображения также обновлены до нынешнего выпуска. Следующие репозитории тоже были обновлены.


Примечание. Посмотрите на «Теги» в каждом репозитории, чтобы увидеть обновленные теги Docker изображений.

Примечание. Для получения обновлений необходимо повторно извлечь базовые изображения. Docker-клиент не получает обновления автоматически.

Развертывание Azure App Services

Развертывание этих обновлений для Azure App Services уже запланировано, и, по текущим оценкам, оно будет завершено к 23 апреля 2019 года.




Posted on 5. April 2019

Windows Template Studio 3.1

И вот, вышла версия 3.1 Windows Template Studio!

Как всегда, с помощью Ваших пожеланий и фидбеков. Если Вы заинтересованы, пожалуйста, посетите WinTS страницу на Github.

Что нового?

Полный список изменений в версии 3.1, Вы можете подробно изучить на WinTS странице на Github.

Добавлено в эту версию:

  • Новый тип MenuBar проекта
  • Добавлены пользовательский интерфейс, модульные тесты и функции WinAppDriver тестирования
  • Полноценная поддержка VS2019
  • Добавлена ссылка на отчет о проблемах из WinTS Wizard
  • Общее исправление ошибок
Обновления платформы для разработчиков:
  • AppCenter.Analytics до 1.14.0
  • AppCenter.Crashes до 1.14.0
  • NETCore.UniversalWindowsPlatform до 6.2.8
  • Toolkit.Uwp до 5.1.1
  • UI.Xaml до 2.0.181018004
  • UI.for.UniversalWindowsPlatform до 1.0.1.4
  • NUnit3TestAdapter до 3.13.0
  • NET.Test.Sdk до 16.1.0
  • Храните Engagement SDK до 10.1901.28001
Как получить обновление?

Есть два пути обновления к новейшей сборке.
  • Уже установлено: Visual Studio автоматически обновляет расширение. Для принудительного обновление, откройте «Инструменты» > «Расширения и обновления». Затем перейдите на вкладку слева «Обновление расширителя», и Вы увидите Windows Template Studio, после чего нажмите «Обновить».
  • Не установлено: Перейдите на https://aka.ms/wtsinstall, нажмите «загрузить» и дважды щелкните по VSIX установщику.
Что будет в следующих версиях?

Команда Windows Template Studio ценит Вашу поддержку сообщества и активное участие. Кроме того, Вы можете ознакомиться с некоторыми из будущих функций уже сейчас:
  • Идентификационный логин (ETA версия 3.1.5 через несколько недель). Эта функция изначально разрабатывалась для версии 3.1, но, к сожалению, еще не полностью готова.
  • Начало добавления функции Azure
  • Поддержка базы данных
В  партнерстве с сообществом, Microsoft продолжит работу над добавлением и улучшением функций и функциональности. Команда Windows Template Studio всегда рада новым людям, которые готовы помочь, и если Вам интересно, пожалуйста, перейдите на GitHub --> https://aka.ms/wts. Если у Вас есть идеи по добавлению новых функций, пожалуйста, отправьте Ваш запрос!


Posted on 3. April 2019

Продуктивность Visual Studio 2019 .NET

Команда по .NET производительности (также известная как Roslyn) уделяет много внимания  улучшению опыта .NET программирования. Иногда это небольшие рефакторинги и исправления кода, которые действительно делают Ваш рабочий процесс лучше. Возможно, Вы видели много улучшений в предварительных просмотрах, но для тех, кто с нетерпением ждал GA-релиза, выпустили несколько функций, которые точно Вам понравятся!

Улучшения инструментов

Больше всего интригует новая классификация Roslyn цветов. Цвета  Visual Studio Code получили высокую оценку, поэтому аналогичные цветовые схемы были добавлены в Visual Studio. Теперь Ваш редактор кода будет выглядеть намного красочнее. Ключевые слова, пользовательские методы, локальные переменные, имена параметров и перегруженные операторы теперь в новых цветах. Вы даже можете настроить цвета для каждой синтаксической классификации, зайдите в Инструменты > Параметры > Среда > Шрифты и Цвета и выделите «User Members».

Внизу файлов в Вашем редакторе находятся индикаторы работоспособности документа, а также значок очистки кода. Индикаторы работоспособности документа позволяют сразу узнать, сколько ошибок и предупреждений присутствует в открытом на данный момент файле. Вы можете щелкнуть на значок очистки кода, чтобы применить правила стиля кода, указанные в «Инструменты» > «Параметры», или, если у Вас есть editorconfig файл, совместно использующий один стиль кода в Вашей команде, он будет применять стили, указанные в этом файле.

DocHealthCodeCleanup.mp4 (539.26 kb)

Вы можете редактировать файлы проекта в SDK стиле с помощью двойного щелчка мыши! Вы также можете просматривать эти файлы проекта с предварительным просмотром в GoToAll (Ctrl + t) навигации и искать в содержимом ссылки на файлы.

Загрузите подмножество проектов в Ваше решение с отфильтрованными решениями! Теперь Вы можете выгрузить проекты и сохранить их как .slnf файл, который откроет только те проекты, которые Вы указали. Это поможет быстро получить интересующий Вас код без необходимости загрузки всего решения.

Найдите все ссылки, которые классифицированы по типу ссылки. Вы можете выполнить фильтрацию по чтению / записи в новом столбце «Вид» в окне поиска всех ссылок.

Запустите форматирование стиля кода для всего решения в командной строке с помощью глобального dotnet format инструмента.

DotnetFormatDiag.mp4 (241.28 kb)

Intellicode - это расширение, предлагающее более интеллектуальное завершение работы с intellisense, с помощью моделей машинного обучения, работающих в более чем 2000 .NET репозиториях с открытым исходным кодом на GitHub.

Теперь рассмотрим множество новых исправлений кода и рефакторингов!

Foreach для LINQ

ToLinqQuery.mp4 (433.59 kb)

Добавление недостающей ссылки для не импортированных типов

AddUsings.mp4 (264.86 kb)

Синхронизация пространства имен и имя папки

SyncNamespaceAndFolderName.mp4 (848.85 kb)

Инвертирование условных выражений

InvertConditional.mp4 (154.03 kb)

Метод PullUp и его связь с интерфейсом

PullMemberUp.mp4 (546.50 kb)

Обертка / отступ / выравнивание параметров / аргументов

WrapParameter.mp4 (262.48 kb)

Удаление неиспользуемых значений и параметров выражения

RemoveUnused.mp4 (140.49 kb)

Это набор основных моментов того, что нового в Visual Studio 2019, Вы можете изучить полный список в примечаниях к выпуску. Как всегда, оставляйте Ваши отзывы в Твиттере, на GitHub или в комментариях ниже. Также обратите внимание, что для использования .NET Core 3.0 Preview Вам необходимо вручную загрузить и установить SDK, так как он еще не добавлен в установщик Visual Studio 2019.



Posted on 29. March 2019

Windows Calculator теперь с открытым исходным кодом

 

Windows Calculator теперь с открытым исходным кодом

Уже сегодня Microsoft объявляет о том, что теперь можно пользоваться Windows Calculator с открытым исходным кодом под MIT лицензией на GitHub. Он включает в себя исходный код, систему сборки, модульные тесты и карту продукта. Главная цель - создать еще лучшие условия для пользователей на основе отзывов сообщества. А также благодаря Вашим пожеланиям, замечаниям и активному участию.

Если Вы разработчик и хотите узнать, как работают различные части приложения Calculator, как легко интегрировать его логику или пользовательский интерфейс в Ваши собственные приложения или внести Ваш вклад и улучшить Windows Calculator, теперь это стало возможным. Более того, Calculator будет проходить все обычные процессы тестирования, проверки соответствия, безопасности, качества и проверки внутренних данных, как это обычно делается для других Windows приложений. Вы можете узнать больше об этих деталях в документации на GitHub.

Открытый вклад

Помимо повторного использования и адаптации кода в Ваших собственных приложениях, каждый может принять участие в разработке Windows Calculator. Все так просто. Проект «clone-and-go», и его развитие будет осуществляться в соответствии со стандартным потоком работы на GitHub. На всех этапах разработчики могут внести свой вклад:

  • Участвовать в обсуждениях
  • Сообщать или исправлять проблемы
  • Предлагать новые идеи
  • Прототипировать новые функции
  • Проектировать и собирайте вместе с другими

Обучение

Просмотр кода Calculator - отличный способ узнать больше о новейших Microsoft технологиях, таких как универсальная Windows платформа, XAML и Azure Pipelines. Благодаря этому проекту разработчики могут извлечь много полезного из полного жизненного цикла Microsoft, а также повторно использовать код для создания собственного. Это также отличный пример приложения с Fluent дизайном. Чтобы сделать это еще проще, Вам будут предоставлены пользовательские элементы управления и API расширения, которые используются в Calculator и других приложениях, для таких проектов, как Windows Community Toolkit и Windows UI Library.

Станьте частичкой команды Windows Calculator уже сейчас! Чтобы начать, изучите проект Windows Calculator на GitHub.



Posted on 26. March 2019

Начало работы с Windows UI Library

Инструментарий доступен в качестве NuGet пакетов, которые можно добавить в любой существующий или новый проект, используя Visual Studio.

Загрузите и установите Windows UI Library

1. Загрузите Visual Studio 2017 и убедитесь, что Вы выбрали рабочую нагрузку разработки под универсальную Windows платформу в установщике Visual Studio.

Примечание

Visual Studio 2015 не поддерживает Windows UI Library.

2. Откройте существующий проект или создайте новый проект, используя пустой шаблон приложения в Visual C# -> Windows -> Universal, или соответствующий шаблон для языковой проекции.

Обратите внимание: для использования Windows UI Library минимальная версия Вашего проекта должна быть 14393 и выше, а целевая версия должна быть 17134 и выше.

3. На панели Solution Explorer щелкните правой кнопкой мыши на имя Вашего проекта и выберите «Управление NuGet пакетами». Выберите вкладку «Обзор» и найдите Microsoft.UI.Xaml. Затем выберите, какие NuGet пакеты Windows UI Library Вы хотите использовать.

Пакет Microsoft.UI.Xaml содержит Fluent элементы управления и функции, которые подходят для всех приложений.

При желании Вы можете выбрать опцию «Include prerelease», чтобы быть в курсе последних предварительных версий и новых функций.

4. Добавьте Windows UI (WinUI) Theme Resources в Ваши App.xaml ресурсы. Существует два способа, в зависимости от того, есть ли у Вас дополнительные ресурсы приложения.

а. Если у Вас нет других ресурсов приложения, добавьте

в Ваши Application.Resources:

 

    

    
        
    

 

б. В противном случае, если у Вас несколько наборов ресурсов приложения, добавьте в Application.Resources.MergedDictionaries:

 

 
   
    
        
            
                
             
        
    
   

 

5. Добавьте ссылку на инструментарий на XAML страницы и на страницы с фоновым кодом.

На Вашей XAML странице добавьте ссылку в самом верху.

XAML: xmlns:controls="using:Microsoft.UI.Xaml.Controls"

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

C#: using MUXC = Microsoft.UI.Xaml.Controls;

Дополнительные шаги для C++/WinRT проектов

Когда Вы добавляете NuGet пакет в C++/WinRT проект, этот инструмент генерирует набор заголовков проекции в папке \Generated Files\winrt Вашего проекта. Чтобы добавить эти заголовки в Ваш проект, так чтобы ссылки на эти новые типы разрешались, Вы можете зайти в Ваш pch.h файл и добавить их. Ниже приведен пример, включающий сгенерированные файлы заголовков для Microsoft.UI.Xaml пакета.

 

// pch.h 
... 
#include "winrt/Microsoft.UI.Xaml.Automation.Peers.h" 
#include "winrt/Microsoft.UI.Xaml.Controls.Primitives.h" 
#include "winrt/Microsoft.UI.Xaml.Media.h" 
#include "winrt/Microsoft.UI.Xaml.XamlTypeInfo.h"

 

Вклад в Windows UI Library

WinUI - это проект с открытым исходным кодом, размещенный на GitHub. 

Вы можете делиться Вашими сообщениями об ошибках, запросами функций и делать вклад в код сообщества в репозитории Windows UI Library.

Другие источники

Если Вы новичок в UWP разработке, посетите страницы «Начало работы с UWP разработкой» на портале для разработчиков.



Posted on 12. March 2019

Как переносить настольные приложения на .NET Core 3.0

В этой статье будет рассмотрен перенос настольного приложения с .NET Framework на .NET Core. В качестве примера возьмем WinForms приложение. Шаги для WPF приложения схожи, различия рассмотрим по ходу. Также увидим как использовать WinForms designer в Visual Studio, хотя он находится в стадии разработки и еще не доступен для .NET Core проектов.

О примере

Для этого поста будет использовано игровое Memory-style board приложение. Оно состоит из WinForms UI (MatchingGame.exe) и библиотеки классов с игровой логикой (MatchingGame.Logic.dll), которые предназначены для .NET Framework 4.5. Здесь можно скачать образец. Итак, рассмотрим перенос проекта приложения на .NET Core 3.0, а также библиотеки классов на .NET Standard 2.0. Использование .NET Standard вместо .NET Core позволяет повторно использовать игровую логику для размещения приложения на других платформах, таких как iOS, Android или в вебе.

 

Вы можете просмотреть видео, как выполняется конвертация либо следовать пошаговым инструкциям ниже. Конечно, можно воспользоваться двумя вариантами.

Пошаговый процесс

Перемещение может быть выполнено в отдельной ветке, если не используется контроль версий. Также можно создать копию своего проекта, к которой можно вернуться при необходимости.

Прежде чем переносить приложение на .NET Core 3.0, подготовите следующее:

  1. Установите .NET Core 3 и Visual Studio 2019 Preview версию (Visual Studio 2017 поддерживает версии только до .NET Core 2.2).
  2. Начните с рабочего проекта. Убедитесь, что проект беспроблемно открывается, собирается и запускается.
  3. Обновите NuGet пакеты. Всегда рекомендуется использовать последние версии NuGet пакетов перед любым переносом. Если Ваше приложение ссылается на какие-либо NuGet пакеты, обновите их до последней версии. Убедитесь, что Ваше приложение успешно собрано. Если NuGet выдает ошибки, понизьте версию и найдите последнюю, которая не нарушает Ваш код.
  4. Запустите .NET Portability Analyzer, чтобы определить, существуют ли какие-либо API, от которых зависит Ваше приложение, и которые отсутствуют в .NET Core. Если таковые имеются, Вам необходимо провести рефакторинг своего кода, чтобы избежать зависимостей от API, не поддерживаемых в .NET Core. Иногда можно найти альтернативный API, который обеспечивает необходимую функциональность.
  5. Замените packages.config на PackageReference. Если используются NuGet пакеты, то нужно добавить те же NuGet пакеты в новый .NET Core проект. .NET Core проекты поддерживают только PackageReference для добавления NuGet пакетов. Чтобы переместить ссылки NuGet из packages.config в файл проекта, в обозревателе решений необходимо щелкнуть правой кнопкой на packages.config -> Migrate packages.config в PackageReference… Более детально об этом типе переноса можно ознакомиться по ссылке Migrate from packages.config to PackageReference.

 

Портирование основного проекта

Создание нового проекта
  • Создайте новое приложение того же типа (Console, WinForms, WPF, Class Library), что и приложение, которое нужно перенести, для .NET Core 3. На данный момент были сделаны демонстрационные Visual Studio шаблоны для десктопных проектов, которые находились в стадии разработки, поэтому использовалась консоль.
dotnet new winforms -o \MatchingGame.Core\
  • Скопируйте в файле проекта все внешние ссылки из старого проекта, например:
  • Начните сборку. На этом этапе, если пакеты, на которые Вы ссылаетесь, поддерживают только .NET Framework, Вы получите NuGet предупреждение. Если Вы не обновились к последней версии NuGet пакета на шаге 3, попробуйте определить, доступна ли последняя версия, поддерживающая .NET Core (.NET Standard), и повторите обновление. Если более новой версии нет, то .NET Framework пакеты все еще можно использовать, но можно получить ошибки времени выполнения, если эти пакеты имеют зависимости от API, не поддерживаемых в .NET Core. В таком случае рекомендуется сообщить автору NuGet пакета, что Вас заинтересовало бы обновление пакета до .NET Standard. Сделать это можно через контактную форму в NuGet галерее.
Быстрый способ (заменить существующий файл проекта)

Итак, быстрый способ переноса. Убедитесь, что у Вас есть копия текущего .csproj файла, возможно, Вам придется использовать его в будущем. Замените текущий .csproj файл .csproj файлом из проекта, созданного ранее, и добавьте вверху следующее:

false
Соберите приложение. Если ошибок не возникло, то перенос проекта на .NET Core 3 прошел успешно. Для перемещения зависимого (UI) проекта рекомендуется ознакомиться с разделом «Перенос пользовательского интерфейса»), чтобы узнать, как использовать Designer, ознакомьтесь с разделом «Использование WinForms Designer для проектов .NET Core».

Медленный путь (управляемый перенос)

Если система выдает ошибки, то нужно внести дополнительные корректировки. Здесь предоставлена информация о внесении изменений в код с возможными исправлениями для каждого вопроса. Шаги ниже также помогут лучше понять процесс переноса, поэтому, если быстрый способ помог, но Вам интересно узнать «почему и как», продолжайте читать.
  • Перейдите в.csproj файл в SDK-style. Чтобы переместить приложение в .NET Core, сначала нужно изменить файл проекта в SDK формате, поскольку старый формат не поддерживает .NET Core. Кроме того, SDK-style формат намного проще и с ним легче работать. Убедитесь, что копия текущего .csproj файла создана. Замените содержимое .csproj файла следующим. Для WinForms приложения:
  

  
    WinExe
    net472
    true
    false
  
Для WPF приложения:

  
    
  
    WinExe
    net472
    true
    false
  
Обратите внимание, что значение было установлено как false. В проектах нового стиля AssemblyInfo.cs генерируется автоматически по умолчанию. Так что, если проект уже содержит файл AssemblyInfo.cs файл (а он содержит), то необходимо отключить авто-генерацию или удалить файл.

Теперь скопируйте и вставьте все ссылки из старой версии .csproj файла в новую. Например:

Ссылка на NuGet пакет
 

Ссылка на проект
 


Проект должен успешно сформироваться, так как это просто новый способ написать то же самое. Если возникли какие-либо ошибки, то перепроверьте сделанные шаги.

Существует также сторонний инструмент CsprojToVs2017, который может выполнить преобразование. Но после его использования все равно может понадобиться удалить некоторые ссылки вручную, например:




  • Перейдите от .NET Framework к .NET Standard или .NET Core. После успешного преобразования библиотеки в SDK формат, ее можно перенастроить. В данном случае, необходимо, чтобы библиотека классов предназначалась для .NET Standard вместо .NET Core. Таким образом, она будет доступна из любой .NET реализации, если нужно отправить игру на другие платформы (например, iOS, Android или Web Assembly). Для этого замените данную строку
net472
на следующую

netstandard2.0
Создайте Ваше приложение. Если Вы используете API, которые не включены в .NET Standard, то могут возникнуть ошибки. Если ошибок нет, то следующие два шага можно пропустить.

  • Добавьте Windows Compatibility Pack для совместимости, если необходимо.Некоторые API, которые не включены в .NET Standard, доступны в Windows пакете совместимости. Если на предыдущем шаге были получены ошибки, то можно проверить, поможет ли Windows пакет совместимости. В рассматриваемом приложении была получена следующая ошибка «Имя реестра не существует в текущем контексте», поэтому в проект был добавлен Microsoft.Windows.Compatibility NuGet пакет. После установки ошибка исчезла.
  • Установите API Analyzer. API Analyzer, доступный в виде NuGet пакета Microsoft.DotNet.Analyzers.Compatibility, предупредит об использовании устаревших API или API, которые не поддерживаются на всех платформах (Windows, Linux, macOS). Если был добавлен пакет совместимости, то рекомендуется добавить и API Analyzer для отслеживания случаев использования API, которые не будут работать на всех платформах. На этом рассмотрение процесса переноса библиотеки классов на .NET Standard заканчивается. Если у Вас есть несколько проектов, которые ссылаются друг на друга, переносите их «снизу вверх», начиная с проекта, который не зависит от других. В данном примере также есть WinForms MatchingGame.exe проект, поэтому теперь необходимо выполнить аналогичные шаги для его переноса в .NET Core.
Перенос пользовательского интерфейса
  • Добавьте .NET Core UI проект. Внедрите в решение новый .NET Core 3.0 UI проект. На данный момент Visual Studio шаблоны для настольных приложений находятся в стадии разработки, поэтому можно просто использовать dotnet CLI.
dotnet new winforms -o \MatchingGame.Core\
Для WPF проектов можно использовать следующее:

dotnet new wpf -o \MatchingGame.Core\
После того, как был создан новый WinForms .NET Core проект, его необходимо добавить в Ваше решение.
  • Свяжите проекты. Сначала удалите все файлы из нового проекта (прямо сейчас он содержит общий Hello World код). Затем свяжите все файлы из существующего .NET Framework UI проекта с .NET Core 3.0 UI проектом, добавив в .csprojfile файл следующую команду.
    

    
    

Если у Вас WPF приложение, также необходимо включить .xaml файлы:

  

  
    MSBuild:Compile





  
    MSBuild:Compile
  
  

  • Совместите пространство имен по умолчанию и имя сборки. Поскольку Вы ссылаетесь на файлы, созданные дизайнером (например, Resources.Designer.cs), то нужно убедиться, что версия Вашего .NET Core приложения использует то же пространство имен и то же имя сборки. Скопируйте следующие параметры из Вашего .NET Framework проекта:

    
    

  • Отключите AssemblyInfo.cs файл. Как было отмечено ранее, в проектах нового стиля AssemblyInfo.cs генерируется автоматически по умолчанию. В то же время AssemblyInfo.cs файл из старого WinForms проекта будет скопирован и в новый проект, так как все ** \ *.cs файлы были связаны на предыдущем шаге. Это приведет к дублированию AssemblyInfo.cs. Чтобы избежать этого в файле MatchingGame.Core проекта, для GenerateAssemblyInfo было установлено значение false.
false
  • Запустите новый проект. Установите новый .NET Core проект в качестве StartUp проекта и запустите его. Убедитесь, что все работает.
  • Скопируйте или оставьте ссылку. Теперь вместо связывания файлов можно скопировать их из старого .NET Framework UI проекта в новый .NET Core 3.0 UI проект. После этого предыдущий можно удалить.
Использование WinForms Designer для проектов .NET Core

Как было упомянуто выше, WinForms Designer для .NET Core проектов еще не доступен в Visual Studio. Однако есть два способа обойти данный вопрос: 

  1. Сохраните файлы связанными (просто не выполните предыдущий шаг) и скопируйте их, когда будет доступна designer поддержка. Таким образом, можно изменить файлы в старом .NET Framework WinForms проекте, используя designer. И изменения будут автоматически отражены в новом .NET Core WinForms проекте, поскольку они связаны между собой.
  2. Храните два файла проекта в той же директории, где и WinForms проект: старый .csproj файл из существующего .NET Framework проекта и новый .csproj файл в SDK-style нового .NET Core WinForms проекта. Нужно выгрузить и перезапустить проект с соответствующим файлом проекта в зависимости от того, хотите ли Вы использовать designer или нет.
Подведение итогов

В этой статье было показано, как перенести десктопное приложение, содержащее несколько проектов, из .NET Framework на NET Core. Обычно недостаточно просто перенастроить свои проекты на .NET Core. Также были описаны потенциальные проблемы, с которыми Вы можете столкнуться, и способы их решения. Кроме того, было рассмотрено, как можно использовать WinForms designer для портированных приложений, пока он еще не доступен для .NET Core проектов.



Posted on 12. March 2019

ML.NET 0.11 - Машинное обучение .NET

ML.NET - это кросс-платформенная система машинного обучения с открытым исходным кодом для .NET разработчиков, которая поддерживается на Windows, Linux, macOS. С ML.NET разработчики могут использовать существующие инструменты и наборы разработки и внедрять собственный ИИ в свои приложения, создавая пользовательские модели машинного обучения для распространенных сценариев, таких как анализ чувств, рекомендации, классификация изображений и многое другое!

И вот недавно был объявлен ML.NET 0.11. (ML.NET 0.1 был выпущен в // Сборке 2018). В этом выпуске и во всех последующих выпусках до версии 1.0 основное внимание будет уделено общей стабильности инфраструктуры, продолжая совершенствовать API, исправлять ошибки, уменьшать объем общедоступного API и улучшать документацию и образцы.

Обновления в версии 0.11

  • TensorFlow - это система машинного обучения с открытым исходным кодом, используемая для сценариев глубокого обучения (таких как компьютерное зрение и обработка речи). ML.NET поддерживает использование TensorFlow моделей, до этого поддерживались только сценарии классификации изображений. В версии 0.11 добавлена поддержка ввода текста, поэтому Вы можете использовать TensorFlow модели для анализа текста, такого как анализ настроения. Смотрите подробности и примеры в этом коде.
  • ONNX - это открытый и совместимый формат моделей, который позволяет использовать модели, сделанные в одной среде (например, scikit-learn, TensorFlow, xgboost и т.д.), для использования в другой среде (например, ML.NET). В ML.NET 0.11 Microsoft.ML.ONNX был переименован в Microsoft.ML.ONNXConverter, а Microsoft.ML.ONNXTransorm был переименован в Microsoft.ML.ONNXTransformer, чтобы обозначить различие между ONNX конвертацией и трансформацией.
Фундаментальные изменения в ML.NET 0.11

Для большего удобства, если Вы перемещаете Ваш код из ML.NET 0.10 в 0.11, Вы можете ознакомиться со списком критических изменений, которые повлияли на образцы.

Планируете перейти к сборке?

Если Вы используете ML.NET в Вашем приложении и хотите начать работу, Вы можете проконсультироваться с инженером ML.NET команды:

  • Получить помощь в успешной ML.NET реализации в Вашем приложении.
  • Оставить отзыв о ML.NET.
  • Продемонстрировать Ваше приложение и, возможно, разместить его на домашней ML.NET странице, в .NET блоге или на другом Microsoft ресурсе.

Заполните эту форму и оставьте Вашу контактную информацию, и кто-то из ML.NET команды обязательно свяжется с Вами.

Изучите образцы сообщества и поделитесь собственными!

В ML.NET Samples репозитории также есть специальная страница с образцами сообщества. Эти примеры не поддерживаются Microsoft, но они очень интересны и охватывают дополнительные сценарии, которые Вы еще точно не рассмотрели.

Вот скриншот текущих образцов сообщества:

Делитесь Вашими ML.NET демо версиями и образцами с сообществом, просто отправив в этот репозиторий “Request for your samples!” краткое описание и ссылку на Ваш GitHub репозиторий или публикации в блоге. В итоге, Ваш образец будет опубликован на странице ML.NET Community Samples.

Начните уже сейчас!

Если Вы еще этого не сделали, начните работать с ML.NET здесь.

Затем, подробно изучите другие ресурсы:

Ваши отзывы очень важны, сообщайте о проблемах и делитесь любыми предложениями или улучшениями в ML.NET GitHub репозитории. Помогите ML.NET команде сделать .NET платформу лучшей для машинного обучения.

Источник



Posted on 7. March 2019

Обновленное соглашение о разработке приложений для Microsoft Store: новая доля прибыли

 

5 марта команда Microsoft Store обновила Соглашение о разработке приложений для Microsoft Store (ADA). В следующий раз, когда Вы войдете в Вашу панель управления (Partner Center), Вам будет предложено повторно принять соглашение о разработке, прежде чем Вы сможете продолжить работу с панелью.

Обновленное соглашение содержит новую структуру платежей в Microsoft Store, которая обеспечивает до 95 процентов дохода для разработчиков потребительских приложений. Чтобы получить полный 95-процентный доход, обязательно указывайте СИД в Ваших ссылках трафика.

Когда Microsoft приносит Вам новых пользователей с помощью других методов (отслеживаемых по СИД), например, когда пользователь устанавливает Ваше приложение с коллекции Microsoft Store, с помощью поиска в Microsoft Store или с помощью любых других опций, принадлежащих Microsoft, Вы получите 85 процентов дохода от этой покупки.

Если покупка не содержит СИД-идентификатор, в случае установки приложения с помощью веб-поиска, Вы получаете 95-процентный доход.

Новая структура оплаты применяется к покупкам приложений на всех ПК под управленим Windows 10, Windows Mixed Reality, Мобильных и Surface Hub устройствах. Новая структура не относится ко всем играм и любым покупкам на Xbox консолях.

Для получения полной информации о новой структуре оплаты см. Соглашение о разработке приложений для Microsoft Store. Чтобы увидеть обзор всех изменений, добавленных в этом обновленисоглашения, пожалуйста, ознакомьтесь с историей изменений

Источник



Posted on 28. February 2019

Обновление C# версий и C# инструментов

 

Начиная с Visual Studio 2019 Preview 4 и RC, будет настроен способ обработки C# версий в .NET инструментах.

Итоги изменений

Во-первых, были добавлены два новых значения языковой версии (LangVersion): LatestMajor и Preview. Вот как они соответствуют поддерживаемому на данный момент списку значений:

LangVersion - Значение

LatestMajor - Последняя поддерживаемая C# версия

Preview - Последний доступный предварительный просмотр языковой C# версии

Latest - Последняя поддерживаемая языковая  C# версия (включая дополнительную версию)

ISO-1 - C# 1.0/1.2

ISO-2 - C# 2.0

3 - C# 3.0

4 - C# 4.0

5 - C# 5.0

6 - C# 6.0

7 - C# 7.0

7.1 - C# 7.1

7.2 - C# 7.2

7.3 - C# 7.3

8.0 - C# 8.0

Если LangVersion не указана, значение по умолчанию будет определяется целевой структурой Вашего проекта. Если Вы нацелены на структуру предварительного просмотра, которая также имеет соответствующую C# версию предварительного просмотра, эта версия будет использоваться по умолчанию. Если Вы не нацелены на предварительный просмотр, то выбирается Latest.

C# 8.0 в предварительном просмотре

Следующие сценарии объясняют, как дефолтная C# версия будет интерпретироваться, пока C# 8.0 все еще находится в режиме предварительного просмотра.

Предварительный просмотр netcoreapp3.0 preview или netstandard2.1

Дефолтная языковая версия в этом сценарии будет в качестве предварительного просмотра. Функции C# 8.0, к которым у Вас есть доступ, полностью основаны на используемой Вами версии компилятора (и, следовательно, .NET SDK). При использовании будущих предварительных просмотров Вы сможете получить еще больше функций. При сборки .NET SDK проекта Вы увидете уведомление о том, что это все еще предварительный просмотр.

.NET Framework

Дефолтная языковая версия, выбранная в этом сценарии, является Latest. Использование любой C# 8.0 функции будет ошибкой компиляции. Инструменты Visual Studio предложат Вам быстрое исправление, которое может изменить языковую версию проекта или решения при обнаружении одной из этих ошибок. Поскольку для некоторых функций требуются базовые типы или функции времени выполнения, которые недоступны в .NET Framework, такие как Default Interface Members, Вы все равно можете получить ошибку при ориентировке на .NET Framework.

Многоцелевой предварительный просмотр netcoreapp3.0 или netstandard2.1 и .NET Framework

Для таргетинга предварительного просмотра netcoreapp3.0/netstandard2.1 языковой версией будет Preview. При сборке из .NET SDK выдается предупреждение. Для таргетинга .NET Framework языковая версия является Latest.

Explicit LangVersion

Если Вы эксплицитно установите LangVersion значение, оно будет работать, а ранее упомянутое дефолтное поведение будет игнорироваться.

Если C# 8.0 и .NET Core 3.0 - GA

В конце концов, C# 8.0 и .NET Core 3.0 будут выпущены в версии GA-качества. Вот как соответствующие значения LangVersion будут сопоставляться:

LangVersion - Значение

Latest - 8.0

LatestMajor - 8.0

Preview - Еще не определен

Проекты, в которых не указана LangVersion, будут обрабатываться так, как если бы они были Latest, а C# 8.0 была бы GA.

Если Вы создали проект для C# 8.0 предварительного просмотра с таргетингом на предварительный просмотр .NET Core 3.0 или .NET Standard 2.1, а также не указали LangVersion, это будет так, как если бы Latest уже выбрано. Вы не получите доступ к Preview ни в каком сценарии, если C# 8.0 и .NET Core 3.0 будут GA.

Во время написания кода нету предварительного просмотра C#, когда C# 8.0 - GA. В дальнейшем, предварительный просмотр будет доступен, Вы сможете прочитать об этом в будущих блог постах.

Основная причина

До этого момента дефолтная C# версия, используемая в Visual Studio, была эквивалентна LatestMajor. Это было проблематично по двум причинам:

 

  1. C# теперь развертывается между циклами Visual Studio, но новые проекты в Visual Studio по-прежнему будут использовать более старую C# версию по умолчанию.
  2. Предварительный просмотр C# 8.0 является лучшим выбором для проектов, нацеленных на предварительный просмотр .NET Core 3.0, но раньше не было никакой возможности сделать его по умолчанию без того, чтобы сделать его по умолчанию для проектов, которые не нацелены на предварительный просмотр .NET Core 3.0.

 

В целом, C# продолжает развертываться и выпускать еще больше функций, которые нацелены на будущую версию .NET Core, где Вы сможете использовать эти функции как можно удобнее. Это также позволит использовать эти функции на ранних этапах их жизненного цикла, увеличивая интервал времени, в течение которого Ваши отзывы и пожелания могут влиять на их разработку.

Поддержка и совместимость функций предварительного просмотра

Использовать функции предварительного просмотра C# 8.0 в выпущенной Visual Studio 2019 версии не так просто, поскольку существуют проблемы поддержки и совместимости функций предварительного просмотра и уже выпущенных функций:

 

  • Любая функция или поведение версии C# 7.3 и ниже полностью поддерживается и полностью совместима.
  • Любая функция предварительного просмотра C# 8.0 не поддерживается.
  • Нет гарантии совместимости от одного предварительного просмотра C# 8.0 к другому.

 

В целом, если Вы используете предварительный просмотр C# 8.0 в выпуске Visual Studio 2019, некоторые функции и их работа могут изменяться с настоящего момента до полного официального выпуска C# 8.0.



Posted on 26. February 2019

.NET Core 1.0 и 1.1 перестанут работать 27 июня 2019 года

.NET Core 1.0 был выпущен 27 июня 2016 года, а .NET Core 1.1 был выпущен 16 ноября 2016 года. .NET Core 1.0 поддерживается в течение трех лет, как LTS-версия. .NET Core 1.1 входит в тот же период времени, что и .NET Core 1.0. .NET Core 1.0 и 1.1 перестанут поддерживаться 27 июня 2019 года, спустя три года после первоначального выпуска .NET Core 1.0.


С 27 июня 2019 года обновления .NET Core больше не будут включать обновленные пакеты или изображения контейнеров для .NET Core 1.0 и 1.1. Вы должны заранее запланировать обновление с .NET Core 1.x до .NET Core 2.1 или 2.2.

Обновление до .NET Core 2.1

Поддерживаемый путь обновления .NET Core 1.x приложений через .NET Core 2.1 или 2.2. Инструкции по обновлению можно найти в этих документах:
Примечание. Документация по переходу с .NET Core 2.0 на 2.1, в равной степени применима к переходу с .NET Core 1.x на 2.1.

.NET Core 2.1 является выпуском долгосрочной поддержки (LTS). Рекомендуется сделать .NET Core 2.1 Вашим новым стандартом для .NET Core разработки, особенно для приложений, которые не часто обновляются.

По состоянию на 1 октября 2018 года .NET Core 2.0 уже вышел из строя. Важно перенести приложения как минимум на .NET Core 2.1.

Политика поддержки Microsoft

У Microsoft есть политика поддержки для .NET Core. Она включает в себя политики для двух типов релизов: LTS и текущего.

.NET Core 1.0, 1.1 и 2.1 - это LTS версии. .NET Core 2.2 - это текущая версия.
  • LTS версии рассчитаны на долгосрочную поддержку. Они включали в себя функции и компоненты, которые были стабилизированы, требуя нескольких обновлений в течение более длительного срока поддержки. Эти версии являются хорошим выбором для размещения приложений, которые Вы не собираетесь обновлять.
  • Основываясь на отзывах, Текущие версии обладают новыми функциями, которые могут перенести будущие изменения. Эти версии станут хорошим выбором для приложений, которые находятся в активной разработке, и предоставят Вам доступ к последним функциям и улучшениям. Вам нужно обновиться к более новым выпускам .NET Core, чтобы оставаться в поддержке.
Оба вида выпусков получают исправления критических ошибок на протяжении всего своего жизненного цикла для обеспечения безопасности, надежности или для добавления поддержки для новых версий операционной системы. Вы должны быть в курсе последних событий, чтобы получить поддержку.

 .NET Core политика жизненного цикла поддерживаемых ОС определяет, какие версии Windows, macOS и Linux поддерживаются для каждого .NET Core выпуска.