Posted on 8. March 2018

AI платформа для Windows разработчиков

AI платформа для Windows разработчиков

Компания Microsoft делает огромные инвестиции в AI и Machine Learning. Возможности AI в Office 365 помогают подписчикам с высокой продуктивностью работы; удобные функции приложения Photos для Windows 10 значительно упрощают создание видеороликов и поиск по обширным фото коллекциям, а функция Windows Hello использует AI для распознавания лиц и быстрого входа в систему Ваших Windows устройств. Microsoft также использует AI для ответа на Ваши вопросы об использовании Bing Search и Cortana, чтобы позволить рекламодателям закрепить более прочные связи с клиентами и помогать специалистам по безопасности защищать бизнес от современных угроз. Microsoft Research продолжает работу над современной возможностью распознавания речи, аппаратурой для автоматического считывания и распознавания речи, и машинного зрения. Microsoft уже масштабировали AI до меньших устройств и даже создали AI, с которым можно рисовать!

«Технология Intel Movidius VPU предоставит более утонченный AI для сотен миллионов пользователей Microsoft по всему миру», - сообщает Реми Эль-Уазане - вице-президент Intel и генеральный директор Movidius.

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

«Ускорение AI на Windows 10 ПК является новейшим доказательством того, как искусственный интеллект становится повсеместным в нашей повседневной жизни», - сказал Ян Бак, вице-президент и генеральный менеджер Accelerated Computing в NVIDIA. «NVIDIA рада сотрудничать с Microsoft, чтобы улучшить работу на ПК для пользователей по всему миру». 

Платформа AI для Windows 10 позволяет разработчикам использовать предварительно подготовленные модели машинного обучения в своих приложениях на Windows устройствах. Это выдвигает целый ряд преимуществ:

  • Низкая латентность, результаты в режиме реального времени. Windows может выполнять задачи по оценке AI, используя локальные возможности обработки ПК, что позволяет анализировать многочисленные локальные данные, такие как изображения и видео, в режиме реального времени. Результаты могут быть доставлены быстро и эффективно в целях выполнения интенсивных объемов работы, таких как игровые движки, или фоновые задачи, такие как индексирование для поиска.
  • Снижение оперативных расходов. Используя Microsoft Cloud AI платформу, разработчики могут создавать доступные по цене комплексные AI решения, сочетающие учебные модели в Azure с возможностью развертывания для оценки на Windows устройствах. Значительная экономия может быть достигнута за счет сокращения или устранения затрат, связанных с пропускной способностью, из-за приема маштабных наборов данных, таких как снимки камеры или телеметрии датчиков. Сложные рабочие нагрузки могут обрабатываться в режиме реального времени, при этом данные минимальной выборки будут отправленны в облако для улучшения обучения по вопросам наблюдения.
  • Гибкость. Разработчики могут выбирать между выполнением AI задач на устройстве или на облаке на основе потребностей своих клиентов и сценариев. AI обработка может проводится на отключенных от сети устройствах, или в сценариях, где данные не смогут отправиться в облако из-за расходов, размера, политики или предпочтений клиентов.

«Мы рады сотрудничать с Microsoft на платформе Windows ML и помогать разработчикам ускорить AI работу на Windows ноутбуках с помощью процессора Snapdragon 835 AI Engine». Гэри Бротман, директор по управлению производством - AI и Machine Learning, Qualcomm Technologies, Inc.

Оценка от Microsoft для модели ML настроена на эффективность в различных кремниях, работающих под управлением Windows. Используя оптимизацию наборов инструкций на современных процессорах, аппаратное ускорение на графических процессорах, поддерживающих DirectX 12, и модель драйвера для целевых AI процессоров в будущем, Microsoft обеспечивает производительность и эффективность в широком диапазоне форм-факторов. Начиная с этого обновления, разработчики могут использовать AI платформу в семействе Windows устройств, в том числе и периферийные IoT устройства, HoloLens, 2-в-1 и настольные ПК, рабочие станции, серверы и центры обработки данных.

«Мы рады сотрудничать с Microsoft в Windows ML и использовать высокопроизводительные возможности AMD процессоров и графических процессоров для ускорения AI на Windows 10 ПК». - Андре Здравкович, CVP Software, AMD.

Windows поддерживает ONNX, промышленный стандартный формат для ML моделей, который находится под управлением Microsoft, Facebook и Amazon Web Services и поддерживается на Windows IHV, а также NVIDIA, Intel, Qualcomm и AMD. Специалисты по обработке данных могут обучать и поставлять ONNX модели для Windows разработчиков, которые используют Azure Machine Learning Workbench, и в ближайшее время, Azure Custom Vision Service также будет поддерживать создание ONNX моделей для Windows.

Microsoft также инвестировали средства в создание отличного опыта разработки для AI разработчиков на Windows платформе. Начиная с обновления Visual Studio Preview 15.7, добавление ONNX файла в UWP проект будет автоматически создавать модельные интерфейсы в Вашем проекте. В предыдущих версиях Visual Studio разработчики могут использовать инструмент MLGen для создания интерфейса кода, а затем вручную добавлять его в свои проекты. Эта возможность также будет скоро добавлена для инструментов Visual Studio для AI.

И это только начало! С каждым выпуском, Вы будете получать еще больше продуктивности на Windows устройствах. Разработчики смогут собирать приложения на базе AI, что поможет Вам вдохновлять и обмениваться информацией в 3d, легче отслеживать задачи и загруженность, и даже слушать музыку из плейлистов, сделанных специально для Вас.

Вы можете узнать больше об AI новшествах в //build 2018.


Exception: Object reference not set to an instance of an object.
Posted on 1. March 2018

UWP Community Toolkit, версия 2.2

Microsoft рады объявить о новом обновлении UWP Community Toolkit, версии 2.2. Преимущества этого выпуска, как всегда, распространяются на сообщество, которое продолжает поддерживать и совершенствовать набор инструментов в каждой новой версии. Версия 2.2 содержит новый Parsers пакет, новые элементы управления и вспомогательные инструменты, а также множество улучшений и исправлений ошибок для уже существующих API. 

Ниже приведен краткий список основных нововведений этого выпуска. Также стоит изучить подробную информацию о выпуске и ознакомиться с полным списком функций в новой 2.2 версии.

Microsoft.Toolkit.Parsers и MarkdownTextBlock

В UWP Community Toolkit 2.0 было добавлено несколько новых .NET Standard пакетов с обязательной поддержкой большего количества кросс-платформенных API. Основываясь на этом требовании, версия 2.2 представляет новый .NET Standard пакет: Microsoft.Toolkit.Parsers. Этот пакет включает в себя синтаксические анализаторы для снижения цен и RSS, которые могут использоваться на UWP и других платформах, поддерживающих .NET Standard 1.4 или выше.
Кроме того, элемент управления MarkdownTextBlock использует новый рендерер и, в дополнении, поддерживает:
  • Выделение синтаксиса кода
  • SVG-изображения и синтаксис ширины / высоты изображения
  • Взаимосвязанные URI для изображений и ссылок
  • Комментарии и многое другое

Пошаговая панель

Добавлена новая панель, позволяющая поэтапно размещать макеты, где элементы добавляются в столбцы с наименьшим количеством пространства.

Кисти XAML

Версия 2.2 представляет новое пространство имен (Microsoft.Toolkit.Uwp.UI.Media) и добавляет 7 кистей на основе композиции, включая кисть RadialGradientBrush. Кисти заднего плана придают эффект тому, что находится за элементами в приложении.

Поддержка MSAL и кросс-платформенных сервисов Microsoft Graph и OneDrive

Версия .NET Standard была представлена для двух сервисов: Graph и OneDrive, а прежняя служба OneDrive была отмечена, как устаревшая. Версии .NET Standard для каждого сервиса теперь поддерживают Библиотеку Аутентификации Microsoft (MSAL) и потребление исключительно за пределами UWP приложений. Новый сервис можно найти в пакете Microsoft.Toolkit.Services.

Поддержка пакетов уведомлений для My People

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

Создано сообществом Microsoft

Это обновление было бы невозможно, если бы не Ваша поддержка и участие в сообществе. Если Вы заинтересованы в участии в разработке, но не знаете, с чего начать, ознакомьтесь с разделами «нужна помощь» на GitHub.

Несмотря на то, что большая часть усилий по разработке и использованию UWP Community Toolkit предназначена для настольных приложений, эти инструменты также отлично работают на Xbox One, Mobile, HoloLens, IoT и Surface Hub устройствах. Вы можете начать работу, следуя этим инструкциям, или ознакомиться с последними функциями, установив UWP Community Toolkit Sample App из Microsoft Store. 

Присоединяйте к беседе в Twitter, ставьте хэштэг #uwptoolkit. 

Счастливого кодирования!



Exception: Object reference not set to an instance of an object.
Posted on 27. February 2018

Новые направления и обновления в рекламной монетизации

Microsoft объявляет о новой политике в области эксплуатации рекламных блоков, обновлении пользовательского опыта для управления активными / неактивными рекламными блоками, политики в области включения рекламной сети по умолчанию и изменениях методологии показа объявлений в Windows приложениях. Если Вы используете объявления в Вашем Windows приложении с помощью Microsoft Advertising SDK (UWP или 8.x приложений), новая политика монетизации может принести Вам ущерб.

1) Автоматическое включение новых рекламных сетей для ручных рекламных блоков в UWP приложениях

Microsoft продолжает оценивать и внедрять новые рекламные сети для повышения доходности и предлагает более широкий спектр спроса для разработчиков (форматы, конкретные рынки спроса). Когда Microsoft добавили новую рекламную сеть в систему, рекламные UWP блоки, настроенные с параметром «Ручная настройка», не пользуются этими сетями, так как они автоматически не включены для ручных рекламных блоков. В будущем будут добавлены изменения для включения всех рекламных сетей по умолчанию для всех рекламных UWP блоков независимо от ручной или автоматической конфигурации. Для рекламных блоков с ручными настройками эти рекламные сети будут добавлены в конец каскадного заказа, поскольку каскадная конфигурация рекламной сети определяется владельцем приложения. Затем владелец может внести необходимые изменения, чтобы изменить порядок или отказаться от рекламных сетей по мере необходимости. Рекомендация Microsoft состоит в том, чтобы выбирать «Автоматическую» конфигурацию рекламного блока, чтобы максимально использовать возможности увеличения доходности.

2) Обновления политики при прекращении эксплуатации рекламных блоков

Microsoft добавляет политику прекращения эксплуатации рекламных блоков, в которой рекламный блок, который не сгенерировал какой-либо запрос объявления за последние 6 месяцев, будет деактивирован и удален. По текущим прогнозам активные приложения не будут затронуты из-за достаточно длительного периода (6 месяцев) неактивности рекламного блока. Однако есть исключения, при которых Вы можете пострадать. Например, если Вы создали рекламный блок на несколько месяцев раньше времени развертывания приложения и пытаетесь использовать этот рекламный блок, как будто Ваше приложение уже работает в реальном времени. Или Вы пытаетесь повторно использовать существующий рекламный блок из своего предыдущего неактивного приложения в новом приложении. Рекомендация в обоих случаях заключается в использовании вновь созданных рекламных блоков, вместо повторного использования уже существующих, в целях избежания потенциальной потери дохода от рекламы.

Наряду с этим объявлением политики, Microsoft вносит изменения в панель инструментов Windows Dev Center, чтобы упростить просмотр активных и неактивных рекламных блоков. Состояние рекламного блока идентифицируется в отдельном столбце; кроме того, Вы можете выбрать только активные или только неактивные рекламные блоки, поставив соответствующий фильтр в верхней части страницы.

3) Переход на стандартное измерение показа объявлений

Стандартное измерение показа объявлений требует, чтобы «объявление было загруженным и, как минимум, уже начало воспроизводиться», в таком случае оно будет считаться действительным. Для рекламных сетей, которые полагаются на другие методы, такие как подсчет показов на основе сервера, Microsoft вносит изменения в постепенную миграцию всех рекламных блоков для Windows приложений ближе к стандартным измерениям. Более конкретно, подсчет показов будет опираться на такие методы, как запуск маяка показа рекламной сети, после показа объявления пользователю. Это делается для того, чтобы лучше придерживаться IAB стандартов при подсчете показа объявлений и быть справедливыми по отношению к рекламодателям. Это также принесет пользу приложениям, которые стремятся сделать все правильно, убедившись, что объявления отображаются пользователям и доступны для просмотра.

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

Если у Вас есть вопросы или комментарии, пишите по этому адресу aiacare@microsoft.com Спасибо!



Exception: Object reference not set to an instance of an object.
Posted on 12. February 2018

Новая Функция: свободная форма оплаты в Dev Center

Новая Функция: свободная форма оплаты в Dev Center

Правильное распределение цен на Ваше приложение или дополнительные покупки - это ключ к успеху в Microsoft Store. Многие компании просили добавить больше возможностей для оценки своих продуктов, и вот команда Dev Center рада сообщить, что на сегодняшний день все разработчики могут использовать функцию свободного ценообразования. С введением этой функции у Вас есть возможность, устанавливать любую цену для Вашего приложения, игры или дополнений, а также Вы можете выбирать необходимую валюту на рынке.

Каждый знает, что число 7 – счастливое число. Привлекайте удачу и меняйте цену Вашей игры в США до 7,77 USD. Хотите добавить специальное дополнение ко дню холостяков в Китае? Вы можете установить китайскую цену для Вашего дополнительного товара в CNY ¥ 11.11.

Возможности ценообразования бесконечны, в пределах такого же допустимого диапазона, как и уровни цен (0,99-1,999,99 USD). Обратите внимание, что цена свободной формы может использоваться только для переопределения базовой цены на одном рынке. (Для групп рынков Вы все равно можете переопределить базовую цену, но уже другим ценовым уровнем).

Использование свободных форм ценообразования

Начните с раздела «Цены» на странице «Цены и доступность Вашего продукта в Dev Center». Находясь на этой странице, Вы можете использовать функцию ценообразования свободной формы в 2 простых шага:

1) Выберите рынок, для которого Вы хотите изменить базовую цену с помощью новой формы ценообразования

  • Нажмите «Выбрать рынки для изменения базовой цены», выберите нужный рынок и нажмите «Создать».

2) Отмените базовую цену

  • В выпадающем меню выберите «Свободная форма» и введите Вашу новую цену.

  • Введенная в свободной форме цена должна находиться в допустимом диапазоне (например, в долларах США диапазон составляет 0,99 - 1,999,99 USD) и должен быть в правильном формате этой валюты. Предупреждения о валидации предупреждают Вас о любых ошибках в Вашей заполненной форме.

Это так просто! Для изучения подробной документации, перейдите на эту страницу.



Exception: Object reference not set to an instance of an object.
Posted on 31. January 2018

Target Surface Hub и Windows 10 S с процессором Snapdragon для Ваших UWP приложений

Когда Вы отправляете Ваше UWP приложение или игру на сертификацию в Microsoft Store через Dev Center, у Вас есть возможность, выбирать семейства устройств, на которые пользователи могут устанавливать Ваше приложение. Приложение или игра будут доступны для всех поддерживаемых семейств устройств по умолчанию (кроме Xbox, где Вы можете выбирать по желанию, если это поддерживается Вашими пакетами). Это позволяет Вашим приложениям и играм увеличивать количество потенциальных клиентов. 

Недавно Microsoft добавили новые опции, которые позволяют публиковать продукты на Surface Hub. Теперь Вы можете предлагать ARM пакеты для Windows 10 S на процессоре Snapdragon категории постоянно подключенных ПК (Always Connected PCs).

Чтобы настроить Surface Hub при отправке Вашего UWP приложения в Microsoft Store, убедитесь, что присутствует флажок для семейства устройств Windows 10 Team. Обычно это происходит, если Вы загружаете пакеты, ориентированные на Universal или Team семейства устройств.

Если Вы включаете ARM пакет в Ваше приложение, предназначенное для универсального или настольного устройства, этот пакет будет доступен для Windows 10 S устройств на Snapdragon процессоре (постоянно подключенных ПК) до тех пор, пока проверяется семейство Windows 10 Desktop устройств.

В приведенном выше примере показаны три пакета, предназначенные для универсального семейства устройств x64, ARM и x86. Выбраны колонки для Windows 10 Desktop, Windows 10 Mobile, Windows 10 Xbox, Windows 10 Team и Windows 10 Holographic. Это означает, что клиенты могут устанавливать Ваш продукт на любое из этих типов устройств.

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

Упаковка и тестирование приложений

Пакеты приложений настроены для работы на определенной архитектуре процессора. Команда Microsoft настоятельно рекомендует собирать пакеты Ваших приложений для всех архитектур, чтобы Ваше приложение работало бесперебойно на всех типах Windows 10 устройств. Чтобы узнать больше, ознакомьтесь с документацией по архитектуре пакета приложений.

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



Exception: Object reference not set to an instance of an object.
Posted on 25. January 2018

Windows Desktop Program для Desktop Application Analytics

Важной функцией для разработчиков настольных приложений является возможность просмотра подробной аналитики о производительности приложения и его популярности среди пользователей. До этого момента у  разработчиков не было возможности доступа к этим аналитикам, не объединяя несколько инструментов. Благодаря Windows Desktop Program у разработчиков появился новый удобный, универсальный портал для просмотра аналитики на рабочем столе или через API данные. Статистика и графики быстро показывают, как работают приложения - от количества пользователей до подробных данных о производительности при сбоях и ошибках. Благодаря этой аналитике разработчики могут лучше отслеживать и устанавливать приоритеты исправлений, контролировать распространение своего приложения, готовить и улучшать общий функционал для своих клиентов.

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

После регистрации в программе Windows Desktop Application Program и регистрации Ваших сертификатов, Вы сможете использовать аналитические отчеты для:

  • Просмотра общей суммы всех типов сбоев, отсортированных по количеству падений
  • Изучения каждого сбоя, загрузки трассировки стека и CAB файлов для быстрой отладки проблемы
  • Сравнения состояния работоспособности и принятие недавно выпущенной версии Вашего приложения к предыдущим выпускам
  • Просмотра данных о работоспособности в целом или по регионам, что позволит устранять проблемы, характерные для региона
  • Сравнения производительности и принятие настольных приложений разными Windows версиями, такими как последние версии Windows 10 или Windows Insider.

 

Для просмотра аналитики Ваших приложений:
  1. Зарегистрируйтесь в приложении Windows Desktop Application Program. Если у Вас уже есть учетная запись в Windows Dev Center, Вы можете открыть эту программу на странице «Программы» в настройках Учетной записи. В противном случае Вы можете зарегистрироваться здесь.
  2. Следуйте инструкциям по загрузке неподписанного файла, привяжите его к тому же сертификату подписи кода, который использует Ваша компания для подписания настольных приложений, и затем загрузите вновь подписанный файл через портал.
  3. Вуаля! Microsoft возьмет подписанный файл, который Вы только что загрузили, и сопоставит его с телеметрией, которая собирается во всех приложениях с тем же сертификатом, чтобы показать Вам данные Вашей аналитики. Чтобы узнать больше, ознакомьтесь с данной документацией.

Чтобы узнать больше о программе Windows Desktop Application Program, ознакомьтесь с одним из видео выпусков Microsoft Windows Developer.



Exception: Object reference not set to an instance of an object.
Posted on 6. December 2017

Visual Studio Application Packaging Project

Visual Studio 2017 15.4 представил новый проект Windows Application Packaging, который поможет Вам модернизировать Ваше приложение с помощью нового стека развертывания Windows 10 приложений (Windows 10 App Deployment Stack).

Microsoft рассказывали об этом в предыдущей статье: Visual Studio 2017 Update 4 упрощает модернизацию Вашего приложения и делает его готовым к публикации, и сегодня Microsoft представит Вам новые возможности Visual Studio 2017 15.5, которые позволяют создавать новые сценарии для проекта упаковки Windows приложений с использованием всех преимуществ Windows 10 функций в Ваших приложениях.

В этой статье будут рассматриватся три примера, которые подчеркнут новые возможности, добавленные в проект упаковки, чтобы обеспечить упаковку не только для Win32 приложений, но и для приложений и UWP компонентов:

  1. Фоновое выполнение с использованием фоновых задач UWP.
  2. Интеграция Windows Shell с использованием соглашения о совместном использовании.
  3. Добавление инвестиций Win32 кода в пакеты UWP приложений.

Первые два примера это уже существующие WPF приложения, упакованные как APPX с расширенным функционалом, который реализован как UWP компоненты. Первое приложение добавляет фоновое исполнение на основе фоновых UWP задач, а второе приложение показывает, как активно внедрять приложение с Windows 10 оболочкой, используя функцию в виде соглашения о совместном использовании (Share contracts). В заключение, последнее приложение - это точка входа в UWP, вызывающая классический Win32 процесс, который взаимодействует с Excel.

Обратите внимание: Поскольку UWP компоненты необходимо скомпилировать для определенной платформы: x86 или x64, конфигурация любого конфигурационного решения для любого процессора не будет работать ни в одном из этих образцов.

Все образцы доступны в отчетах на GitHub, разделе Windows-Packaging-Samples. Для этих образцов требуется Visual Studio 2017 15.5 Preview 4 или выше, доступный для загрузки с https://www.visualstudio.com/downloads.

  1. WPF с Фоновыми Задачами

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

Чтобы показать, как использовать эту функцию в Ваших Win32 приложениях, Microsoft собирается реализовать небольшую утилиту, которая сделает HTTP-запрос к URL-адресу, настроенному пользователем, и покажет прошедшие миллисекунды в всплывающих уведомлениях (Toast Notification).

Microsoft создадаст WPF приложение, чтобы пользователь мог указывать URL-адрес для проверки и включения / выключения фоновых задач. Фоновая задача будет реализована как Windows Runtime Component (WINMD). Чтобы включить этот компонент в пакет, нужно создать UWP приложение, которое использует этот компонент, и, наконец, добавить WPF и UWP проекты в качестве ссылок на проект упаковки. Ниже приведен список необходимых шагов.

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

  1. Упакуйте Ваше настольное приложение, используя проект упаковки
  2. Добавьте Runtime Windows компонент для выполнения фоновой задачи
  3. Добавьте UWP приложение, которое ссылается на компонент времени выполнения
  4. Добавить ссылку на UWP приложение из проекта упаковки
  5. Настройте Фоновую задачу в манифесте
  6. Зарегистрируйте фоновую задачу из Настольного приложения

После завершения 1-4 шагов, у Вас должно быть решение для проектов, как показано на рисунке ниже:

Проект упаковки ссылается не только на WPF приложение, но и на UWP проект. По этой причине решение должно быть настроено для конкретной платформы, поскольку UWP недоступен для любых конфигураций ЦП.

Реализация Фоновых Задач

Фоновая задача - это класс C#, который реализует интерфейс IBackgroundTask. Этот интерфейс определяет Run метод, который будет вызываться, когда система запустит задачу.

public sealed class SiteVerifier : IBackgroundTask
{
    public async void Run(IBackgroundTaskInstance taskInstance)
    {
 
        taskInstance.Canceled += TaskInstance_Canceled;
        BackgroundTaskDeferral deferral = taskInstance.GetDeferral();
        var msg = await MeasureRequestTime();
        ShowToast(msg);
        deferral.Complete();
    }
 
    private async Task MeasureRequestTime()
    {
        string msg;
        try
        {
            var url = ApplicationData.Current.LocalSettings.Values["UrlToVerify"] as string;
            var http = new HttpClient();
            Stopwatch clock = Stopwatch.StartNew();
            var response = await http.GetAsync(new Uri(url));
            response.EnsureSuccessStatusCode();
            var elapsed = clock.ElapsedMilliseconds;
            clock.Stop();
            msg = $"{url} took {elapsed.ToString()} ms";
        }
        catch (Exception ex)
        {
            msg = ex.Message;
        }
        return msg;
}

 

Обратите внимание, как используется LocalSettings в ApplicationData для обмена информацией между WPF приложением и фоновой UWP задачей.

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

Для регистрации фоновой задачи в системе, Вам нужно вызвать Windows 10 API из WPF приложения. Этот API доступен в Windows 10 SDK, и для его использования с .NET необходимо добавить ссылки, объясненные здесь. После того, как Вы получили доступ к Windows 10 API, Вы можете использовать класс BackgroundTaskRegistration для настройки фоновой задачи, как показано в приведенном ниже коде:

 

public void RegisterBackgroundTask(String triggerName)
{
    var current = BackgroundTaskRegistration.AllTasks
        .Where(b => b.Value.Name == triggerName).FirstOrDefault().Value;
 
    if (current is null)
    {
        BackgroundTaskBuilder builder = new BackgroundTaskBuilder();
        builder.Name = triggerName;
        builder.SetTrigger(new MaintenanceTrigger(15, false));
        builder.TaskEntryPoint = "HttpPing.SiteVerifier";
        builder.Register();
        System.Diagnostics.Debug.WriteLine("BGTask registered:" + triggerName);
    }
    else
    {
        System.Diagnostics.Debug.WriteLine("Task already:" + triggerName);
    }
}

 

Для регистрирации фоновой задачи, убедитесь, что задача не была зарегистрирована ранее, а затем используйте BackgroundTaskBuilder для настройки имени и Триггера, в этом случае используется MainteinanceTrigger.

2. Зарегистрируйте Ваше приложение в качестве Share Target

Совместные контракты - это Windows 10 функция, которая позволяет осуществлять обмен информацией между двумя приложениями, отправителем и получателем. Благодаря Desktop Bridge, Вы можете зарегистрировать UWP приложение в качестве общего получателя, а затем интегрировать с Win32 приложением. После регистрации приложения, оно будет отображаться каждый раз, когда пользователь вызывает функцию совместного использования, как показано ниже:

В этом примере, WPF приложение расширяется с добавлением функции совместного использования, где пользователи могут отправлять изображения из других приложений, таких как Photos, Edge, Shell в наше WPF приложение. Microsoft использует проект упаковки, который включает не только WPF, но и UWP приложение, которое позволяет UWP-интерфейсу получать контент из целевого ресурса. Ниже Вы можете увидеть исследователь решений с проектом упаковки, ссылающимся на WPF и UWP проекты.

Пакет должен обозначить цель о совместном использовании (Share Target), включая имя UWP приложения:

При активации, приложение получает информацию о целевом ресурсе из параметра ShareOperation. Ниже приведен пример фрагмента кода:

protected async override void OnNavigatedTo(NavigationEventArgs e)
{
    base.OnNavigatedTo(e);
    operation = (ShareOperation)e.Parameter;
    if (operation.Data.Contains(StandardDataFormats.StorageItems))
    {
        var items = await operation.Data.GetStorageItemsAsync();
        file = items[0] as StorageFile;
        IRandomAccessStreamWithContentType stream = await file.OpenReadAsync();
 
        await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async () =>
        {
            BitmapImage image = new BitmapImage();
            this.img.Source = image;
            await image.SetSourceAsync(stream);
        });
    }
}

 

Теперь каждый раз, когда пользователь делится изображением и выбирает данное приложение, запускается Share UI приложение и затем отображается UWP-интерфейс.

После нажатия кнопки «Поделиться в WPF приложение», UWP вызывает обработчик событий и копирует изображение в папку ApplicationData, и затем запускает Win32 приложение с помощью FullTrustProcessLauncher.

private async void ShareBtn_Click(object sender, RoutedEventArgs e)
{
    await file.CopyAsync(ApplicationData.Current.LocalFolder);
    operation.ReportCompleted();
    await FullTrustProcessLauncher.LaunchFullTrustProcessForCurrentAppAsync();
}

Для использования FullTrustProcessLauncher, применяется Desktop расширение для UWP, это расширение доступно в виде SDK ссылки, которая доступна в диалоговом окне UWP приложения «Add References»:

И, наконец, зарегистрируйте настольное расширение и целевой выполняемый файл в манифесте:

 

<... >

 

3. Добавьте Office взаимодействие из UWP приложения

Одной из ключевых особенностей Desktop Bridge является возможность добавлять исполняемые Win32 файлы в Ваш пакет приложений и запускать их как цельный процесс из UWP приложения. Теперь, с проектом Windows Application Packaging, Вы можете создавать пакеты, содержащие двоичные UWP, так и Win32 файлы.

Дополнительно к диспетчеру процессов, есть расширение App Service, которое поможет Вам установить канал связи между Вашим UWP приложением и Win32 процессом.

В этом примере показан способ добавления Win32 процесса (приложение командной строки) для управления Excel листом с использованием офисного взаимодействия.

Microsoft начинает с UWP приложения, которое использует сетку данных Telerik для отображения некоторых табличных данных, также будет добавлена  кнопка для экспорта одних и тех же данных в Excel, как показано ниже:

Исследователь решений этого примера очень похож на предыдущий пример с тремя проектами в решении: UWP приложение, командная Win32 строка и проект упаковки со ссылкой на оба проекта. Тем не менее, обратите внимание, что в этом случае точкой входа приложения (выделенной жирным шрифтом) является UWP проект:

Как и в предыдущем примере, нужно добавить ссылку на настольное расширение и зарегистрировать полный процесс доверия в манифесте. Но на этот раз, также необходимо зарегистрировать службу приложения в манифесте пакета:

Для открытия канала связи в Win32 процессе, добавьте ссылку на Windows API, как описано здесь:

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

 

Connection = new AppServiceConnection();
connection.AppServiceName = "ExcelInteropService";
connection.PackageFamilyName = Windows.ApplicationModel.Package.Current.Id.FamilyName;
connection.RequestReceived += Connection_RequestReceived;
connection.ServiceClosed += Connection_ServiceClosed;

 

Заключая данную статью

Новые функции, добавленные в проект упаковки в Visual Studio 2017, помогут Вам модернизировать существующие настольные приложения для получения максимального результата от UWP и Win32 в одном пакете. Этот новый проект поможет Вам настроить Ваш пакет с помощью конструктора манифеста, отладить Ваше приложение в контексте Desktop Bridge и, наконец, поможет подготовить пакеты для отправки в Microsoft Store или на другие ресурсы. Для получения дополнительной информации изучите:

 



Exception: Object reference not set to an instance of an object.
Posted on 25. November 2017

UWP Community Toolkit 2.1

Microsoft представляет новое обновление UWP Community Toolkit версии 2.1!

Это обновление основывается на предыдущей версии и продолжает улучшать инструментарий приравнивая его к Windows 10 Fall Creators Update SDK. Благодаря постоянной поддержке и помощи сообщества, все пакеты были обновлены и нацелены на Fall Creators Update; несколько элементов управления, помощников и расширений были добавлены или обновлены, а опыт работы с документацией и дизайном значительно улучшился.

Ниже приведен краткий список основных обновлений этой версии. Перейдите к информации о выпуске для ознакмоления с тем, что нового в версии 2.1.

DockPanel

В этом выпуске добавлен новый элемент управления DockPanel, который обеспечивает легкое закрепление элементов слева, справа, сверху, снизу или по центру.

 

HeaderedContentControl и HeaderedItemsControl

Добавлены два элемента управления: HeaderedContentControl и HeaderedItemsControl, которые позволяют легко отображать контент с заголовками, которые также можно сделать шаблонными.

 <controls:HeaderedContentControl Header="Hello header!">
    <Grid Background="Gray">
         
    </Grid>
</controls:HeaderedContentControl>   
         

Подключенная и Скрытая Анимация в XAML

Добавлены два новых набора привязанных свойств XAML, которые позволяют работать с анимацией композиции непосредственно в XAML

 

  • Скрытые анимации (включая показ и скрытие) теперь могут добавляться прямо в XAML элементы
 <Border extensions:VisualExtensions.NormalizedCenterPoint="0.5">
 
    <animations:Implicit.ShowAnimations>
        <animations:TranslationAnimation Duration="0:0:1"
            To="0, 100, 0" ></animations:TranslationAnimation>
        <animations:OpacityAnimation Duration="0:0:1"
            To="1.0"></animations:OpacityAnimation>
    </animations:Implicit.ShowAnimations>
 
</Border> 
        
  • Связанные анимации теперь могут устанавливаться прямо на XAML элементах, путем добавления одного и того же ключа к элементам на разных страницах
<!-- Page 1 -->
<Border x:Name="Element" animations:Connected.Key="item"></Border>
 
<!-- Page 2 -->
<Border x:Name="Element" animations:Connected.Key="item"></Border>

 

Улучшенный Опыт Разработки

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

 

Новые свойства SystemInformation

Класс SystemInformation теперь включает новые свойства и методы, чтобы упростить предоставление первого запуска (или связанного) опыта или сбора более богатой аналитики.

Легкий переход к новым элементам управления в Fall Creators Update

Чтобы обеспечить бесперебойный переход от уже существующих элементов инструментария к новым элементам управления в Fall Creators Update, у HamburgeMenu и SlidableListItem есть новые свойства для использования NavigationView и SwipeControl при запуске в Fall Autodesk Update. Ознакомьтесь с принципами работы в этой документации.

Документация

Вся документация теперь доступна в Microsoft документах. Кроме того, есть новая API документация как часть .NET API Browser.

 

Разработано сообществом

Это обновление было бы невозможно без поддержки и участия сообщества. Если Вы заинтересованы в участии в разработке, но не знаете, как начать работу, ознакомьтесь с часто задаваемыми вопросами на GitHub.

Напоминаем о том, что, хотя большая часть усилий по разработке и использованию набора инструментов UWP Community Toolkit предназначена для настольных приложений, он также отлично работает на Xbox One, Mobile, HoloLens, IoT и Surface Hub устройствах. Вы можете начать работу, следуя этому руководству, или просмотреть последние функции, установив UWP Community Toolkit Sample App из Microsoft Store.

Чтобы присоединиться к беседе в Twitter, используйте hashtag #uwptoolkit.



Exception: Object reference not set to an instance of an object.
Posted on 30. October 2017

Windows Application Driver больше не в бета-версии!

Windows Application Driver больше не в бета-версии!

Microsoft опубликовали выпуск Windows Application Driver (WinAppDriver) версии 1.0. Этот выпуск является первой не бета-версией WinAppDriver. Это один из важных этапов в проекте, который был впервые представлен в Build 2016.

Что предоставляет WinAppDriver

Теперь стало намного легче, создавать программное обеспечение для нескольких платформ и устройств. Microsoft поддерживает разработчиков, работающих на любой платформе, для создания программного обеспечения для любых устройств. Microsoft предоставляет эту поддержку многим инструментам, включая .Net, UWP с .Net Standard, Rome, VS Code, Xamarin и WSL. В соответствии с этими изменениями, нужна стратегия инструментального тестирования, которая в равной степени относится к платформе и кросс-устройству, и именно здесь необходим WinAppDriver.

WinAppDriver - это инструмент основанный на открытых стандартах для автоматизации тестирования пользовательского интерфейса. Вы можете использовать WinAppDriver для запуска автоматизированных тестов пользовательского интерфейса для любых Windows 10 приложений. Поддержка открытых стандартов означает, что Вы используете UI Test Automation с помощью Appium или Selenium, Вы можете использовать существующие инструменты и предпочитаемые языки для написания тестов для Windows приложений.

Подробнее о Версии 1.0

Этот выпуск WinAppDriver является первой не-бета-версией по нескольким причинам:

  1. WinAppDriver теперь поддерживает основной набор функций, которые стремительно обновляются и улучшаются.
  2. За последний год Microsoft получили отзывы сообщества и улучшили производительность и качество WinAppDriver на основе Ваших пожеланий. Также, Microsoft благодарны сообществу Appium за добавление WinAppDriver в Appium установщик.
  3. Удаление бета-лейбла показывает, что Microsoft не перестает работать над инструментами Open Standard и планирует улучшать WinAppDriver.
Перспективы на будущее

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

Команда WinAppDriver активно работает над улучшениями, которые включают:

  1. Дополнение к рабочим процессам, таким как непрерывная интеграция
  2. Поддержка мультитач-входа
  3. Поддержка ввода ручкой
  4. Поддержка WinAppDriver на дополнительных Windows устройствах
Где получить обновление?

Вы можете найти v1.0 установщик на странице Github проекта WinAppDriver, там также предоставлены образцы, документация и отслеживание проблем:

Следующая версия Appium (1.7.2) автоматически установит WinAppDriver v1.0 на Ваше устройство, если у Вас его еще нет.

Как отправить отзыв?

Пожалуйста, разместите Ваш отзыв на доске объявлений в Github

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

Чтобы быть в курсе всех WinAppDriver новостей, читайте @mrhassanuz и @yosefdurr.

В заключении

Версия v1.0 WinAppDriver является важным этапом, который больше не содержит бета-лейбла. Попробуйте обновиться до 1.0 версии, как только это будет возможно. Если Вы еще не пробовали WinAppDriver, сейчас самое время.


Exception: Object reference not set to an instance of an object.
Posted on 23. October 2017

Visual Studio 2017 Update 4

Visual Studio 2017 Update 4 упрощает модернизацию Ваших приложений

В прошлом году обновление Windows 10 Anniversary Update добавило поддержку Desktop Bridge для модернизации приложений с помощью универсальной платформы Windows и их распространения в Windows Store и Microsoft Store for Business на всех Windows 10 ПК, включая устройства, которые работают под управлением Windows 10 S.
В то время, первым инструментом разработчика был Desktop App Converter, который преобразовывает Ваш текущий установщик приложений в пакет Windows приложений (файл .appx), который может быть отправлен в Windows Store или развернут по Вашему выбору. С четвертым обновлением для Visual Studio 2017 добавлена отличная поддержка для работы непосредственно в Visual Studio для Ваших настольных Windows приложений (WPF, Winforms, Win32 и другие). С помощью новых инструментов Вы можете создавать, настраивать, развертывать, тестировать и отлаживать Ваши Desktop Bridge приложения во время разработки в VS, просто нажимая F5!
Сегодня мы покажем Вам пошаговый пример работы с новым обновлением. Начнем с Winforms приложения, которое демонстрирует различные элементы управления диаграммой. Приложение было создано несколько лет назад в старой VS версии с .NET 4. Теперь Microsoft хочет выпустить и постепенно модернизировать его в Windows Store.  В этом блог посте мы покажем Вам, как это легко с Update 4 для Visual Studio 2017.

Шаг 1 - Добавьте к решению проект Windows App Packaging 

Прежде чем начать, убедитесь, что Ваш проект настольных приложений загружен в Visual Studio 2017 и создается без ошибок. Затем, на следующем этапе, необходимо упаковать приложение в виде пакета Windows приложений (файл .appx), чтобы Winforms приложение могло использовать все те же функции развертывания Windows 10 приложений, которые доступны для UWP приложений: чистая установка и удаление, безперебойные обновления, распространение в Store и многое другое. Для этого Вам нужно воспользоваться новыми возможностями инструментов в четвертом обновлении Visual Studio 2017. Microsoft добавляет новый проект к решению «Windows Application Packaging Project»:

Теперь нужно указать Ваши минимальные / целевые версии ...

... укажите в проекте упаковки, какой проект должен быть включен в пакет. Для этого щелкните правой кнопкой мыши на узле «Applications» и установите ссылку на Winforms проект.

Важно! Выберите проект «DistributionPackage» в качестве запуска Вашего проекта. Затем, нажмите F5 и посмотрите, как Ваше приложение будет упаковано, развернуто и запущено в качестве Desktop Bridge приложения. Вы можете начать тестирование и отладку в новом контексте выполнения. Если Вы установите проект Winforms в качестве проекта запуска и нажмете F5, Вы все равно можете проверять и отлаживать неупакованную версию Вашего приложения.

Шаг 2 – Настройка приложения для публикации в Windows Store

Итак, Ваше приложение уже работает как Desktop Bridge приложение, и Вы успешно его протестировали и отладили в этой конфигурации. Затем Вам просто нужно приложить завершающие штрихи к пакету, чтобы он хорошо сочетался с Windows 10 Shell (тайлы, символы и другое) и убедиться, что пакет соответствует требованиям публикации Windows Store. Во-первых, нужно заменить визуальные активы по умолчанию, подвязанные к шаблону проекта, на действительные, специфичные для приложения активы. В Visual Studio 2017 это очень легко с помощью Visual Assets Manager в редакторе манифеста пакета:

Чтобы подготовиться к публикации в Windows Store, необходимо создать приложение в Windows Dev Center и зарезервировать имя Вашего приложения, загрузить скриншоты, установить цену, возрастные категории и другое. Если Вы не планируете распространять приложение в Windows Store, Вы можете пропустить этот шаг.

Последнее, что нужно сделать перед публикацией Вашего приложения, - это создать пакеты, которые готовы к развертыванию и совместимы с требованиями Windows Store. Этот пакет может содержать двоичные файлы для разных архитектур, ресурсы для разных локалей, а также символы для двоичных файлов, чтобы в дальнейшем Вы могли проанализировать любые отчеты о сбоях в Dev Center или Mobile Center. Это можно сделать для Desktop Bridge приложений, как и для любого UWP приложения, непосредственно из Visual Studio:

В рамках создания пакетов, также проводятся сертификационные тесты, после которых пакеты отправляются на сертификацию и публикацию в Dev Center. Теперь Вы можете оценить результат Вашей публикации и установить пример приложения на Ваш компьютер из Windows Store, здесь доступен исходный код приложения.

Какие дополнительные преимущества открываются разработчикам?

Помимо распространения и монетизации через Windows Store, Ваше приложение обладает современными возможностями развертывания, встроенными в Windows 10. Вам больше не нужно создавать установщик, обновления являются автоматическими и дифференциальными. Удаление приложения гарантированно будет правильным. Кроме того, так как Ваше приложение теперь находится в Windows 10 App Model, у Вас есть доступ к API и UWP функциям, таким как живые плитки, интеграция Cortana, фоновые задачи и другие. Еще одним важным преимуществом специально для Windows Forms приложений является новая качественная DPI поддержка в .NET 4.7, которая включена в Windows Creators Update (1703). В данном примере, приложение использует эту новую поддержку, следуя шагам, описанным в этой статье.

Более того

Говоря об установщиках, знаете ли Вы, что пакет Вашего приложения также является Вашим установщиком в Windows 10? Пользователи могут просто щелкнуть, чтобы установить его, если он подписан с сертификатом, который доступен для целевого устройства. Это позволяет распространять Ваше модернизированное настольное приложение таким образом, чтобы это соответствовало Вашему сценарию, без необходимости публикации в Windows Store - например, для LOB приложений на предприятии. Здесь Вы можете узнать больше о данной возможности.

Вывод

Получение готового проекта разработки настольных приложений для публикации в Windows Store стало намного легче с четвертым обновлением Visual Studio 2017. После преобразования Вашего Windows приложения в Windows App Package, оно может пользоваться всеми преимуществами Windows 10 и начать использовать новые API и функции Windows 10. Здесь Вы найдете ресурсы для получения дополнительной информации:

Оригинал анонса



Exception: Object reference not set to an instance of an object.