Поділитися через


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

Щоб задовольнити складні бізнес-вимоги, виробники часто можуть отримати високотехнологічні рішення, які налаштовують і розширюють платформу Microsoft Dataverse . З розширеними реалізаціями приходить і підвищений ризик, з'являються проблеми продуктивності, стабільності та надійності, що може негативно вплинути на досвід користувачів. Визначення та зрозуміння того, як закрити ці проблеми, може бути складним та займати багато часу. Завдяки функції перевірки рішення можна виконувати широкий спектр перевірки статичного аналізу на ваших рішеннях проти набору найкращих практичних правил, та швидко визначати ці проблемні схеми. Після завершення перевірки ви отримаєте докладний звіт, в якому перераховано виявлені проблеми, компоненти і код, що постраждали, та дає посилання на документацію про вирішення кожного питання.

Функція перевірки рішення аналізує ці компоненти рішення:

  • Настроювані справи робочого циклу Dataverse
  • Dataverse для веб-ресурсів (HTML і JavaScript)
  • Конфігурації Dataverse, такі як кроки повідомлення SDK
  • Power Automate потоки (через Flow Checker)
  • Power Fx вирази (через app checker)

Перевірка рішень працює з некерованими рішеннями, які можуть бути експортовані з середовища.

Примітка

  • У цьому розділі описано, як запустити засіб перевірки рішень на порталі розробника 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. Перегляд звіту після завершення перевірки.

Скасувати перевірку

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

Коли ви скасовуєте перевірку, функція перевірки рішення припиняє роботу та статус перевірки рішення повертається до попереднього стану.

Статуси перевірки рішень

Після встановлення функції перевірки рішення до середовища, стовпець Solution check стає доступним у списку Рішення. Цей стовпець відображає стани аналізу рішення для рішення.

Область Опис
Не запускалось Рішення ніколи не аналізувалось.
Виконується Рішення аналізується.
Не вдалося завершити. Рішення аналізу було запрошено, але аналіз не було завершено успішно.
Результати станом на дата і час Аналіз рішення завершено та результати будуть доступні для завантаження.
Не вдалося завершити. Результат станом на дата і час Останній запит аналізу не завершено успішно. Останні успішні результати можна завантажити.
Перевірено Microsoft Це кероване рішення Microsoft. Аналіз рішення не дозволений для цих рішень.
Перевірено Видавцем Це кероване рішення третьої сторони. Наразі аналіз рішення недоступний для цих рішень.

Перегляд звіту перевірки рішення

Після завершення перевірки рішення ви можете переглянути звіт аналізу на порталі або завантажити звіт у веб-браузері. На порталі ви можете сортувати результати за проблемою, розташуванням або за рівнем серйозності , а також переглядати детальну інформацію про проблеми, виявлені у вашому рішенні.

  1. На лівій панелі виберіть Рішення. Якщо елемента немає на бічній панелі, виберіть ... Додатково та знайдіть потрібний елемент.

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

  3. Виберіть проблему, щоб переглянути відомості та вказівки щодо її вирішення.

    Перегляд результатів перевірки рішення.

Результати перевірки рішень також доступні для завантаження. Zip-файл перевірки рішення буде завантажено до папки, зазначеної вашим веб-браузером. Завантажений звіт має формат Excel і декілька графічних відображень та стовпців, які допоможуть у визначенні впливу, типу та розташування кожного випуску, виявленого у вашому рішенні. Також наведено посилання на детальні рекомендації про те, як закрити проблему.

  1. На лівій панелі виберіть Рішення. Якщо елемента немає на бічній панелі, виберіть ... Додатково та знайдіть потрібний елемент.
  2. Поруч із некерованим рішенням, куди потрібно завантажити звіт перевірки рішення, виберіть ..., наведіть курсор на Перевірка рішення, а потім виберіть Завантажити результати.
  3. Zip-файл перевірки рішення буде завантажено до папки, зазначеної вашим веб-браузером.

Ось підсумок з кожного стовпця у звіті.

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

Локальне виконання правил засобу перевірки рішень

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

Найкращі практичні правила, що використовуються функцією перевірки рішень

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

Компонент рішення Назва правила Опис правила Важливість Категорія
Компонент plug-in або діяльність робочого циклу meta-remove-dup-reg Уникайте дублювання реєстрації компонентів plug-in Dataverse. Критична Ефективність
Компонент plug-in або діяльність робочого циклу meta-avoid-reg-no-attribute Додайте атрибути фільтрації під час реєстрації компонентів plug-in Dataverse. Середній Ефективність
Компонент plug-in або діяльність робочого циклу meta-avoid-reg-retrieve Будьте обережні з компонентом plug-in Dataverse, зареєстрованим для повідомлень Retrieve і RetrieveMultiple. Середній Ефективність
Компонент plug-in або діяльність робочого циклу meta-remove-inactive Видаліть неактивні конфігурації в Dataverse. Низьке Можливість обслуговування
Компонент plug-in або діяльність робочого циклу meta-avoid-crm4-event Не використовуйте стадію реєстрації компоненту plug-in Microsoft Dynamics CRM 4.0. Середній Готовність до оновлення
Компонент plug-in або діяльність робочого циклу 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-loadтема Не використовуйте loadTheme Fluent v8 API. Низьке Можливості підтримки
Веб-ресурси avoid-browser-specific-api Не використовуйте попередні версії API для Internet Explorer або компонентів plug-in браузера. Критична Готовність до оновлення
Веб-ресурси avoid-unpub-api Високе Можливості підтримки
Веб-ресурси avoid-window-top Високе Можливості підтримки
Веб-ресурси avoid-2011-api Не використовуйте вилучену об'єктну модель Microsoft Dynamics CRM 2011. Натомість дотримуйтеся документації Dataverse Web API. Високе Готовність до оновлення
Веб-ресурси use-relative-uri Не використовуйте абсолютний Dataverse для URL-адрес кінцевої точки. Середній Можливість обслуговування
Веб-ресурси 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 Уникайте додавання сценарію відлагодження в середовищах не для розробки. Середній Використання
Веб-ресурси use-strict-mode За можливості використовуйте строгий режим. Середній Використання
Веб-ресурси використовуйте-строгі-рівноправні оператори Використовуйте строгі оператори рівності. Середній Використання
Веб-ресурси уникати-eval Не використовуйте функцію «eval» або функціональні еквіваленти. Критична Безпека
Веб-ресурси уникати-з Не використовуйте оператор with. Високе Ефективність
Веб-ресурси remove-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. Середній Готовність до оновлення
Веб-ресурси web-sdl-no-cookies Файли cookie 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) маніпулюють 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(). Середній Безпека
Програма з полотна app-formula-issues-high Додаткові відомості див. у документах для посилань формул Power Apps. Критична Дизайн
Програма з полотна app-formula-issues-medium Додаткові відомості див. у документах для посилань формул Power Apps. Середній Дизайн
Програма з полотна app-formula-issues-low Додаткові відомості див. у документах для посилань формул Power Apps. Низьке Дизайн
Програма з полотна app-use-delayoutput-text-input Задля підвищення продуктивності за деякими сценаріями використовуйте відстрочене навантаження. Середній Ефективність
Програма з полотна app-reduce-screen-controls Задля підвищення продуктивності обмежуйте кількість елементів керування програм. Середній Ефективність
Програма з полотна app-include-accessible-label Щоб підвищити доступність програм, використовуйте явні мітки. Середній Спеціальні можливості
Програма з полотна app-include-alternative-input Усі інтерактивні елементи обов’язково мають бути доступними для альтернативних методів вводу. Середній Спеціальні можливості
Програма з полотна app-avoid-autostart Уникайте використання автоматичного запуску медіапрогравачів у програмі. Середній Спеціальні можливості

Див. також

Приклади та рекомендації для Dataverse
Найкращі приклади та рекомендації для програм на основі моделі
Поширені проблеми та способи їх усунення для засобу перевірки рішення

Примітка

Розкажіть нам про свої уподобання щодо мови документації? Візьміть участь в короткому опитуванні. (зверніть увагу, що це опитування англійською мовою)

Проходження опитування займе близько семи хвилин. Персональні дані не збиратимуться (декларація про конфіденційність).