Повышение производительности, стабильности и надежности решения

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

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

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

Средство проверки решений можно запустить либо из Power Apps (make.powerapps.com), либо с помощью PowerShell.

Как средство проверки решений поможет вам

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

Средство проверки решений анализирует этих компоненты решений:

Заметка

  • Средство проверки решений поддерживает глобальные переменные для ECMAScript 2015 (ES6) и вплоть до синтаксиса ECMAScript 2018 (ES9). Когда JavaScript обнаружен с использованием глобальных переменных позже ES6 или синтаксиса более позднего, чем ES9, сообщается о проблеме неподдерживаемого в веб синтаксиса для веб-ресурса.
  • Использование средства проверки решения не гарантирует, что импорт решения будет успешным. Проверки статического анализа, выполняемые для решения, не знают настроенного состояния целевой среды, и успех импорта может зависеть от других решений или конфигураций в среде.

Запуск средства проверки решений

  1. Выполните вход в Power Apps.

  2. В левой области выберите Решения. Если этого пункта нет на боковой панели, выберите …Еще, а затем выберите нужный пункт.

  3. Рядом с неуправляемым решением, которое требуется проанализировать, выберите пункт ..., укажите на пункт Средство проверки решений, затем выберите Выполнить.

    Выполнение команды средства проверки решений.

  4. Кнопка команды Средство проверки решений имеет индикатор загрузки, и вы заметите состояние Выполняется… в столбце Проверка решения списка Решение.

Состояние средства проверки решений

Заметка

  • Средству проверки решений может потребоваться несколько минут для выполнения анализа.
  • Вы получите уведомление по электронной почте и уведомление в области Уведомления сайта Power Apps после завершения проверки.
  1. Просмотрите отчет, когда проверка будет завершена.

Отмена проверки

После отправки проверки решений в вашей среде её можно отменить на панели состояния в правом верхнем углу страницы Solutions.

Если отменить проверку, выполнение проверки решения прекращается, а состояние проверки решения возвращается к предыдущему.

Состояния средства проверки решений

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

Состояние Описание
Не запускалось Решение никогда не было проанализировано.
Выполняется Решение анализируется.
Не удалось завершить Анализ решения был запрошен, но анализ не удается завершить успешно.
Результаты на дата и время Завершен анализ решения и результаты доступны для загрузки.
Не удалось завершить. Результат на дата и время Самый последний запрос анализа не был успешно завершен. Последние успешные результаты можно загрузить.
Проверено Microsoft Это решение управляется Microsoft. Анализ решения не разрешен для этих решений.
Проверено издателем Это решение не управляется Microsoft. В настоящее время анализ решения недоступен для таких решений.

Просмотр отчета средства проверки решений

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

  1. В левой области выберите Решения. Если этого пункта нет на боковой панели, выберите …Еще, а затем выберите нужный пункт.

  2. Рядом с неуправляемым решением, где нужно просмотреть отчет средства проверки решения, выберите ..., укажите на Средство проверки решений, затем выберите Показать результаты.

  3. Выберите проблему для просмотра сведений о ней и возможных способов решения.

    Результаты и детализация сведений примера средства проверки решений

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

  1. В левой области выберите Решения. Если этого пункта нет на боковой панели, выберите …Еще, а затем выберите нужный пункт.
  2. Рядом с неуправляемым решением, где нужно загрузить отчет средства проверки решения, выберите ..., укажите на Средство проверки решений, затем выберите Загрузить результаты.
  3. ZIP-файл средства проверки решения загружается в папку, указанную веб-браузером.

Здесь приведена сводка каждого столбца в отчете.

Столбец отчета Описание Относится к компоненту
Проблема Заголовок проблемы, выявленной в решении. Все
Категория Классификация выявленной проблемы, например Производительность, Удобство обслуживания, Использование, Поддержка, Дизайн, Безопасность, Специальные возможности или Готовность к обновлению. Все
Серьезность Отражает потенциальное влияние выявленной проблемы. Доступные типы неблагоприятного воздействия: Критический, Высокий, Средний, Низкий и Информационный. Все
Руководство Ссылка на статью с подробными сведениями о проблеме, ее влиянии и рекомендуемом действии. Все
Компонент Компонент решения, в котором была выявлена проблема. Все
Местоположение Расположение и/или исходный файл компонента, в котором возникла выявленная проблема, например сборка или имя файла JavaScript. Все
Номер строки Ссылка на номер строки проблемы в затронутом компоненте веб-ресурса. Веб-ресурсы
Модуль Имя модуля, в котором была обнаружена ошибка, выявленная в сборке. Настраиваемая операция рабочего процесса
Тип Тип проблемы, выявленной в сборке. Настраиваемая операция рабочего процесса
Участник Участник проблемы, выявленной в сборке. Настраиваемая операция рабочего процесса
Оператор Инструкция кода или конфигурация, которые привели к возникновению проблемы. Все
Комментарии Подробные сведения о проблеме, содержащие шаги разрешения высокого уровня. Все

Локальное выполнение правил средства проверки решений

Вы можете выполнять правила средства проверки решений в своей среде разработки, чтобы обнаруживать проблемы гораздо быстрее по мере создания ресурсов решения. В настоящее время это поддерживается для веб-ресурсов (JavaScript и TypeScript). Для получения более подробной информации перейдите к пакету NPM @microsoft/eslint-plugin-power-apps.

Запуск средства проверки решений с помощью PowerShell

Модуль PowerShell доступен, который можно использовать, чтобы взаимодействовать непосредственно с сервисом. Модуль Microsoft.PowerApps.Checker.PowerShell можно использовать для анализа неуправляемых решений для сред Power Apps или для автоматизации и интеграции сервиса в каналы сборки и выпуска. Дополнительные сведения: Обзор Microsoft.PowerApps.Checker.PowerShell

Правила рекомендаций, используемые средством проверки решений

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

Компонент решения Имя правила Описание правила Серьезность Категория
Подключаемый компонент или операция рабочего процесса meta-remove-dup-reg Избегайте повторной регистрации подключаемых модулей Dataverse. Критическое Производительность
Подключаемый компонент или операция рабочего процесса meta-avoid-reg-no-attribute Включите атрибуты фильтрации в регистрации подключаемых модулей Dataverse. Средняя Производительность
Подключаемый компонент или операция рабочего процесса meta-avoid-reg-retrieve Соблюдайте осторожность с подключаемыми модулями Dataverse, зарегистрированными для сообщений Retrieve и RetrieveMultiple. Средняя Производительность
Подключаемый компонент или операция рабочего процесса meta-remove-inactive Удалите неактивные конфигурации в Dataverse. Низкая Удобство обслуживания
Подключаемый компонент или операция рабочего процесса meta-avoid-crm4-event Не используйте этап регистрации подключаемого модуля Microsoft Dynamics CRM 4.0. Средняя Готовность к обновлению
Подключаемый компонент или операция рабочего процесса meta-avoid-retrievemultiple-annotation Избегайте регистрации подключаемого модуля для RetrieveMultiple аннотации. Высокое Использование
Приложение на основе моделей meta-license-sales-entity-operations Решение содержит сущности с ограниченными сообщениями и операциями пакета SDK, для которых требуется наличие действующей лицензии Dynamics 365. Низкая Лицензирование
Приложение на основе моделей meta-license-fieldservice-customcontrols Решение содержит настраиваемые элементы управления, для которых требуется действующая лицензия Dynamics 365 Field Service. Низкая Лицензирование
Приложение на основе моделей meta-license-fieldservice-entity-operations Решение содержит сущности с ограниченными сообщениями и операциями SDK, требующими действующей лицензии Dynamics 365 Field Service. Низкая Лицензирование
Веб-ресурсы use-async Взаимодействуйте с ресурсами HTTP и HTTPS асинхронно. Критическое Производительность
Веб-ресурсы avoid-modals Не используйте модальные диалоги. Высокое Возможность поддержки
Веб-ресурсы avoid-dom-form Высокое Возможность поддержки
Веб-ресурсы avoid-dom-form-event Высокое Возможность поддержки
Веб-ресурсы avoid-crm2011-service-odata Не указывайте конечную точку Microsoft Dynamics CRM 2011 OData 2.0 в качестве целевой. Критическое Готовность к обновлению
Веб-ресурсы avoid-crm2011-service-soap Не используйте в качестве цели службы Microsoft Dynamics CRM 2011 SOAP. Критическое Готовность к обновлению
Веб-ресурсы avoid-loadtheme Не используйте API loadTheme Fluent v8. Низкая Возможность поддержки
Веб-ресурсы avoid-browser-specific-api Не используйте устаревшие API-интерфейсы Internet Explorer или подключаемые модули браузера. Критическое Готовность к обновлению
Веб-ресурсы avoid-unpub-api Высокое Возможность поддержки
Веб-ресурсы avoid-window-top Высокое Возможность поддержки
Веб-ресурсы avoid-2011-api Не используйте устаревшую объектную модель Microsoft Dynamics CRM 2011. Вместо этого обратитесь к документации по Dataverse Web API. Высокое Готовность к обновлению
Веб-ресурсы use-relative-uri Не используйте абсолютные URL-адреса конечной точки Dataverse. Средняя Удобство обслуживания
Веб-ресурсы use-cached-webresource Средняя Производительность
Веб-ресурсы use-client-context Используйте контексты клиента. Средняя Готовность к обновлению
Веб-ресурсы use-navigation-api Используйте параметры API навигации. Средняя Готовность к обновлению
Веб-ресурсы use-offline Средняя Готовность к обновлению
Веб-ресурсы не-делайте-предположений-о-родителе Высокое Проект
Веб-ресурсы use-org-setting Используйте параметры организации. Средняя Готовность к обновлению
Веб-ресурсы use-global-context Средняя Готовность к обновлению
Веб-ресурсы use-grid-api Используйте API сетки. Средняя Готовность к обновлению
Веб-ресурсы use-utility-dialogs Средняя Использование
Веб-ресурсы avoid-isActivityType Замените метод Xrm.Utility.isActivityType новым методом Xrm.Utility.gettableMetadata и не используйте в правилах ленты. Средняя Готовность к обновлению
Веб-ресурсы meta-avoid-silverlight Использование веб-ресурса Silverlight устарело. Средняя Готовность к обновлению
Веб-ресурсы удалить-отладочный-скрипт Не включайте отладочный скрипт в средах, отличных от среды разработки. Средняя Использование
Веб-ресурсы use-strict-mode При возможности используйте строгий режим. Средняя Использование
Веб-ресурсы используйте-операторы-строгого-равенства Используйте операторы строгого равенства. Средняя Использование
Веб-ресурсы avoid-eval Не используйте функцию eval или ее функциональные эквиваленты. Критическое Безопасность
Веб-ресурсы avoid-with Не используйте оператор 'with'. Высокое Производительность
Веб-ресурсы удалить-предупреждение Не используйте функцию "alert" или ее функциональные эквиваленты. Средняя Использование
Веб-ресурсы remove-console Избегайте использования методов на консоли. Средняя Использование
Веб-ресурсы avoid-ui-refreshribbon Избегайте использования refreshRibbon в форме onload и EnableRule. Критическое Производительность
Веб-ресурсы use-getsecurityroleprivilegesinfo Избегайте userSettings.securityRolePrivileges. Вместо этого используйте userSettings.getSecurityRolePrivilegesInfo. Высокое Производительность
Веб-ресурсы use-appsidepane-api Используйте Xrm.App.sidePanes.createPane вместо Xrm.Panels.loadPanel. Средняя Готовность к обновлению
Приложение Canvas app-formula-issues-high Дополнительные сведения приведены в справочнике по формулам Power Apps. Критическое Проект
Приложение Canvas app-formula-issues-medium Дополнительные сведения приведены в справочных руководствах по формулам Power Apps. Средняя Проект
Приложение Canvas app-formula-issues-low Дополнительные сведения приведены в справочных руководствах по формулам Power Apps. Низкая Проект
Приложение Canvas app-use-delayoutput-text-input Используйте отложенную загрузку в некоторых сценариях для повышения производительности. Средняя Производительность
Приложение Canvas app-reduce-screen-controls Ограничьте количество элементов управления приложения для повышения производительности. Средняя Производительность
Приложение Canvas приложение-включает-доступный-ярлык Используйте явные ярлыки, чтобы улучшить доступность приложения. Средняя Специальные возможности
Приложение Canvas приложение-включает-альтернативный-ввод Убедитесь, что все интерактивные элементы доступны для альтернативных способов входа. Средняя Специальные возможности
Приложение Canvas запретить автозапуск приложения Избегайте использования автозапуска для проигрывателей в приложении. Средняя Специальные возможности
Классический поток desktopflow-avoid-unsafe-password Управление паролями в потоке осуществляется небезопасным образом. Высокое Безопасность
Классический поток desktopflow-avoid-subflow-recursion Обнаружены рекурсивные вызовы между подпотоками, потенциально способные вызвать бесконечный цикл. Средняя Проект
Классический поток desktopflow-avoid-infinite-loop В потоке обнаружен бесконечный цикл, из-за которого он может выполняться бесконечно. Средняя Проект
Классический поток desktopflow-avoid-incomplete-if-branch Обнаружено незавершённое действие If: отсутствует содержимое или действия присутствуют только в ветви Else. Низкая Проект
Классический поток desktopflow-avoid-excessive-nested-ifs Вложенность инструкций if превышает пять уровней. Низкая Удобство обслуживания
Классический поток desktopflow-avoid-empty-on-error-block Действие "Ошибка в блоке" пусто и не обрабатывает ошибки. Низкая Проект
Классический поток desktopflow-limit-argument-count Общее количество входных/выходных переменных превышает лимит в 25 переменных. Низкая Удобство обслуживания
Классический поток desktopflow-input-argument-default-value У входных/выходных переменных нет значений по умолчанию. Низкая Удобство обслуживания
Классический поток desktopflow-limit-variable-name-length Длина имени переменной превышает 25-символьный лимит. Низкая Удобство обслуживания
Классический поток desktopflow-avoid-excessive-wait-actions Обнаружено злоупотребление действиями ожидания: более 10 действий ожидания, что потенциально приводит к возникновению узких мест. Низкая Производительность
Классический поток desktopflow-avoid-immense-wait-duration Обнаружено чрезмерное время ожидания, превышающее 600-секундный лимит для жестко закодированных действий ожидания. Низкая Производительность

См. также

Рекомендации и инструкции для Dataverse
Рекомендации и советы для управляемых моделью приложений
Общие проблемы и их разрешение для средства проверки решений