Posted on 16. January 2019

Выпущены WebRTC UWP и образец callstats.io интеграции

В прошлом году Microsoft объявили о поддержке связи в режиме реального времени на универсальной Windows платформе, которая разработана на развилке Google WebRTC.org репозитория. Проект позволяет UWP разработчикам создавать совместимые с Chrome и похожие по функциям RTC приложения для всех Windows 10 платформ, включая настольные ПК, ноутбуки с HoloLens, Xbox и ARM поддержкой. Интерес общества к проекту увеличивается, о чем говорит 26 тысяч NuGet загрузок и сотни писем от разработчиков на GitHub и на почте. WebRTC и ORTC UWP были значительно улучшены, и Microsoft сообщили о своем вкладе в UWP поддержку репозитория Google WebRTC.org – более подробная информация будет опубликована в ближайшие месяцы.

Однако, постоянно поступает просьба от разработчиков, которые хотят лучше понять качество WebRTC вызовов для своих приложений. Это может быть звонок из HoloLens в десктопный браузер или Xbox приложение потокового видео в реальном времени. С этой целью Microsoft сотрудничает с callstats.io, чтобы обеспечить портативную .NET интеграцию платформы для WebRTC сервисов мониторинга и статистики!

Сегодня Microsoft объявили о выпуске NuGet .NET Standard 2.0 пакета для callstats.io, наряду с образцом кода на основе исходного кода PeerCC UWP. В качестве .NET Standard библиотеки, он доступен для всех поддерживаемых .NET реализаций, включая .NET Framework, .NET Core, UWP, Xamarin и Unity платформы (ознакомьтесь с документацией по требованиям к версии). Образец PeerConnection представляет собой UWP приложение, которое устанавливает двухсторонний видеовызов и отправляет WebRTC статистику в callstats.io службу с 10-секундными интервалами.

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

Kognitiv Spark, лидер в области систем со смешанной реальностью и Windows 10 разработчик, использует callstats.io сервис со своим RemoteSpark приложением.

«Наша операционная команда столкнулась с вопросами, помогающими клиентам решить трудности с сетью, которые могут нарушить сеанс смешанной реальности», – говорит Райан Грум, соучредитель и технический директор Kognitiv Spark. «Благодаря встроенной поддержке Windows 10 мы смогли за несколько часов запустить callstats.io службу и начать использовать полные данные, доступные на ее панели, для обнаружения и решения проблем».

Ознакомьтесь с шагами для интеграции.

1) Создать учетную запись callstats.io.

  • Перейдите по ссылке https://dashboard.callstats.io/register и создайте Организацию.
  • Перейдите на вкладку приложений, чтобы создать приложение, и ввести SDK как другой «UWP».
  • Нажмите на левой боковой панели «Настройки приложения» и перейти на вкладку «Безопасность».
  • Нажмите «Новые учетные данные» и выберите ярлык ключа.
  • Выберите тип ключа как «ECDSA» и введите открытый ключ.
  • Под ключевыми деталями, нажмите на «вид» для учетных данных.
2) Для аутентификации с помощью callstats.io необходимо сгенерировать криптографические ключи и загрузить открытый ключ в сервис. С инструкциями в файле readme.md можно ознакомиться здесь. После выполнения этого шага в проекте должны получиться Config класс и .p12 сертификат. Это все, что необходимо для аутентификации в API REST callstats.io.

3) Перейдите по ссылке на NuGet Org.WebRtc.Callstats пакет, доступный в Вашем проекте здесь.

4) Если используется образец PeerCC, то можно найти классы для сбора данных из PeerCC и WebRTC в Stats папке, также можно использовать этот код в качестве примера для своей реализации. Добавлять файлы из папки PeerCC-Sample репозитория в проект нужно следующим образом:
  • PeerConnectionControllerStateChange.cs: отслеживает RTCPeerConnection изменения состояния и собирает данные о состояниях одноранговых соединений для отправки в callstats.
  • StatsController.cs: собирает данные из всего PeerCC семпла и использует Org.WebRtc.Callstats библиотеку для отправки подготовленных данных в REST API callstats.io.
  • WebRtcStats.cs: подготавливает статистику, полученную из RTCPeerConnection, для связи с callstats.io через REST API.
5) Инициализируйте callstats.io сервис и отправьте SDP и ошибки приложения через StatsController. Для примера, см. Conductor.cs в PeerCC-Sample.

6) Обработайте изменения ICE состояния в RTCPeerConnection и используйте PeerConnectionStateChange для отправки данных на сервис:

_peerConnection.OnIceGatheringStateChange += async() => 
 
            { 
 
                await PeerConnectionStateChange.StatsOnIceGatheringStateChange(_peerConnection); 
 
                Debug.WriteLine("Conductor: Ice connection state change, gathering-state=" + _peerConnection.IceGatheringState.ToString().ToLower()); 
 
            }; 
 
            _peerConnection.OnIceConnectionStateChange += async () => 
 
            { 
 
                if (_peerConnection != null) 
 
                    await PeerConnectionStateChange.StatsOnIceConnectionStateChange(_peerConnection); 
 
                else
 
                { 
                    await PeerConnectionStateChange.PeerConnectionClosedStateChange(); 
 
                    ClosePeerConnection(); 
 
                } 
 
};
7) Отправьте события уровня приложения для отключения и включения звука в StatsController. Для примера см. MainViewModel.cs в PeerCC-Sample.

Теперь образец должен быть полностью подключен к callstats.io сервису и готов к тестированию. Microsoft только начинает улучшать качество вызовов. В дальнейшем работа будет сфокусирована на усовершенствовании взаимодействия с пользователями с помощью дополнительных метрик и AI. Отправляйте Ваши фидбеки об использовании библиотеки, а также отзывы и предложения на GitHub или на email.

 



Posted on 22. December 2018

Ознакомление с Project Mu

Команда Microsoft Devices Team объявляет о выпуске Project Mu, версии с открытым исходным кодом на базе Unified Extensible Firmware Interface (UEFI) ядра, основанного на Microsoft продуктах, включая Surface и последние версии Hyper-V. UEFI – это системное программное обеспечение, которое инициализирует оборудование во время процесса загрузки и предоставляет сервисы для загрузки операционной системы. Project Mu предоставляет собой множество UEFI функций, предназначенных для современных ПК под управлением Windows. Он также показывает структуру кода и процесс разработки для эффективного использования масштабируемой и надежной прошивки. Эти изменения позволяют Project Mu устройствам поддерживать микропрограмму в виде (FaaS) сервиса. Схожая по своей сути «Windows как сервис», «Прошивка как сервис» оптимизирует UEFI и другие системные прошивки для своевременных исправлений качества, которые обновляют прошивку и обеспечивают эффективную разработку функций сразу после запуска.

Использование встроенного программного обеспечения в качестве открытого источника

При первом включении FaaS в Surface было обнаружено, что TianoCore реализация с открытым UEFI исходным кодом не была оптимизирована для быстрого обслуживания для нескольких линейек продуктов. Были проведены несколько итераций продукта на FaaS, а в результате опубликован бесплатный проект с открытым исходным кодом - Project Mu!

Функции проекта

Project Mu включает в себя:

  • Структуру кода и процесс разработки, оптимизированный под прошивку как сервис.
  • Экранную клавиатуру.
  • Безопасное управление UEFI настройками.
  • Повышенную безопасность за счет удаления ненужного устаревшего кода; практика, которая используется для уменьшения зоны атаки.
  • Высокоэффективную загрузку.
  • Примеры современного BIOS меню.
  • Многочисленные тесты и инструменты для анализа и оптимизации качества UEFI.

Материал для ознакомления с документацией и кодом Project Mu Вы найдете по ссылке: https: //microsoft.github.io/mu/ 



Posted on 3. May 2018

Новое имя UWP Community Toolkit: Windows Community Toolkit

Уже в следующем обновлении UWP Community Toolkit будет переименован на Windows Community Toolkit. Это действительно большой шаг в развитии инструментария и сообщества.

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

UWP Community Toolkit Sample App (версия 1.0)

UWP Community Toolkit Sample App (версия 2.0)

Когда Microsoft выпустили UWP Community Toolkit, было много отзывов о добавление возможности для разработчиков, поделиться компонентами инструментария с другими инфраструктурами, такими как WPF, WinForms, Xamarin, .NET Core и другими. С помощью сообщества, в версии 2.0 Microsoft идентифицировали компоненты, которые могли быть учтены в библиотеках .NET Standard, и создали новые пакеты .NET Standard для того, чтобы все разработчики могли воспользоваться преимуществами работы сообщества. Сегодня многие из сервисов, помощников и парсеров являются кросс-платформенными и могут использоваться везде. Более того, Microsoft продолжает работать над тем, чтобы добавить еще больше преимуществ.

 

Главная цель сообщества - привлечение большего количества разработчиков, поэтому, начиная со следующей версии Windows Community Toolkit, Microsoft предоставят возможность другим Windows разработчикам, работающим на Windows 10 платформе, использовать все преимущества компонентов инструментария. Таким образом, новое имя привлечет всех Windows разработчиков.

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

Чтобы присоединиться к беседе в Twitter, используйте хэштег #windowstoolkit. Microsoft также будут рады видеть Вас на конференции Microsoft Build 2018!



Posted on 25. July 2017

Windows Template Studio 1.2

Выпуск Windows Template Studio 1.2.

Что делает этот выпуск особенным? - Microsoft были приняты в .NET Foundation

Основная задача этого выпуска - это добавление контента в существующее приложение с помощью  щелчка правой кнопкой мыши. Сочетание File->New уже в прошлом 🙂

Что нового: 

Полный список настроек в версии 1.2, перейдите на WTS Github.

 


Улучшения Wizard:

 

  • Добавление нового контента в существующие WTS проекты с помощью щелчка правой кнопкой мыши
  • Microsoft работает над разработкой возможности включения этой функции для проектов, не связанных с WTS
  • Скорректированное упорядочение шаблонов на основе популярности и логических группировок
  • Продуктивная работа локализации и улучшения доступности
  • Упрощенные описания
  • Настройка логотипа для уменьшения размера значков

 

Обновления функций:

  • Сбой при первом запуске
  • Что нового
Улучшения шаблонов:

  • Обновленные ссылки на UWP Community Toolkit 1.5
  • Регулировка стиля
  • Улучшения последействия в шаблонах
Улучшения процесса:

  • Добавлено в шаблон запроса
  • Добавлено в шаблон выпуска

 

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

Есть два способа для обновления к новому выпуску:

 

  • Уже установлено: Visual Studio должна автоматически обновлять расширение. Чтобы принудительно выполнить обновление, откройте Tools --> Extensions and Updates. Затем перейдите в "Update expander" слева, и там Вы увидите Windows Template Studio --> нажмите «Обновить»
  • Не установлено: откройте https://aka.ms/wtsinstall, нажмите «загрузить» и дважды щелкните на VSIX установщик.

 

Что еще готовится для следующих версий?

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

  • Подвижный дизайн в шаблонах
  • Функции Project Rome, как инстументы для Вашего проекта
  • Шаблоны для инстумента Ink
  • Улучшенное сочетание Right-click-> добавление поддержки для существующих проектов
  • Wizard локализация
  • Поддержка обширной доступности как в Wizard, так и в шаблонах
  • Поддержка Visual Basic
В партнерстве с сообществом .NET Foundation, Microsoft продолжает работать над улучшениями функционала и его продуктивности. Если Вы заинтересованны в том, чтобы сделать Ваш вклад, отправляйте Ваши идеи на GitHub по адресу https://aka.ms/wts

.NET Foundation:

Сотрудничество с .NET Foundation - большой прорыв для Microsoft. Такие новые великолепные проекты с открытым исходным кодом, как .NET Core, Roslyn и UWP Community Toolkit, - это только начало! Теперь, с выпуском Windows Template Studio, их станет намного больше!