Подобрете производителността, стабилността и надеждността на компонентите с инструмента за проверка на решения
За да изпълнят сложните бизнес изисквания, производителите често могат да се окажат с високо усъвършенствани решения, които персонализират и разширяват платформата Microsoft Dataverse . С разширените внедрявания идва и увеличен риск, където се представят проблемите с производителността, стабилността и надеждността, който може да се отрази отрицателно на изживяването на потребителя. Идентифицирането и разбирането на това как да разрешите тези проблеми, може да е сложно и отнемащо време. С помощта на функцията за проверка на решение можете да изпълните проверка с богат статичен анализ на решенията си срещу набор от правила за най-добри практики и бързо да разпознаете тези проблематични модели. След приключването на проверката ще получите разширен отчет, който изброява идентифицираните проблеми, засегнатите компонентни и код и връзки към документация, която обяснява как да разрешите всеки проблем.
Инструментът за проверка на решение анализира тези компоненти на решение:
- Дейности в персонализиран работен поток на Dataverse
- Уеб ресурси (HTML и JavaScript) на Dataverse
- Конфигурации на 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). За повече подробности отидете на пакета @microsoft/eslint-plugin-power-apps NPM.
Правила за най-добри практики от инструмента за проверка на решения
Следващата таблица изброява типа на компонента, описанието на правилото, тежестта и категорията. Критичните нарушения се блокират или предупреждават, когато са конфигурирани за прилагане на проверката на решения с управлявани среди. Повече информация: Използване на програмата за проверка на решения в управлявани среди
Компонент на решение | Име на правило | Описание на правило | Степен сериозност | Категория |
---|---|---|---|---|
Добавка или дейност в работен поток | meta-remove-dup-reg | Избягвайте дублирани регистрации на добавка на Dataverse. | Критично | Производителност |
Добавка или дейност в работен поток | meta-avoid-reg-no-attribute | Включете атрибутите за филтриране с регистрации на плъгини на Dataverse. | Среден | Производителност |
Добавка или дейност в работен поток | meta-avoid-reg-retrieve | Да се внимава с добавките на Dataverse, регистрирани за съобщения за извличане и RetrieveMultiple. | Среден | Производителност |
Добавка или дейност в работен поток | meta-remove-inactive | Премахване на неактивни конфигурации в Dataverse. | Ниска | Възможност за поддържане |
Добавка или дейност в работен поток | meta-avoid-crm4-event | Не се използва етап на регистрация на добавка на Microsoft Dynamics CRM 4.0. | Среден | Готовност за надстройване |
Добавка или дейност в работен поток | meta-avoid-retrievemultiple-annotation | Избягване на регистриране на добавка в RetrieveMultiple на анотация. | Висока | Използване |
Приложение, управлявано от модел | мета-лиценз-продажби-субект-операции | Решението съдържа обекти с ограничени SDK съобщения и операции, които изискват валиден лиценз за Dynamics 365. | Ниска | Лицензиране |
Приложение, управлявано от модел | мета-лиценз-полеуслуга-потребителски контроли | Решението съдържа потребителски контроли, които изискват валиден Dynamics 365 Field Service лиценз. | Ниска | Лицензиране |
Приложение, управлявано от модел | мета-лиценз-полеуслуга-обект-операции | Решението съдържа обекти с ограничени 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 | Не използвайте loadTheme Fluent v8 API. |
Ниска | Възможност за поддръжка |
Уеб ресурси | avoid-browser-specific-api | Не се използват наследени API на Internet Explorer или добавки на браузъра. | Критично | Готовност за надстройване |
Уеб ресурси | avoid-unpub-api | Висока | Възможност за поддръжка | |
Уеб ресурси | avoid-window-top | Висока | Възможност за поддръжка | |
Уеб ресурси | avoid-2011-api | Не се използва отхвърленият обектен модел на Microsoft Dynamics CRM 2011. Вместо това следвайте Dataverse Уеб API документация. | Висока | Готовност за надстройване |
Уеб ресурси | 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 и не използвайте в правилата на лентата. | Среден | Готовност за надстройване |
Уеб ресурси | meta-avoid-silverlight | Използването на уеб ресурс на Silverlight е отхвърлено. | Среден | Готовност за надстройване |
Уеб ресурси | remove-debug-script | Избягване на включването на скрипт за отстраняване на грешки в неразвойни среди. | Среден | Използване |
Уеб ресурси | употреба-строг-режим | Използване на строг режим, когато е възможно. | Среден | Използване |
Уеб ресурси | Използване на оператори за стриктно равенство | Използване на оператори за стриктно равенство. | Среден | Използване |
Уеб ресурси | избягване-eval | Не се използва функцията „eval“ или нейни функционални еквиваленти. | Критично | Защита |
Уеб ресурси | избягване-с | Не използвайте оператора "с". | Висока | Производителност |
Уеб ресурси | премахване-предупреждение | Не използвайте функцията „alert“ или функционалните й еквиваленти. | Среден | Използване |
Уеб ресурси | Премахване на конзола | Избягвайте да използвате методи на конзолата. | Среден | Използване |
Уеб ресурси | avoid-ui-refreshribbon | Избягвайте да използвате refreshRibbon във формата onload и EnableRule. | Критично | Производителност |
Уеб ресурси | use-getsecurityroleprivilegesinfo | Избягвайте userSettings.securityRolePrivileges. Вместо това използвайте userSettings.getSecurityRolePrivilegesInfo. | Висока | Производителност |
Уеб ресурси | use-appsidepane-api | Използвайте Xrm.App.sidePanes.createPane вместо Xrm.Panels.loadPanel. | Среден | Готовност за надстройване |
Уеб ресурси | web-sdl-no-cookies | HTTP бисквитките са стар механизъм за съхранение от страна на клиента с присъщи рискове и ограничения. Вместо това използвайте Web Storage, 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 framework) манипулират 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 (). | Среден | Защита |
Приложение на платно | приложение-формула-въпроси-високо | Вижте препратките за формули на Power Apps за допълнителни подробности. | Критично | Проектиране |
Приложение на платно | приложение-формула-въпроси-среда | Вижте препратките за формули на Power Apps за допълнителни подробности. | Среден | Проектиране |
Приложение на платно | приложение-формула-въпроси-ниско | Вижте препратките за формули на Power Apps за допълнителни подробности. | Ниска | Проектиране |
Приложение на платно | приложение-използване-забавянеизход-текст-вход | Използвайте забавено натоварване в някои сценарии, за да подобрите производителността. | Среден | Производителност |
Приложение на платно | app-reduce-screen-controls | Ограничете броя на контролите за приложения за подобрена производителност. | Среден | Производителност |
Приложение на платно | приложение-включва-достъпен-етикет | Използвайте явни етикети, за да подобрите достъпността на приложенията. | Среден | Достъпност |
Приложение на платно | приложение-включване-алтернатива-въвеждане | Уверете се, че всички интерактивни елементи са достъпни за алтернативни входове. | Среден | Достъпност |
Приложение на платно | автоматично стартиране на приложение за избягване на приложения | Избягвайте да използвате автоматично стартиране на плейъри в приложение. | Среден | Достъпност |
Вижте също
Най-добри практики и насоки за Dataverse
Най-добрите практики и насоки за базирани на модел приложения
Ощи проблеми и решения за инструмента за проверка на решения
Бележка
Можете ли да ни споделите повече за езиковите си предпочитания за документацията? Попълнете кратко проучване. (имайте предвид, че това проучване е на английски език)
Проучването ще отнеме около седем минути. Не се събират лични данни (декларация за поверителност).
Обратна връзка
https://aka.ms/ContentUserFeedback.
Очаквайте скоро: През цялата 2024 г. постепенно ще отстраняваме проблемите в GitHub като механизъм за обратна връзка за съдържание и ще го заменим с нова система за обратна връзка. За повече информация вижте:Подаване и преглед на обратна връзка за