Споделяне чрез


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

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

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

Инструментът за проверка на решения работи с незавършени решения, които могат да бъдат експортирани от дадена среда.

Можете да стартирате проверка на решения или от Power Apps (make.powerapps.com), или с помощта на PowerShell.

Как Solution Checker ви помага

За да изпълнят сложни бизнес изисквания, производителите често могат да се окажат с изключително усъвършенствани решения, които персонализират и разширяват. Power Platform С разширените внедрявания идва и увеличен риск, където се представят проблемите с производителността, стабилността и надеждността, който може да се отрази отрицателно на изживяването на потребителя. Идентифицирането и разбирането на това как да разрешите тези проблеми, може да е сложно и отнемащо време. С функцията за проверка на решения можете да извършите проверка в рамките на секунди на вашето решение, което използва набор от правила за най-добри практики за бързо идентифициране на проблемни модели. След като проверката завърши, получавате подробен отчет Power Apps , както и в имейл съобщение, който изброява идентифицираните проблеми, засегнатите компоненти и код и връзки към документация, която описва как да разрешите всеки проблем.

Инструментът за проверка на решение анализира тези компоненти на решение:

  • Дейности в персонализиран работен поток на Dataverse
  • Уеб ресурси (HTML и JavaScript) на Dataverse
  • Конфигурации на Dataverse, като например стъпки на SDK съобщение
  • Power Automate потоци (чрез проверка на потока)
  • Power Fx Изрази (чрез App Checker)

Бележка

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

Изпълнение на инструмента за проверка на решения

  1. Влезте в Power Apps.

  2. В левия панел изберете Решения. Ако елементът не е в страничния панел, изберете …Още и след това изберете желания елемент.

  3. До незавършеното решение, което искате да анализирате, изберете ..., посочете Инструмент за проверка на решенияи след това изберете Изпълнение.

    Изпълнете командата на инструмента за проверка на решения.

  4. Командният бутон за проверка на решение има индикатор за зареждане и ще забележите Running... в колоната Инструмент за проверка на решения на списъка Решение.

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

Бележка

  • Инструментът за проверка на решения може да има нужда от няколко минути, за да изпълни анализа.
  • Ще получите имейл известяване и известяване в зоната Известявания на сайта на Power Apps, когато проверката приключи.
  1. Прегледайте отчета, когато проверката приключи.

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

След като подадете проверка на решенията в средата си, проверката може да бъде отменена чрез екрана за състояние в горната дясна зона на страницата Решения.

Когато отмените дадена проверка, проверката на решение спира да се изпълнява и състоянието на проверка на решението се връща на предишното състояние.

Състояния на инструмента за проверка на решения

Когато инсталирате инструмента за проверка на решения във вашата среда, колоната Проверка на решения става налична в списъка Решения. Тази колона показва на състоянията на анализ на решения за дадено решение.

Състояние Описание
Не е изпълнявано Решението никога не е било анализирано.
Изпълнява се Решението се анализира.
Не може да бъде завършено Анализ на решението е заявен, но анализът не е приключил успешно.
Резултати от дата и час Анализът на решението е завършен и резултатите са налични за изтегляне.
Не може да бъде завършено. Резултат от дата и час Последната заявка за анализ не завърши успешно. Последните успешни резултати могат да бъдат изтеглени.
Проверено от Microsoft Това е завършено решение от Microsoft. Анализът на решение не се разрешава за тези решения.
Проверено от издател Това е завършено решение, което не е от Microsoft. В момента анализът на решение не е наличен за тези решения.

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

Когато приключи проверката на решението, можете да прегледате отчета за анализа в портала или да изтеглите отчета от уеб браузъра си. В портала имате опции за сортиране на резултатите по проблем, местоположение или по сериозност и преглед на подробна информация за проблеми, открити във вашето решение.

  1. В левия панел изберете Решения. Ако елементът не е в страничния панел, изберете …Още и след това изберете желания елемент.

  2. До незавършеното решение, където искате да видите отчета на инструмента за проверка на решения, изберете ..., посочете Инструмент за проверка на решения и след това изберете Преглед на резултати.

  3. Изберете проблем, за да видите подробностите и указанията как да го разрешите.

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

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

  1. В левия панел изберете Решения. Ако елементът не е в страничния панел, изберете …Още и след това изберете желания елемент.
  2. До незавършеното решение, където искате да изтеглите отчета на инструмента за проверка на решения, изберете ..., посочете Инструмент за проверка на решения и след това изберете Изтегляне на резултати.
  3. ZIP файлът на инструмента за проверка на решения се изтегля в папката, указана от вас, в уеб браузъра ви.

Ето обобщение на всяка колона в отчета.

Колона на отчет Описание Компонент „Прилага се за”
Проблем Заглавието на проблема, идентифициран в решението. Цялата
Категория Категоризацията на идентифицирания проблем, като производителност, поддръжка, използване , поддръжка , дизайн , сигурност , достъпност или готовност за надстройка. · · Цялата
Степен сериозност Представлява потенциалното въздействие на идентифицирания проблем. Наличните видове въздействие са критични, високи, средни, ниски и информационни. Цялата
Насоки Връзка към статия, предоставяща подробности за проблема, влиянието и препоръчителното действие. Цялата
Компонент Компонентът на решението, където е идентифициран проблемът. Цялата
Location Местоположението и/или източник файл на компонента, където е възникнал идентифицираният проблем, като механизъм или файлово име на JavaScript. Цялата
Ред № Препратката за номер на ред на проблема в засегнатия компонент на уеб ресурс. Уеб ресурси
Модул Името на модула, където е отчетен идентифицирания в механизма проблем. Потребителска дейност на работния поток
Тип Типът на проблема, идентифициран в механизма. Потребителска дейност на работния поток
Член Член на проблема, идентифициран в механизма. Потребителска дейност на работния поток
Декларация Декларацията или конфигурацията в кода, довели до проблема. Цялата
Коментари Подробности за проблема, които включват стъпки за разрешаване от високо ниво. Цялата

Изпълнете правилата за проверка на решения локално

Можете да изпълнявате правила за проверка на решения във вашата среда за разработка, за да откриете проблеми много по-рано, докато създавате ресурси за решение. Понастоящем това се поддържа за уеб ресурси (JavaScript и TypeScript). За повече подробности отидете на пакета @microsoft/eslint-plugin-power-apps NPM.

Стартиране на проверка на решение с помощта на 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, регистрирани за съобщения за извличане и RetrieveMultiple. Среден Производителност
Добавка или дейност в работен поток meta-remove-inactive Премахване на неактивни конфигурации в Dataverse. Ниска Възможност за поддържане
Добавка или дейност в работен поток meta-avoid-crm4-event Не се използва етап на регистрация на добавка на Microsoft Dynamics CRM 4.0. Среден Готовност за надграждане
Добавка или дейност в работен поток meta-avoid-retrievemultiple-annotation Избягване на регистриране на добавка в RetrieveMultiple на анотация. Висока Използване
Приложение, управлявано от модел мета-лиценз-продажби-обект-операции Решението съдържа обекти с ограничени SDK съобщения и операции, които изискват валиден лиценз за Dynamics 365. Ниска Лицензиране
Приложение, управлявано от модел meta-license-fieldservice-customcontrols Решението съдържа персонализирани контроли, които изискват валиден 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 функцията или нейните функционални еквиваленти. Критично Защита
Уеб ресурси Избягвайте с Не използвайте оператора "с". Висока Производителност
Уеб ресурси премахване-предупреждение Не използвайте функцията „alert“ или функционалните й еквиваленти. Среден Използване
Уеб ресурси Премахване на конзолата Избягвайте да използвате методи на конзолата. Среден Използване
Уеб ресурси avoid-ui-refreshribbon Избягвайте да използвате refreshRibbon във формата onload и EnableRule. Критично Производителност
Уеб ресурси use-getsecurityroleprivilegesinfo Избягвайте userSettings.securityRolePrivileges. Вместо това използвайте userSettings.getSecurityRolePrivilegesInfo. Висока Производителност
Уеб ресурси използване-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-use-delayoutput-text-input Използвайте забавено натоварване в някои сценарии, за да подобрите производителността. Среден Производителност
Приложение на платно app-reduce-screen-controls Ограничете броя на контролите за приложения за подобрена производителност. Среден Производителност
Приложение на платно етикет "включване-достъпен" Използвайте явни етикети, за да подобрите достъпността на приложенията. Среден Достъпност
Приложение на платно приложение-включва-алтернативно-въвеждане Уверете се, че всички интерактивни елементи са достъпни за алтернативни входове. Среден Достъпност
Приложение на платно приложение-избягване-автоматично стартиране Избягвайте да използвате автоматично стартиране на плейъри в приложение. Среден Достъпност

Вижте също

Най-добри практики и насоки за Dataverse
Най-добрите практики и насоки за базирани на модел приложения
Ощи проблеми и решения за инструмента за проверка на решения

Бележка

Можете ли да ни споделите повече за езиковите си предпочитания за документацията? Попълнете кратко проучване. (имайте предвид, че това проучване е на английски език)

Проучването ще отнеме около седем минути. Не се събират лични данни (декларация за поверителност).