Поделиться через


Включение баннера обнаружения расширений

Функция баннера обнаружения расширений появилась в выпуске Windows Admin Center Preview 1903. Эта функция позволяет расширению объявлять изготовителя оборудования сервера и модели, которые она поддерживает, и когда пользователь подключается к серверу или кластеру, для которого доступно расширение, отобразится баннер уведомлений, чтобы легко установить расширение. Разработчики расширений смогут получить больше видимости для своих расширений, и пользователи смогут легко обнаруживать дополнительные возможности управления для своих серверов.

Баннер обнаружения расширений

Как работает баннер обнаружения расширений

При запуске Центра администрирования Windows он подключается к зарегистрированным веб-каналам расширений и получает метаданные для доступных пакетов расширений. Затем, когда пользователь подключается к серверу или кластеру в Windows Admin Center, мы считываем изготовитель и модель серверного оборудования, чтобы отобразить в средстве обзора. Если мы найдем расширение, которое объявляет, что оно поддерживает изготовитель текущего сервера и /или модель, мы отобразим баннер, чтобы сообщить пользователю. Щелкнув ссылку "Настроить сейчас", пользователь перейдет в диспетчер расширений, где он может установить расширение.

Реализация баннера обнаружения расширений

Метаданные тегов в nuspec-файле используются для объявления того, какой производитель оборудования и/или модели поддерживает расширение. Теги разделены пробелами, и вы можете добавить тег производителя или модели либо как для объявления поддерживаемого производителя, так и моделей. Формат тега , "[value type]_[value condition]" где [тип значения] имеет значение "Производитель" или "Модель" (учитывает регистр), а [условие значения] — это регулярное выражение Javascript, определяющее строку производителя или модели, а [тип значения] и [условие значения] разделены подчеркиванием. Затем эта строка кодируется с помощью кодировки URI и добавляется в строку метаданных nuspec "tags".

Example

Предположим, я разработал расширение, которое поддерживает серверы компании Contoso Inc., с именем модели R3xx и R4xx.

  1. Тег производителя будет "Manufacturer_/Contoso Inc./". Тег для моделей может быть "Model_/^R[34][0-9]{2}$/". В зависимости от того, насколько строго необходимо определить условие сопоставления, можно определить регулярное выражение разными способами. Вы также можете разделить теги производителя или модели на несколько тегов, например тег модели."Model_/R3../ Model_/R4../"

  2. Вы можете протестировать регулярное выражение с помощью консоли DevTools веб-браузера. В Edge или Chrome нажмите клавишу F12, чтобы открыть окно DevTools, а на вкладке "Консоль" введите следующее и нажмите клавишу ВВОД:

    var regex = /^R[34][0-9]{2}$/
    

    Затем, если вы вводите и выполняете следующую команду, возвращается значение true.

    regex.test('R300')
    

    И если вы выполните указанные ниже действия, он вернет значение false.

    regex.test('R500')
    
  3. После проверки регулярного выражения его можно закодировать в консоли DevTools, используя следующий метод Javascript:

    encodeURI(/^R[34][0-9]{2}$/)
    

    Окончательный формат строки тега, добавляемой в nuspec-файл, будет следующим:

    <tags>Manufacturer_/Contoso%20Inc./ Model_/%5ER%5B34%5D%5B0-9%5D%7B2%7D$/</tags>
    

Tip

Мы понимаем, что у производителя оборудования может быть очень широкий диапазон имен моделей, некоторые из которых могут поддерживаться, а некоторые нет. Keep in mind that this feature is meant to help with the discovery of your extension, but it does not have to be a perfectly up-to-date inventory of all your models. Регулярное выражение можно определить как более простое выражение, которое соответствует подмножествам моделей. Пользователь может не увидеть баннер обнаружения, если он сначала подключается к модели сервера, которая не соответствует условию, но рано или поздно они будут подключаться к другому серверу, который делает и будет обнаруживать и устанавливать расширение. Вы также можете определить простое регулярное выражение, которое соответствует только имени производителя. В некоторых случаях расширение может не поддерживать определенную модель, но вы можете использовать функцию динамического отображения инструментов для определения пользовательского скрипта PowerShell для проверки поддержки моделей и отображения расширения только при необходимости или предоставления ограниченных функциональных возможностей в расширении для моделей, которые не поддерживают все возможности.