Повышение производительности, стабильности и надежности компонентов с помощью средства проверки решений

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

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

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

Примечание

  • В этом разделе рассматривается порядок выполнения средства проверки решений из портала разработчика Power Apps. Модуль PowerShell также доступен, который можно использовать, чтобы взаимодействовать непосредственно с сервисом. Модуль Microsoft.PowerApps.Checker.PowerShell можно использовать для анализа неуправляемых решений для сред Power Apps или для автоматизации и интеграции сервиса в каналы сборки и выпуска. Дополнительные сведения: Обзор Microsoft.PowerApps.Checker.PowerShell
  • Средство проверки решений поддерживает глобальные переменные для ECMAScript 2015 (ES6) и вплоть до синтаксиса ECMAScript 2018 (ES9). Когда JavaScript обнаружен с использованием глобальных переменных позже ES6 или синтаксиса более позднего, чем ES9, сообщается о проблеме неподдерживаемого в веб синтаксиса для веб-ресурса.
  • Использование средства проверки решения не гарантирует, что импорт решения будет успешным. Проверки статического анализа, выполняемые для решения, не знают настроенного состояния целевой среды, и успех импорта может зависеть от других решений или конфигураций в среде.

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

  1. Войдите в Power Apps.

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

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

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

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

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

    Обратите внимание на следующее:

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

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

  5. Просмотрите отчет, когда проверка будет завершена.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Компонент решения Имя правила Описание правила Серьезность Категории
Подключаемый модуль или действие бизнес-процесса мета-удалить-дублирующую-регистрацию Избегайте дублирования регистрации подключаемых модулей Dataverse. Критическое Производительность
Подключаемый модуль или действие бизнес-процесса мета-избегать-регистрации-без-атрибутов Включите атрибуты фильтрации в регистрации подключаемых модулей Dataverse. Средняя Производительность
Подключаемый модуль или действие бизнес-процесса мета-избегать-регистрации-для-извлечения Соблюдайте осторожность с подключаемыми модулями Dataverse, зарегистрированными для сообщений Retrieve и RetrieveMultiple. Средняя Производительность
Подключаемый модуль или действие бизнес-процесса мета-удалить-неактивный Удалите неактивные конфигурации в Dataverse. Низкая Удобство поддержки
Подключаемый модуль или действие бизнес-процесса мета-избегать-событие-crm4 Не используйте этап регистрации подключаемого модуля Microsoft Dynamics CRM 4.0. Средняя Готовность к обновлению
Подключаемый модуль или действие бизнес-процесса мета-избегать-извлечения-нескольких-аннотаций Избегайте регистрации подключаемого модуля для 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. Вместо этого следуйте документации на Веб-API Dataverse. Высокая Готовность к обновлению
Веб-ресурсы use-relative-uri Не используйте абсолютные URL-адреса конечной точки Dataverse. Средняя Удобство поддержки
Веб-ресурсы use-cached-webresource Средняя Производительность
Веб-ресурсы use-client-context Используйте контексты клиента. Средняя Готовность к обновлению
Веб-ресурсы use-navigation-api Используйте параметры API навигации. Средняя Готовность к обновлению
Веб-ресурсы use-offline Средняя Готовность к обновлению
Веб-ресурсы do-not-make-parent-assumption Высокая Проект
Веб-ресурсы use-org-setting Используйте параметры организации. Средняя Готовность к обновлению
Веб-ресурсы use-global-context Средняя Готовность к обновлению
Веб-ресурсы use-grid-api Используйте API-интерфейсы сетки. Средняя Готовность к обновлению
Веб-ресурсы use-utility-dialogs Средняя Использование
Веб-ресурсы avoid-isActivityType Замените метод Xrm.Utility.isActivityType новым методом Xrm.Utility.gettableMetadata и не используйте в правилах ленты. Средняя Готовность к обновлению
Веб-ресурсы мета-избегать-Silverlight Использование веб-ресурса Silverlight устарело. Средняя Готовность к обновлению
Веб-ресурсы удалите-отладочный-скрипт Не включайте отладочный скрипт в средах, отличных от среды разработки. Средняя Использование
Веб-ресурсы использование-строгого-режима При возможности используйте строгий режим. Средняя Использование
Веб-ресурсы используйте-операторы-строгого-равенства Используйте операторы строгого равенства. Средняя Использование
Веб-ресурсы избегайте-eval Не используйте функцию "eval" или ее функциональные эквиваленты. Критическое Группа безопасности
Веб-ресурсы avoid-with Не используйте оператор 'with'. Высокая Производительность
Веб-ресурсы предупреждение-удаления Не используйте функцию "alert" или ее функциональные эквиваленты. Средняя Использование
Веб-ресурсы консоль-удаления Избегайте использования методов на консоли. Средняя Использование
Веб-ресурсы avoid-ui-refreshribbon Избегайте использования refreshRibbon в форме onload и EnableRule. Критическое Производительность
Веб-ресурсы use-getsecurityroleprivilegesinfo Избегайте Avoid userSettings.securityRolePrivileges. Вместо этого используйте userSettings.getSecurityRolePrivilegesInfo. Высокая Производительность
Веб-ресурсы use-appsidepane-api Используйте Xrm.App.sidePanes.createPane вместо of Xrm.Panels.loadPanel. Средняя Готовность к обновлению
Веб-ресурсы web-sdl-no-cookies Файлы cookie HTTP — это старый механизм хранения на стороне клиента с присущими ему рисками и ограничениями. Используйте вместо них интернет-хранилище, IndexedDB или другие современные методы. Средняя Группа безопасности
Веб-ресурсы web-sdl-no-document-domain Операции записи в свойство document.domain во избежание обхода проверок на один источник. Использование доменов верхнего уровня, таких как azurewebsites.net, строго запрещено. Средняя Группа безопасности
Веб-ресурсы web-sdl-no-document-write Вызовы document.write или document.writeln предполагают непосредственное манипулирование моделью DOM без какой-либо очистки, и их следует избегать. Используйте вместо них document.createElement() или аналогичные методы. Средняя Группа безопасности
Веб-ресурсы web-sdl-no-html-method Прямые вызовы метода html() часто (например, в среде jQuery) предполагают манипулирование моделью DOM без какой-либо очистки, и их следует избегать. Используйте вместо них document.createElement() или аналогичные методы. Средняя Группа безопасности
Веб-ресурсы web-sdl-no-inner-html Присвоение значений свойствам innerHTML или outerHTML предполагает непосредственное манипулирование моделью DOM без какой-либо очистки, и их следует избегать. Используйте вместо них document.createElement() или аналогичные методы. Средняя Группа безопасности
Веб-ресурсы web-sdl-no-insecure-url Небезопасные протоколы, такие как HTTP или FTP, следует заменить их шифрованными аналогами (HTTPS, FTPS), чтобы избежать отправки потенциально конфиденциальных данных по ненадежным сетям в виде открытого текста. Средняя Группа безопасности
Веб-ресурсы web-sdl-no-msapp-exec-unsafe Вызовы MSApp.execUnsafeLocalFunction() обходят проверку на внедрение скрипта, и их следует избегать. Средняя Группа безопасности
Веб-ресурсы web-sdl-no-postmessage-star-origin Всегда указывайте конкретное происхождение цели, а не * при отправке данных в другие окна с помощью postMessage, чтобы избежать утечки данных за пределы границы доверия. Средняя Группа безопасности
Веб-ресурсы web-sdl-no-winjs-html-unsafe Вызовы WinJS.Utilities.setInnerHTMLUnsafe() и подобных методов не выполняют никаких проверок входных данных, и их следует избегать. Используйте вместо этого WinJS.Utilities.setInnerHTML(). Средняя Группа безопасности
Canvas App проблемы-формул-приложений-высокой-важности Дополнительные сведения приведены в справочных руководствах по формулам Power Apps. Критическое Проект
Canvas App проблемы-формул-приложений-средней-важности Дополнительные сведения приведены в справочных руководствах по формулам Power Apps. Средняя Проект
Canvas App проблемы-формул-приложений-низкой-важности Дополнительные сведения приведены в справочных руководствах по формулам Power Apps. Низкая Проект
Canvas App приложение-использует-отложенный вывод-ввода-текста Используйте отложенную загрузку в некоторых сценариях для повышения производительности. Средняя Производительность
Canvas App элементы-управления-приложение-уменьшенный-экран Ограничьте количество элементов управления приложения для повышения производительности. Средняя Производительность
Canvas App приложение-включает-доступный-ярлык Используйте явные ярлыки, чтобы улучшить доступность приложения. Средняя Специальные возможности
Canvas App приложение-включает-альтернативный-ввод Убедитесь, что все интерактивные элементы доступны для альтернативных способов входа. Средняя Специальные возможности
Canvas App приложение-избегайте-автозапуска Избегайте использования автозапуска для проигрывателей в приложении. Средняя Специальные возможности

См. также

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

Примечание

Каковы ваши предпочтения в отношении языка документации? Пройдите краткий опрос (обратите внимание, что этот опрос представлен на английском языке).

Опрос займет около семи минут. Личные данные не собираются (заявление о конфиденциальности).