Повышение производительности, стабильности и надежности компонентов с помощью средства проверки решений
Для удовлетворения бизнес-требований создатели приложений зачастую создают сложные решения, которые модифицируют и расширяют платформу Microsoft Dataverse. Со сложными реализациями возникает риск возникновения проблем производительности, устойчивости и надежности, что может отрицательно повлиять на опыт работы пользователя. Выявление этих проблем и разработка способов их устранения может быть сложной задачей, требующей много времени. С функцией проверки решения можно выполнить проверку решений с широким статическим анализом ваших решений по набору правил оптимальной работы и быстро выявить эти проблемные закономерности. После завершения проверки вы получите подробный отчет со списком выявленных проблем, затронутыми компонентами и кодом, а также со ссылками на документацию, в которой описываются способы решения каждой проблемы.
Средство проверки решений анализирует этих компоненты решений:
- Действия настраиваемого рабочего процесса Dataverse
- Веб-ресурсы Dataverse (HTML и JavaScript)
- Конфигурации Dataverse, такие как шаги сообщения пакета SDK
- Потоки Power Automate (с помощью средства проверки потоков)
- Выражения Power Fx (с помощью средства проверки приложений)
Средство проверки решений работает с неуправляемыми решениями, которые можно экспортировать из среды.
Примечание
- В этом разделе рассматривается порядок выполнения средства проверки решений из портала разработчика Power Apps. Модуль PowerShell также доступен, который можно использовать, чтобы взаимодействовать непосредственно с сервисом. Модуль Microsoft.PowerApps.Checker.PowerShell можно использовать для анализа неуправляемых решений для сред Power Apps или для автоматизации и интеграции сервиса в каналы сборки и выпуска. Дополнительные сведения: Обзор Microsoft.PowerApps.Checker.PowerShell
- Средство проверки решений поддерживает глобальные переменные для ECMAScript 2015 (ES6) и вплоть до синтаксиса ECMAScript 2018 (ES9). Когда JavaScript обнаружен с использованием глобальных переменных позже ES6 или синтаксиса более позднего, чем ES9, сообщается о проблеме неподдерживаемого в веб синтаксиса для веб-ресурса.
- Использование средства проверки решения не гарантирует, что импорт решения будет успешным. Проверки статического анализа, выполняемые для решения, не знают настроенного состояния целевой среды, и успех импорта может зависеть от других решений или конфигураций в среде.
Запуск средства проверки решений
Войдите в Power Apps.
В левой области выберите Решения. Если этого пункта нет на боковой панели, выберите …Еще, а затем выберите нужный пункт.
Рядом с неуправляемым решением, которое требуется проанализировать, выберите пункт ..., укажите на пункт Средство проверки решений, затем выберите Выполнить.
Кнопка команды Проверка решения имеет индикатор загрузки; кроме того, вы увидите сообщение Выполняется… в столбце Средство проверки решений столбца Решение.
Обратите внимание на следующее:
Средству проверки решений может потребоваться несколько минут для выполнения анализа.
Вы получите уведомление по электронной почте и уведомление в области Уведомления сайта Power Apps после завершения проверки.
Просмотрите отчет, когда проверка будет завершена.
Отмена проверки
После отправки проверки решения в вашу среду проверку можно отменить через панель состояния в верхней правой области страницы Решения.
Если вы отмените проверку, выполнение средства проверки решений прекращается, и состояние проверки решения возвращается к предыдущему состоянию.
Состояния средства проверки решений
При установке средства проверки решений в среду столбец Проверка решения становится доступной в списке Решения. В этом столбце отображаются состояния анализа решения для решения.
область | Описание |
---|---|
Не запускалось | Решение никогда не было проанализировано. |
Выполняется | Решение анализируется. |
Не удалось завершить | Анализ решения был запрошен, но анализ не удается завершить успешно. |
Результаты на дата и время | Завершен анализ решения и результаты доступны для загрузки. |
Не удалось завершить. Результат на дата и время | Самый последний запрос анализа не был успешно завершен. Последние успешные результаты можно загрузить. |
Проверено Microsoft | Это решение управляется Microsoft. Анализ решения не разрешен для этих решений. |
Проверено издателем | Это решение управляется третьей стороной. В настоящее время анализ решения недоступен для таких решений. |
Просмотр отчета средства проверки решений
После завершения проверки решения можно просматривать отчет анализа на портале или можно загрузить отчет из веб-браузера. На портале имеется возможность можно сортировать результаты по параметру Проблема, Местоположение или Важность, а также просматривать подробные сведения о проблемах, обнаруженных в решении.
В левой области выберите Решения. Если этого пункта нет на боковой панели, выберите …Еще, а затем выберите нужный пункт.
Рядом с неуправляемым решением, где нужно просмотреть отчет средства проверки решения, выберите ..., укажите на Средство проверки решений, затем выберите Показать результаты.
Выберите проблему для просмотра сведений о ней и возможных способов решения.
Результаты проверки решения также доступны для загрузки. ZIP-файл средства проверки решения загружается в папку, указанную веб-браузером. Отчет о загрузке представлен в формате Excel и содержит несколько визуализаций и столбцов, помогающих в идентификации влияния, типа и расположения каждой проблемы, обнаруженной в решении. Ссылка на детальную инструкцию о том, как устранить проблему, также предусмотрена.
- В левой области выберите Решения. Если этого пункта нет на боковой панели, выберите …Еще, а затем выберите нужный пункт.
- Рядом с неуправляемым решением, где нужно загрузить отчет средства проверки решения, выберите ..., укажите на Средство проверки решений, затем выберите Загрузить результаты.
- 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
Рекомендации и советы для управляемых моделью приложений
Общие проблемы и их разрешение для средства проверки решений
Примечание
Каковы ваши предпочтения в отношении языка документации? Пройдите краткий опрос (обратите внимание, что этот опрос представлен на английском языке).
Опрос займет около семи минут. Личные данные не собираются (заявление о конфиденциальности).