Posted on 18. November 2018

Официальная поддержка Windows 10 для ARM разработки

Наступил потрясающий день для команды Windows 10 по развитию ARM. В открытом Visual Studio выпуске 15.9 у разработчиков появился официально поддерживаемый SDK и инструменты для создания 64-битных ARM (ARM64) приложений. Кроме того, Microsoft Store теперь официально принимает заявки на приложения, созданные на основе ARM64 архитектуры.

Эта новость появилась очень кстати, так как партнеры Lenovo и Samsung предлагают новую Windows 10 систему на ARM устройствах с Qualcomm Snapdragon 850 процессором. Эти ARM64 устройста второго поколения дают разработчикам еще больше вычислительных мощностей, обеспечивая при этом беспрерывную работу от батареи, которую ожидают пользователи от ARM на Windows 10. Как и ARM64 устройства первого поколения, они такие же тонкие, легкие, быстрые и разработаны с возможностью мгновенного подключения к 4G LTE, а также способны работать в широкой экосистеме Windows приложений благодаря x86 уровню эмуляции.

Сегодня разработчики могут использовать Visual Studio 15.9 для перекомпиляции приложений – как UWP, так и C ++ Win32 – для работы в Windows 10 на ARM устройствах. Нативный запуск позволяет приложениям в полной мере использовать преимущества вычислительной мощности и функциональности Windows 10 на ARM устройствах, что обеспечивает лучшее взаимодействие с пользователями.

Инструкции

Еще в мае Microsoft задокументировали ряд шагов, необходимых для ARM64 сборки с использованием инструментов предварительного просмотра. С официальной поддержкой в Visual Studio это стало намного проще.

Для начала обновите Вашу систему до Visual Studio 15.9. Если Вы собираетесь создавать приложения ARM64 C ++ Win32, убедитесь, что отдельный компонент «Visual C ++ компиляторы и библиотеки для ARM64» установлен, как показано ниже:

После обновления для новых UWP проектов Вы увидите ARM64 в качестве доступной конфигурации сборки.

Для существующих проектов или для C ++ Win32 проектов добавьте ARM64 конфигурацию в свою редакцию:

  1. Щелкните правой кнопкой мыши на «Solution» и выберите «Properties», затем перейдите в «Configuration Properties» и выберите «Configuration Manager».
  2. В разделе «Active solution platform» выберите «» и назовите его ARM64. Скопируйте настройки из «ARM» или «x64» и установите флажок для создания новых платформ проектов.

ажмите build, и у Вас появятся иметь готовые к запуску ARM64 бинарники. Обратите внимание, что если в Вашем проекте среды выполнения перечислены в project.json файле, в список Вам также может понадобиться добавить «win10-arm64-aot» для успешного восстановления nugget пакетов.

Для настройки Вашего приложения можно использовать удаленную отладку, которая полностью поддерживается в ARM64. Загрузку и инструкции можно найти в разделе «Remote Debugging» на сайте docs.microsoft.com. Вы также можете создать пакет для установки приложений или напрямую скопировать двоичные файлы на Windows 10 устройство на ARM, чтобы запустить Вашу программу.

В Store теперь позволяется размещать ARM64 UWP приложения, как C ++, так и .NET Native. Вы также можете использовать Desktop Bridge (инструкции Вы легко найдете на сайте docs.microsoft.com) для упаковки двоичных ARM64 файлов в пакет, который можно отправить в Store. И, как всегда, Вы также можете разместить на своем веб-сайте выделенные версии ваших Win32 приложений для ARM64 или интегрировать ARM64 в существующие мульти-архитектурные программы для установки.

В заключение

С новой Windows 10 на ARM устройствах, оснащенных более мощными процессорами, ARM64 платформа продолжает развиваться и совершенствоваться. Выпуск Visual Studio 15.9 также продолжает улучшаться, и команда Microsoft всячески приближает тот момент, когда разработчики смогут использовать все преимущества этих инструментов.

Чтобы получить ответы на любые вопросы или оставить отзыв, перейдите на страницу разработки Windows 10 на ARM по адресу http://aka.ms/Win10onARM или оставьте комментарии ниже.

Источник



Posted on 18. November 2018

Встречайте ML.NET 0.7 (Машинное обучение .NET)

https://blogs.msdn.microsoft.com/dotnet/2018/11/08/announcing-ml-net-0-7-machine-learning-net/

Встречайте ML.NET 0.7 (Машинное обучение .NET)

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

В этом блоге расматриваются следующие темы касательно ML.NET 0.7 выпуска:

Расширенная поддержка для выполнения рекомендаций с помощью Matrix Factorization

Рекомендательные системы позволяют создавать список предложений для продуктов в каталоге, песнях, фильмах и т. д. Команда Microsoft улучшила поддержку создания систем рекомендаций в ML.NET, добавив матричную факторизацию (MF). Это общий подход к рекомендациям, когда Вы можете получить данные о том, как пользователи оценивают элементы в Вашем каталоге. Например, Вы можете знать, как пользователи оценивали некоторые фильмы. Благодаря этому Вы можете предложить другие фильмы для дальнейшего просмотра.

Microsoft добавили MF в ML.NET, потому что он значительно быстрее, чем Field-Aware Factorization Machines (добавлены в ML.NET 0.3), и он может поддерживать рейтинги, которые являются непрерывными числовыми оценками (например, 1-5 звездочек) вместо логических значений («Понравилось» или «Не понравилось»). Несмотря на то, что был добавлен MF, Вы все равно можете использовать FFM, если хотите воспользоваться другой информацией, которую пользователь присваивает элементу (например, жанр фильма, дата выпуска фильма, профиль пользователя). Более подробное обсуждение различий можно найти здесь.

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

MF ML.NET использует LIBMF.

Сценарии обнаружения аномалий - обнаружение необычных событий

Обнаружение аномалий позволяет идентифицировать необычные значения или события. Этот инструмент используется в таких случаях, как обнаружение мошенничества (выявление подозрительных транзакций по кредитным картам) и мониторинг сервера (выявление необычной активности).

ML.NET 0.7 позволяет обнаруживать два типа аномального поведения:

  • Обнаружение скачков: скачки относятся к внезапным временным скачкам в значениях входных данных. Они могут проявляться из-за сбоев в работе, кибератак, вирусного веб-контента и т. д.
  • Обнаружение точки изменения: точки изменения отмечают начало более стойких отклонений в поведении данных. Например, если продажи продукта относительно постоянны и становятся более популярными (ежемесячные продажи удваиваются), появляется точка изменения.

Эти аномалии могут быть обнаружены на двух типах данных с использованием различных ML.NET компонентов:

  • IidSpikeDetector и IidChangePointDetector используются для данных, принадлежащих одному стационарному распределению (каждая точка данных не зависит от предыдущих данных, например, количество ретвитов каждого твита).
  • SsaSpikeDetector и SsaChangePointDetector используются для данных, содержащих компоненты сезонности/тренда (возможно, упорядоченные по времени, например, продажи продукта)

Пример кода с использованием обнаружения аномалий в ML.NET можно найти здесь.

Улучшенная настройка ML.NET pipelines


ML.NET предлагает множество модификаций данных (например, обработка текста, изображений, категориальных функций и т. д.). Тем не менее, для некоторых случаев использования необходимы специфичные преобразования, например, вычисление косинусного сходства между двумя текстовыми столбцами. Теперь Microsoft добавили поддержку пользовательских преобразований, чтобы Вы могли легко включить пользовательскую бизнес-логику.

CustomMappingEstimator позволяет Вам писать Ваши собственные методы для обработки данных и переносить их в ML.NET pipelines. Вот как это будет выглядеть в pipeline:

 

var estimator = mlContext.Transforms.CustomMapping(MyLambda.MyAction, "MyLambda")
    .Append(...)
    .Append(...)

 

Ниже приведено определение того, как будет вести себя это пользовательский маппинг. В этом примере преобразовывается текстовая метка (“spam” или “ham”) в логическую метку (true или false).

public class MyInput
{
    public string Label { get; set; }
}

public class MyOutput
{
    public bool Label { get; set; }
}

public class MyLambda
{
    [Export("MyLambda")]
    public ITransformer MyTransformer => ML.Transforms.CustomMappingTransformer(MyAction, "MyLambda");

    [Import]
    public MLContext ML { get; set; }

    public static void MyAction(MyInput input, MyOutput output)
    {
        output.Label= input.Label == "spam" ? true : false;
    }

Более обширный пример CustomMappingEstimator можно найти здесь.

Поддержка x86 в дополнении к x64

В сборке ML.NET Вы сможете использовать модели машинного обучения на устройствах с архитектурой x86 / 32-bit (пока только для Windows). Ранее ML.NET был ограничен x64 устройствами (Windows, Linux и Mac).

Обратите внимание, что некоторые компоненты, основанные на внешних зависимостях (например, TensorFlow), недоступны в x86-Windows.

NimbusML - экспериментальные привязки Python для ML.NET


NimbusML предоставляет экспериментальные привязки Python для ML.NET. Microsoft получили отзывы от внешних сообществ и внутренних групп разработчиков относительно использования нескольких языков программирования. Microsoft стремится к тому, чтобы как можно больше людей пользовались преимуществами ML.NET, а командам было легче работать вместе. ML.NET не только позволяет ученым использовать модели машинного обучения в Python (с компонентами, которые также могут использоваться в scikit-learn pipelines), но также позволяет сохранять модели, которые могут быть использованы в .NET приложениях через ML.NET (здесь Вы найдете более подробную информацию).

Если Вы пропустили: оставьте свой отзыв о новом API

ML.NET 0.6 представил новый набор API для ML.NET, которые обеспечивают повышенную гибкость. Команда Microsoft хочет сформировать долгосрочный API для ML.NET. С этой целью API в версии 0.7 и последующих версиях постоянно улучшаются, и Вы можете в этом помочь, оставив свои отзывы.

Хотите принять участие? Оставьте Ваш отзыв на ML.NET GitHub!

Дополнительные источники:

 

  • Наиболее важные моменты ML.NET представлены здесь.
  • Руководство по использованию API данных для различных существующих и новых сценариев можно найти здесь.
  • Справочник по API ML.NET со всеми документированными API Вы найдете здесь.

 

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


Если у Вас еще нету новой сборки, скачайте ML.NET здесь. Затем изучите другие полезные ресурсы:

 

 

Microsoft с нетерпением ждет ваших отзывов и ппредложений по улучшению ML.NET на GitHub.

Источник



Posted on 16. November 2018

XAML Islands – Глубокое погружение – Часть 2

Добро пожаловать во 2-ю часть изучения XAML Islands. Данная тема была затронута в первом блог посте: как работает инфраструктура XAML Islands и как ее использовать, а также то, как Вы можете использовать привязку в элементах управления Island.

Во второй части кратко рассматривается, как использовать обертку NuGet пакетов и как размещать Ваши собственные элементы управления в Win32 приложениях.

Пакеты

Создание пользовательских пакетов для UWP элементов управления может быть трудоемкой задачей, и Вы, вероятно, не захотите с этим работать. Для простых вещей, таких как кнопки, этот процесс может быть достаточно легким, но разработка более сложных элементов управления может занять довольно много времени. Чтобы упростить Вам задачу, были сформированы некоторые из самых востребованных элементов управления! Текущая итерация предоставляет вам InkCanvas, InkToolbar, MapControl и MediaPlayerElement. Теперь, если Ваше WPF приложение работает под управлением Windows 10, Вы можете использовать простой и удобный UWP InkCanvas с InkToolbar панелью внутри Вашего WPF или WinForms приложения! Вы даже можете применять InkRecognizer для обнаружения фигур, букв и цифр на основе штрихов InkCanvas.

Сколько кода требуется для интеграции с InkCanvas? Совсем немного!

 

 

    

 

    
        
        
    
    
    

   
    
    
    

 

В основном это просто Grid определение, поэтому были добавлены всего две строки кода. И это может предоставить вашим пользователям удивительный опыт, который обеспечивается XAML Islands и новыми UWP элементами управления.

Пользовательский контроль – Управляемый код

Все, о чем говорилось ранее, относится к элементам управления платформы. Но что, если Вы захотите упаковать Ваш собственный пользовательский UWP UserControl и загрузить его с помощью WindowsXamlHost? Будет ли это работать? Да! Когда XAML элементы управления создаются в контексте острова, то ресурсы обрабатываются рационально, а это означает, что ms-appx протокол просто работает, даже если Вы не запускаете Win32 процесс внутри упакованного APPX пакета. Корень ms-appx протокола отобразит его ход к исполняемому Вами пути.

На данный момент Вы не можете просто создать UWP библиотеку и ссылаться на нее в своем WPF или WinForms проекте, поэтому весь процесс использования настраиваемого элемента управления выполняется вручную. Когда Вы разрабатываете UWP приложение (например, C#), Вы компилируете, используя разновидность UWP .NET Core Framework, а не .NET Full Framework. Чтобы Ваш пользовательский элемент управления работал в WPF или WinForms приложении, основанном на .NET Full Framework, необходимо перекомпилировать артефакты UWP библиотеки с помощью набора инструментов .NET Full Framework, скопировав их в Ваш WPF / WinForms проект. Здесь Вы найдете документацию, посвященную данному вопросу, которая описывает все необходимые шаги. Помните, что Ваш WPF / WinForms проект по умолчанию не предназначен для какой-либо конкретной Windows 10 версии, поэтому Вам нужно вручную добавить ссылки на некоторые WinMD и DLL файлы. Информацию об этом Вы можете найти в разделе «Расширение Вашего настольного приложения для Windows 10», в котором описано, как использовать Windows 10 API-интерфейсы в Desktop Bridge Win32 приложении. Ссылаясь на WinMD и DLL, Вы также сможете создавать артефакты этой компиляции из UWP библиотеки в WPF / WinForms проекте (.NET Full Framework).

ПРИМЕЧАНИЕ. Существует совершенно другой процесс для нативного кода (C ++ / WinRT), подробности которого будут рассмотрены в другой статье.

Вы также не можете создавать эти артефакты, какими они есть. Вы должны сообщить системе, что нужно отключить отображение информации о типе и x:Bind диагностику. Это связано с тем, что сгенерированный код не будет совместим с .NET Framework. Его можно сделать рабочим, добавив следующие свойства в Ваш проект UWP библиотеки:

 


  false
  false

 

Вы можете просто вручную скопировать необходимые файлы в WPF / WinForms проект, но тогда у вас будет несколько его копий. После сборки процесс можно автоматизировать следующим образом, согласно этой документации. Однако, если Вы попытаетесь таким образом упаковать Ваше приложение в APPX пакет, это не сработает, т.к. файлы не будут скопированы. С целью улучшения процесса был создан специальный MSBuild фрагмент. Преимущество Microsoft Build фрагмента заключается в том, что он добавляет CSharp файлы, а также результаты компиляции из библиотеки, в нужное место. Все, что вам нужно сделать, – это скопировать этот скрипт.

ПРИМЕЧАНИЕ. Имейте в виду, что данный фрагмент будет в будущем обрабатываться с помощью Visual Studio, поэтому Вам придется удалять любое решение каждый раз, когда это это будет происходить.

 

 

  ..\$(IslandLibrary)
  $([System.IO.Path]::GetFileName($(IslandPath.TrimEnd('\'))))


  


  
    $(IslandDirectoryName)\%(RecursiveDir)
  


  
  


  
    $(IslandDirectoryName)\%(RecursiveDir)\%(Filename)%(Extension)
    PreserveNewest
  

Этот Microsoft Build фрагмент копирует файлы, основываясь на пути к IslandLibrary свойству, в проект, в котором он находится. IslandLibraryCompile компонент включает в себя:

  • Все .xaml.cs файлы, которые позволят Вам повторно использовать код вне Ваших пользовательских элементов управления.
  • Все сгенерированные .g.i.cs и .g.cs файлы. Все данные под префиксом «x:» на самом деле являются сгенерированным кодом, и именно в этом случае данный сгенерированный код и собирается. Таким образом, файлы являются частичными классами, которые на самом деле содержат поля всех x: имен внутри соответствующих им XAML файлов, а также они содержат код для соединения этих полей с их фактическими примерами. Они также ссылаются на .XAML файл, который будет загружаться при вызове InitializeComponentmethod метода, обычно в начале конструктора элемента управления. IslandLibraryContent контент включает в себя:
  • Все файлы содержимого Вашего проекта. Копируются все файлы, необходимые для запуска Вашего проекта, такие как PNG, JPG и т. д. Он скопирует их в нужные папки, такие как ms-appx:///will “just work”™. Есть другие способы сделать это, но именно этот вариант покроет основные потребности наиболее распространенных сценариев.
  • Все сгенерированные .xbf. XBF файлы расшифровываются как двоичный XAML формат, и это скомпилированная версия ваших .xaml файлов, они загружаются намного быстрее, чем XAML файлы (например, без синтаксического анализа XML). Даже если .g.i.cs файлы могут выглядеть так, как будто они пытаются загрузить .xaml файлы, для повышения производительности XAML инфраструктура всегда пытается сначала загрузить .XBF файлы. Только если она не сможет их найти, то попытается загрузить .xaml файлы. Этот MSBuild скрипт не копирует .xaml файлы, поскольку они не дают никаких преимуществ по сравнению с .XBF.
Чтобы обеспечить оптимальный опыт взаимодействия с разработчиками, необходимо также добавить зависимость проекта уровня решения от WPF / WinForms проекта к UWPLibrary проекту. Это означает, что каждый раз, когда Вы изменяете какой-либо из файлов UWP библиотеки, Вы можете просто создать WPF / WinForms проект, и новейшие артефакты будут находиться уже в правильном порядке компиляции проекта. Все эти шаги исчезнут в будущей версии Visual Studio, когда инструменты будут обновлены. Эти шаги описаны здесь.

С включенными в инфраструктуру сборки проекта файлами  и с добавленной зависимостью сборки, Ваш WindowsXamlHost должен работать нормально. При условии, что Вы установите полное имя Вашего пользовательского элемента управления для InitialTypeName. Вы можете ознакомиться с примером проекта здесь.

С помощью MSBuild фрагмента должны функционировать даже Ваши приложения, упакованные с помощью шаблона «Проект упаковки Windows приложений». Более детальную информацию Вы можете прочесть в этой статье

Ограничения в Октябре 2018

Этот выпуск находится на рассмотрении, поэтому код, который Вы видите здесь, не является готовым к использованию. Например:
  • Wrapped Controls правильно реагирует на изменения в DPI и масштабе.
  • Инструменты доступности, которые легко работают с приложением и размещенными элементами управления.
  • Inline Inking, @Places и @People для элементов управления вводa.
Для полного ознакомления, ознакомьтесь с документами.
Что дальше?

Только что выпущенная версия не является окончательной стабильной версией. Команда Microsoft все еще активно работает над улучшением XAML Islands. Поработайте с продуктом и оставьте отзыв в разделе User Voice или по адресу XamlIslandsFeedback@microsoft.com, но в настоящее время Microsoft не рекомендует его для производственного использования.

Источник



Posted on 8. October 2018

Какая у Вас стратегия монетизации?

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

Microsoft Store предлагает различные способы монетизации Вашего приложения. В этом блог посте описаны 4 самых крупных метода и их польза для Вас.

Базовая цена

Базовая цена - это разовая транзакция: Вы предлагаете продукт, и пользователь платит за него. Microsoft Store позволяет Вам изменить базовую цену в любое время для любого рынка, чтобы Вы всегда могли экспериментировать с Вашими ценами и следить за реакцией Вашей целевой аудитории.

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

На примере ниже, Вы можете увидеть, что взимание базовой цены является наиболее используемым способом монетизации в Microsoft Store.

Внутренние покупки

Внутренние покупки - это микротранзакции, которые позволяют клиентам приобретать дополнительный контент внутри приложения. Эти небольшие оплаты могут увеличивать Вашу прибыль - отчет Gartner Research показал, что клиенты тратят на 24% больше на внутренних покупках, чем на покупку самого приложения. Как только клиент видит цену, он заинтересован в оплате.

Дополнительный контент - это основа внутренних покупок. Чем дольше Ваши клиенты используют приложение, тем больше вероятность того, что они приобретут новый дополнительный контент.

Внутренние покупки - это самый популярный способ монетизации игр в Microsoft Store. См. пример ниже.

Подписки

Используя подписки, клиенты регулярно оплачивают доступ к Вашему приложению или дополнительному контенту внутри приложения. Всё, что нужно - выбрать сумму, период времени, и указать платный контент.

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

Мобильная реклама

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

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

В заключение…

Независимо от того, какой способ монетизации Вы выберете, обязательно ознакомьтесь с особенностями оплаты и прибыльности. Оставляйте Ваши комментарии ниже и расскажите, какие способы монетизации Вы используете!

Источник



Posted on 6. October 2018

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

Один из часто задаваемых вопросов: «Как привлечь клиентов и увеличить количество оценок и отзывов в приложении?»

Отзывы пользователей важны не только для разработки продукта, они также существенно влияют на приобретение Вашего продукта. Итак, что можно сделать, кроме проверки отзывов, чтобы повысить оценку и получать больше отзывов и фидбеков?

6 советов, которые Вам помогут:

Просите отзывы

Будьте настойчивыми! Спрашивайте пользователей об их мнение и опыте использования. 

1) Спрашивайте в приложении

Добавьте в Ваше приложение окно оценки и голосования или же напрямую запускайте страницу оценок и отзывов в Microsoft Store. Вы также можете использовать Feedback Hub для отзывов Ваших пользователей.

2) Спрашивайте с помощью push-уведомлений

 

Отправляйте toast- или push-уведомления с просьбой оставить оценку и отзыв. Чтобы привлекать только тех пользователей, которые еще не оценили Ваше приложение, сначала создайте сегмент с определением «Has rated == false», а затем настройте push-уведомления.


 

3) Спрашивайте в Microsoft Store

Добавьте просьбу оставить оценку и отзыв в разделе «Что нового в этой версии» или в описании Вашего продукта в Microsoft Store. После того, как Вы расскажете об обновлениях, сообщите пользователям, что Вы ждете их отзывов. К примеру: «Пожалуйста, помогите улучшить приложение, оставьте Вашу оценку и отзыв».

Отвечайте пользователям

Ответы на отзывы дают понять, что Вы заботитесь о пользователях и продолжаете улучшать Ваше приложение.

4) Отвечайте на отзывы в Store 

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

5) Отвечайте прямо на отзыв

Хотите отправлять конкретные комментарии? Используйте Feedback Hub в Вашем приложении. Вы можете отвечать публично или приватно и уведомлять о состоянии любой жалобы пользователя, над которой Вы работаете.

Ваши ответы должны быть краткие (не больше 1000 символов), вежливые и точные. Подробнее об ответах на отзывы читайте здесь.

Отвечая на отзывы и письма, делайте Ваши ответы вежливыми и уважительными, потому что пользователи имеют право подать жалобу в Microsoft Store на некоректный и оскорбительный ответ.

6) Работайте над улучшениями

Если несколько пользователей предлагают добавить или исправить одну и ту же функцию, рассмотрите эту просьбу для выпуска в новой версии, и когда Вы это сделаете, объявите об этом в описании приложения или в разделе «Что нового в этой версии», чтобы пользователи знали, какие проблемы были устранены. Вы также можете сказать, что проблемы были выявлены на основе отзывов, и попросить пользователей поделиться их мнением.

Эти советы помогут Вам сообщить пользователям о важности их мнения!



Posted on 26. August 2018

Windows Community Toolkit, версия 4.0

Windows Community Toolkit достиг уже более 1 миллиона загрузок во всех nuget пакетах. Это действительно важный этап для сообщества и они рады презентовать новую версию Windows Community Toolkit 4.0. Благодаря вкладу Windows сообщества это обновление содержит несколько новых дополнений и улучшений, а именно:

  • Новый DataGrid с Fluent дизайном для всех UWP разработчиков
  • Два новых Microsoft Graph элемента. PowerBIEmbedded позволяет встраивать PowerBI панели управления в UWP приложения, а PlannerTasksList позволяет пользователям работать с задачами Microsoft Planner
  • Twitter, LinkedIn и Microsoft Translator вошли в пакет .NET Standard сервисов и доступны более широкому кругу разработчиков, в том числе Desktop и Xamarin разработчикам
  • Strong-name пакеты для разработчиков, которым необходима уникальная подпись сборки
  • Поддержка темной темы для образцов приложений и выбор темы для каждого образца

Это лишь часть обновлений, добавленных в этой версии. Для ознакомления с полным списком перейдите на страницу GitHub. А теперь рассмотрим некоторые из них более подробно.

DataGrid с Fluent дизайном 

Предварительный выпуск DataGrid с Fluent дизайном уже был добавлен для Windows 10 в версии 3.0. За последние пару месяцев было добавлено еще несколько функций для улучшения надежности и доступности DataGrid элемента. А теперь он стал общедоступным.

DataGrid - это надежный элемент управления, который предоставляет гибкий способ отображения данных в строках и столбцах. Он сохраняет модель программирования для DataGrid от Silverlight и WPF, поэтому она будет знакома XAML разработчикам, которые использовали DataGrid в старых XAML технологиях. Теперь разработчики могут создавать гибкую табличную визуализацию данных с редактированием, валидацией и формированием данных с помощью нескольких простых строк кода в Windows 10:

 



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

Новые Microsoft Graph элементы

В инструментарий 3 версии была добавлена новая категория UWP элементов управления, которая делает Microsoft Graph доступным для разработчиков. Используя всего несколько строк кода, разработчики могут добавлять пользовательский интерфейс, который предоставит пользователям возможность доступа в Microsoft Graph, поиска сотрудников и друзей, просмотр SharePoint файлов и многое другое. В версии 4.0 добавлены два новых Microsoft Graph элемента: PlannerTaskList и PowerBIEmbedded.

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

Элемент PowerBIEmbedded позволяет разработчикам встраивать обширную панель управления PowerBI непосредственно в приложения и позволяет пользователям напрямую взаимодействовать с данными.

Сервисы Twitter, LinkedIn и Microsoft Translator в .NET Standard

Инструментарий Windows Community Toolkit содержит API, которые значительно упрощают работу с такими веб-сервисами, как Twitter, OneDrive, LinkedIn, Microsoft Graph и многое другое. Изначально он был доступен только для UWP разработчиков, но с этим обновлением большинство сервисов перешли в пакет .NET Standard (Microsoft.Toolkit.Services). Эти сервисы теперь доступны для любых фреймворков, .NET Standard 1.4 и выше, включая UWP, .NET Framework (WPF и WinForms), Xamarin, .NET Core и многие другие.

Начало работы

Для начала работы с новой версией, ознакомьтесь с этими инструкциями, или установите Windows Community Toolkit Sample App из Microsoft Store. Если у Вас есть комментарии, оставляйте их на GitHub! Чтобы присоединиться к беседе в Twitter, используйте хэштег #windowstoolkit.

 

Источник



Posted on 21. August 2018

Важные даты, связанные с приложениями на платформе Windows Phone 8.x и ниже, и Windows 8/8.1 пакетов, опубликованных в Microsoft Store

В связи с эволюцией Windows устройств, Microsoft Store скоро перестанет публиковать новые приложения для Windows Phone 8.x или более ранних версий, а также Windows 8/8.1 (XAP и APPX) пакеты. Вскоре Microsoft запретит распространять обновления для приложений на платформе Windows Phone 8.x и ниже, и для Windows 8/8.1 устройств; обновления будут доступны только пользователям Windows 10 устройств.

Обратите внимание на следующие даты, чтобы Вы могли эффективно планировать Вашу разработку:

 

  • 31 октября 2018 года - Microsoft перестанет принимать публикации новых приложений для Windows Phone 8.x или более ранних версий, а также Windows 8/8.1 (XAP или APPX) пакеты
    • Это не повлияет на уже существующие приложения для платформы Windows Phone 8.x или более ранних версий и / или Windows 8/8.1. Вы можете продолжать обновлять эти приложения, как описано ниже.
  • 1 июля 2019 года - Microsoft прекратит распространение обновлений для приложений на устройствах с Windows Phone 8.x и ниже.
    • Вы по-прежнему сможете публиковать обновления для всех приложений (в том числе для Windows Phone 8.x и ниже), однако эти обновления будут доступны только для Windows 10 устройств.
  • 1 июля 2023 года - Microsoft прекратит распространение обновлений для Windows 8 / 8.1.
    • Вы по-прежнему сможете публиковать обновления для всех приложений (в том числе с Windows 8 / 8.1 пакетами), однако эти обновления будут доступны только для Windows 10 устройств.

 

 

Microsoft рекомендует Вам изучить, как можно переносить существующее приложение на Универсальную Платформу Windows (UWP), где требуется всего лишь один Windows 10 пакет, который позволит Вашим клиентам устанавливать приложение на все виды устройств. Здесь Вы можете узнать больше о UWP приложениях.

Источник




Posted on 10. August 2018

Совместимы ли Ваши Windows Forms и WPF приложения с .NET Core 3.0?

Загрузить Portability Analyzer (2,37 МБ)

Совместимы ли Ваши Windows Forms и WPF приложения с .NET Core 3.0?

В сборке 2018 Microsoft объявили о добавление поддержки Windows приложений (Windows Forms и Windows Presentation Framework (WPF)) для .NET Core 3.0. Теперь Вы сможете запускать новые или уже существующие Windows приложения в .NET Core и пользоваться всеми преимуществами .NET Core, такими как локальное развертывание приложений и улучшенная работа операционной системы.

Команда Microsoft хочет убедиться, что .NET Core 3.0 содержит все API, от которых зависит работа Ваших приложений. Чтобы узнать, какие API используются, был выпущен Portability Analyzer. Он будет сообщать о наборе API-интерфейсов, на которые ссылаются Ваши приложения и которые еще не доступны в NET Core 3.0. Этот список API будет отправлен в Microsoft и поможет определить приоритеты добавления новых API в будущие сборки.

Загрузите и запустите PortabilityAnalyzer.exe в Ваших Windows Forms и WPF приложениях, чтобы узнать, совместимы ли они с .NET Core 3.0. Это поможет сформировать список необходимых API в .NET Core 3.0.

Portability Analyzer

Portability Analyzer - это инструмент с открытым исходным кодом, который упрощает процесс переноса, определяя API-интерфейсы, которые нельзя перемещать между различными .NET платформами. Этот механизм существует уже несколько лет как консольное приложение и Visual Studio расширение. Недавно Microsoft обновили его с Windows Forms интерфейсом, который Вы можете найти здесь. Выглядит он следующим образом.

Запуск анализатора поможет Вам с:

 

  1. Созданием электронной таблицы в Excel формате. С её помощью Вы получите данные об уровне совместимости Вашего проекта с .NET Core 3.0, включая конкретные API, которые в настоящее время не поддерживаются.
  2. Отправкой данной информации .NET команде в Microsoft, чтобы они могли определить, какие API нужны большинству пользователей.

 

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

Чтобы команда Microsoft знала, какие API-интерфейсы нужны пользователям, она просит Вас запустить анализатор. Вы, в свою очередь, увидите, насколько мобильны Ваши приложения, т.к. инструмент составляет список API-интерфейсов, на которые ссылаются Ваши сборки, и которые могут не поддерживаться в .NET Core 3.0.

Microsoft определит приоритетность добавления новых API в .NET Core 3.0 на основе собранной информации. Если в данных по важности представлены требования API Вашего приложения, команда Microsoft с легкостью поможет Вам. Пожалуйста, запустите Portability Analyzer и убедитесь, что Ваше приложение считывается.

Использование Portability Analyze

Следуйте инструкции по запуску.

  1. Распакуйте архив в любом месте на Вашем локальном диске.
  2. Запустите программу PortabilityAnalyzer.exe.
  3. В текстовом поле «Путь к приложению» введите путь к Windows Forms или WPF приложению, вставив строку пути или нажав кнопку «Обзор» и перейдя в нужную папку.
  4. Нажмите кнопку «Анализ».
  5. После завершения анализа Вы увидите отчет, насколько совместимо Ваше приложение с .NET Core 3.0. Его можно открыть в Excel, нажав кнопку «Открыть отчет».
Ниже приведен пример данных, которые Вы получите после запуска программы для популярного приложения Paint.NET:


Примечание: В Вашем отчете может быть вкладка «Недостающие сборки». Это означает, что анализатор не смог найти исходные сборки, на которые есть ссылки в Вашем приложении. Обязательно найдите их и добавьте в папку, которую проверяете. В противном случае Вы не получите полный анализ Вашего приложения.

Поиск проблемы

В настоящее время Portability Analyzer не может проверять сборки ресурсов (* .. resources.dll) и выдает следующие сообщения об ошибке:

 

Невозможно проанализировать.

Детали:

Обнаружение ссылок на сборку [Failed]

 

Не удается найти информацию о сборке для System.Object. Найдены следующие сборки Microsoft:

 

Команда Microsoft работает над устранением этой проблемы. Чтобы разблокировать проверку, пока исправление не станет доступно, Вы можете удалить файлы ресурсов из анализируемой папки.

Использование консольной версии

Если Вы хотите проверить несколько приложений, Вы можете запустить их одно за другим, как описано выше, или использовать консольную версию  Portability Analyzer.

Примечание: В результате Вы получите один отчет по всем приложениям. Если вы хотите получить отдельный отчет для каждого приложения, вы можете автоматизировать запуск с помощью двух механизмов: for in Batch и ForEach в PowerShell.

Чтобы запустить консольное приложение:

 

  1. Загрузите и распакуйте Console Portability Analyzer.
  2. В командной строке введите следующую информацию, указав несколько каталогов, библиотек или исполняемых файлов:
  [PathToApiPort]\ApiPort\net461\win7-x64\ApiPort.exe analyze -f [Directory1] -f [Directory2] -f [Directory3]

Например,

  C:\Downloads\ApiPort\net461\win7-x64\ApiPort.exe analyze -f first.dll -f second.dll -f third.dll

Сформированный в Excel (.xlsx) файле отчет, Вы можете найти в Вашем текущем каталоге.

В Заключение

Для того чтобы определить, насколько установленные на Вашем ПК приложения совместимы с NET Core 3.0, загрузите и используйте Portability Analyzer. Эта информация поможет Microsoft запланировать обновленный выпуск 3.0 и облегчит Вам подключение к .NET Core 3.0.

 

Загрузить Portability Analyzer (2,37 МБ)

Источник



Posted on 29. July 2018

Выпуск предварительной версии Windows UI Library!

Компания Microsoft объявила о первом выпуске предварительной версии Windows UI Library!

Windows UI Library (или WinUI) - это новый способ использования Fluent-элементов и стилей для создания Windows 10 UWP приложений с помощью NuGet пакетов.

Пакеты WinUI NuGet включают в себя новые популярные UWP XAML элементы и функции, которые поддерживаются на различных Windows 10 версиях, начиная с последних инсайдерских сборок и заканчивая Anniversary Update (1607).

Преимущества Windows UI Library

Раньше инфраструктура разработки UWP XAML приложений работала исключительно как часть Windows и SDK. Чтобы получить новые функции или исправления ошибок, приходилось ждать новой Windows версии. Более того, ждать, пока все пользователи обновят свою ОС.

Новый WinUI NuGet пакет(ы) обладает двумя основными преимуществами для разработчиков UWP XAML приложений:

 

  1. Вы можете сразу же создавать и отправлять UWP XAML приложения с новыми функциями: NuGet пакеты предназначены для работы на разных Windows 10 версиях, Вам больше не придется ждать, пока Ваши пользователи обновятся к новой ОС для того, чтобы использовать приложение с последними функциями.
  2. Это упрощает создание адаптивных приложений: Вам больше не нужно делать проверки версий или условную XAML разметку для использования элементов управления или функций при сборке в WinUI пакете приложения для нескольких Windows 10 версий.

 

О выпуске

Windows UI Library поддерживается командой Windows 10 SDK, которая учавствует в разработке и тестировании. Тем не менее, отгузка с помощью NuGet предоставляет больше гибкости в новых выпусках и обновлениях UWP XAML платформы.

Этот выпуск включает предварительные просмотры первых двух Windows UI пакетов:

 

  • Microsoft.UI.Xaml
  • Microsoft.UI.Xaml.Core.Direct

 

Эти предварительные пакеты, очень похожи на Windows Insider SDK. В будущий выпуск будут добавлены RTM версии этих пакетов, а также будут дополнительные функции и потрясающие изменения. Предварительные версии полностью функциональны для тестирования и оценки, но на данный момент рекомендуется использовать RTM-версии для разработки приложений.

Не все XAML платформы находятся в WinUI. В будущих версиях планируется перемещение XAML платформы на WinUI пакеты, а также переход процесса разработки на модель с открытым исходным кодом на GitHub.

Начало работы

Более подробную информацию об установке и использовании Windows UI Library Вы можете прочитать в этой документации:

 

 

NuGet пакеты для WinUI можно найти в NuGet Package Manager в Visual Studio или на странице пакетов:

 

 

В качестве наглядного примера, Вы можете использовать приложение Xaml Controls Gallery, доступное для бесплатной установки в Microsoft Store:

 

 

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

Компоненты Windows UI Library

1) Существующие элементы и функции с поддержкой различных Windows 10 версий

В состав Microsoft.UI.Xaml включены элементы, которые являются частью стандартного Windows 10 SDK, а также Fluent Design элементы, в том числе Acrylic, Reveal, и другие.

Например, приложения часто используют элемент управления TreeView для отображения и навигации по иерархическому списку. Новый элемент управления UWP Windows.UI.Xaml.Controls.TreeView был добавлен в Windows 10 как часть April 2018 Update (1803), поэтому необходимо установить April 2018 Update, прежде чем запускать приложения, которые его используют. Но не каждый пользователь сможет запускать эту Windows 10 версию, особенно в корпоративных средах, которые оценивают и развертывают обновления медленнее.

Однако с помощью WinUI, элемент управления TreeView также доступен как отдельный класс Microsoft.UI.Xaml.Controls.TreeView, который обеспечивает те же функции, что и стандартный Windows 10 SDK, но с дополнительными преимуществами:

1. Он работает в более широком диапазоне Windows 10 версий

2. Он содержит новые функции, которые еще не были выпущены в стандартной SDK версии

Приложения могут использовать как SDK версию по умолчанию, так и WinUI версию того же элемента. Но Вы также можете использовать WinUI-версию доступного элемента управления.

Более подробную информацию о содержимом пакета можно найти в документации:

 

 

2) Новые элементы управления

В Microsoft.UI.Xaml пакет также входят новые элементы управления, такие как CommandBarFlyout и MenuBar, которые будут добавлены в стандартный SDK в следующей Windows версии.

Предварительные версии пакетов могут также включать в себя ранние функции и элементы управления. Например, первая версия содержит некоторые элементы управления, такие как Repeater, Scroller и LayoutPanel: они доступны для использования, но всё еще улучшаются, и поэтому не будут добавлены в первый официальный выпуск WinMU RTM.

3) XamlDirect
Пакет Microsoft.UI.Xaml.Core.Direct - это предварительный выпуск новой автономной WinRT библиотеки для разработчиков кроссплатформенных приложений.

Он обеспечивает более ограниченный доступ к опциям XAML инфраструктуры, что повышает производительность процессора и набора компонентов для разработки кроссплатформенных приложений.

Этот выпуск уже доступен в Windows April 2018 Update и предыдущих Windows 10 версиях, но продолжает улучшаться в текущих RS5 инсайдерских сборках и будущих Windows 10 версиях!


Posted on 23. June 2018

Знакомство с WinAppDriver UI Recorder

Новый инструмент WinAppDriver UI Recorder с открытым исходным кодом теперь доступен для Windows Application Driver (WinAppDriver) сообщества. Этот инструмент позволит пользователям легко автомизировать UI тесты.

WinAppDriver - это инструмент для запуска автоматизированных тестов пользовательского интерфейса для любых Windows 10 приложений. Недавно был выпущен предварительный просмотр версии 1.1, с которым Вы можете ознакомиться подробнее здесь.

Что такое UI Recorder

Inspect был наиболее распространенным инструментом в сообществе WinAppDriver, который позволял пользователям выбирать UI элементы и просматривать данные их атрибутов. Не смотря на то, что Inspect выполняет свою целевую задачу по просмотру данных доступности, он все же отстает, когда речь заходит о поддержке сценариев, предназначенных специально для автоматизации пользовательского интерфейса, таких как возможность генерации XPath запросов.

В таких ситуациях инструмент WinAppDriver UI Recorder надеется заполнить имеющиеся пробелы Inspect и послужить его полезной альтернативой.

В первоначальном выпуске, инструмент UI Recorder позволит использовать два ключевых сценария:

1) Проверка UI элементов и извлечение их XPath-выражений

2) Генерация C# кода для определенных действий (щелчок мышью) при активном «Record»

  • Сгенерированный код можно вставить в папку UI Recorder Template для запуска WinAppDriver

Microsoft надеется, что с помощью этого инструмента Вы получите более простой и интуитивно понятный подход при написании сценариев автоматизации для WinAppDriver.

Как начать работу

Открытый исходный код UI Recorder доступен на странице WinAppDriver на GitHub. Для начала сборки и компиляции рекомендуется использовать Visual Studio 2017. После компиляции Вы можете сразу начать начать работу с UI Recorder.

В дополнение к общедоступному коду, Вы также можете скачать zip-архив в разделе GitHub Releases.

Использование UI Recorder

Инструмент UI Recorder предназначен для интуитивного и упрощенного пользовательского интерфейса, который разделен на две панели, как показано ниже:

UI Recorder отслеживает взаимодействие клавиатуры и мыши с интерфейсом приложения - UI действие. Когда запись активна, верхняя и нижняя панели динамически обновляются с различной информацией UI элементов каждый раз, когда происходит новое UI действие. На верхней панели отображается сгенерированный XPath запрос выбранного UI элемента, а нижняя панель отображает необработанную XML-информацию для одного и того же элемента. Вы можете перейти на C# Code вкладку на нижней панели, чтобы просмотреть сгенерированный C# код записанного действия, который можно использовать в WinAppDriver тесте.

Следующая анимация показывает пример такого процесса:

Записанный код можно копировать в буфер обмена и затем вставлять в проект WinAppDriver UI Recorder шаблона.

Обратная связь

Поскольку UI Recorder является общедоступным инструментом, Microsoft рекомендует всем публиковать любые PR с изменениями или улучшениями и размещать любые предложения по усовершенствованию UI Recorder.

Для обратной связи используйте GitHub Issues Board по вопросам UI Recorder - Microsoft будут рады получить любые предложения, запросы по добавлению новых функций или отчеты об ошибках!

Будьте в курсе событий

Чтобы быть в курсе всех новостей WinAppDriver, следите за страницей @mrhassanuz.

Подвение итогов

Новый инструмент WinAppDriver, инструмент UI Recorder, стал доступным. Для пользователей это удобный способ автоматизации пользовательского интерфейса с помощью WinAppDriver, который может не только генерировать XPath выражения, но также и C# код, записывая UI действия, сделанные с помощью щелчков мыши.