Підвищуйте продуктивність, стабільність і надійність компонентів за допомогою засобу перевірки рішень
Щоб задовольнити складні бізнес-вимоги, виробники часто можуть отримати високотехнологічні рішення, які налаштовують і розширюють платформу 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, повідомляється про проблему з непідтримуваним синтаксисом для веб-ресурсу.
- Застосування засобу перевірки рішення не гарантує, що імпорт рішення буде успішним. Засобу перевірок у режимі статичного аналізу, що виконуються щодо рішення, не відомий стан налаштування середовища призначення, а успішний імпорт може залежати від інших рішень або конфігурацій у середовищі.
Запустіть функцію перевірки рішень
Увійти до Power Apps.
На лівій панелі виберіть Рішення. Якщо елемента немає на бічній панелі, виберіть ... Додатково та знайдіть потрібний елемент.
Поруч із керованим рішенням, яке ви хочете проаналізувати, виберіть ..., наведіть курсор на Перевірка рішення, а потім виберіть Запустити.
Кнопка команди Перевірка рішень має індикатор завантаження, і ви помітите Виконується... у стовпці Перевірка рішення у списку Рішення.
Зверніть увагу на такі особливості:
Функція перевірки рішення може виконувати аналіз протягом кількох хвилин.
Ви отримаєте сповіщення на електронну пошту та сповіщення в області Сповіщення на сайті Power Apps після завершення перевірки.
Перегляд звіту після завершення перевірки.
Скасувати перевірку
Після того, як ви подасте перевірку рішення до середовища, перевірку можна буде скасувати через панель статусу в верхній правій частині сторінки Рішення.
Коли ви скасовуєте перевірку, функція перевірки рішення припиняє роботу та статус перевірки рішення повертається до попереднього стану.
Статуси перевірки рішень
Після встановлення функції перевірки рішення до середовища, стовпець Solution check стає доступним у списку Рішення. Цей стовпець відображає стани аналізу рішення для рішення.
Область | Опис |
---|---|
Не запускалось | Рішення ніколи не аналізувалось. |
Виконується | Рішення аналізується. |
Не вдалося завершити. | Рішення аналізу було запрошено, але аналіз не було завершено успішно. |
Результати станом на дата і час | Аналіз рішення завершено та результати будуть доступні для завантаження. |
Не вдалося завершити. Результат станом на дата і час | Останній запит аналізу не завершено успішно. Останні успішні результати можна завантажити. |
Перевірено Microsoft | Це кероване рішення Microsoft. Аналіз рішення не дозволений для цих рішень. |
Перевірено Видавцем | Це кероване рішення третьої сторони. Наразі аналіз рішення недоступний для цих рішень. |
Перегляд звіту перевірки рішення
Після завершення перевірки рішення ви можете переглянути звіт аналізу на порталі або завантажити звіт у веб-браузері. На порталі ви можете сортувати результати за проблемами, розташуванням або серйозністю та переглядати детальну інформацію про проблеми, виявлені у вашому рішенні.
На лівій панелі виберіть Рішення. Якщо елемента немає на бічній панелі, виберіть ... Додатково та знайдіть потрібний елемент.
Поруч із некерованим рішенням, де вам необхідно переглянути звіт перевірки рішення, виберіть ..., наведіть курсор на Перевірка рішення, а потім виберіть Перегляд результатів.
Виберіть проблему, щоб переглянути відомості та вказівки щодо її вирішення.
Результати перевірки рішень також доступні для завантаження. Zip-файл перевірки рішення буде завантажено до папки, зазначеної вашим веб-браузером. Завантажений звіт має формат Excel і декілька графічних відображень та стовпців, які допоможуть у визначенні впливу, типу та розташування кожного випуску, виявленого у вашому рішенні. Також наведено посилання на детальні рекомендації про те, як закрити проблему.
- На лівій панелі виберіть Рішення. Якщо елемента немає на бічній панелі, виберіть ... Додатково та знайдіть потрібний елемент.
- Поруч із некерованим рішенням, куди потрібно завантажити звіт перевірки рішення, виберіть ..., наведіть курсор на Перевірка рішення, а потім виберіть Завантажити результати.
- 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. | Критична | Готовність до оновлення |
Веб-ресурси | уникати-завантажувати тему | Не використовуйте 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 | Уникайте додавання сценарію відлагодження в середовищах не для розробки. | Середній | Використання |
Веб-ресурси | використовуйте-строгий-режим | За можливості використовуйте строгий режим. | Середній | Використання |
Веб-ресурси | використовуйте-строгі-рівні-оператори | Використовуйте строгі оператори рівності. | Середній | Використання |
Веб-ресурси | уникати-eval | Не використовуйте функцію «eval» або функціональні еквіваленти. | Критична | Безпека |
Веб-ресурси | уникати-з | Не використовуйте оператор with. | Високе | Ефективність |
Веб-ресурси | видалити-оповіщення | Не використовуйте функцію «оповіщення» або її функціональні еквіваленти. | Середній | Використання |
Веб-ресурси | видалити-консоль | Уникайте застосування методів на консолі. | Середній | Використання |
Веб-ресурси | 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-include-accessible-label | Щоб підвищити доступність програм, використовуйте явні мітки. | Середній | Спеціальні можливості |
Програма з полотна | app-include-alternative-input | Усі інтерактивні елементи обов’язково мають бути доступними для альтернативних методів вводу. | Середній | Спеціальні можливості |
Програма з полотна | app-avoid-autostart | Уникайте використання автоматичного запуску медіапрогравачів у програмі. | Середній | Спеціальні можливості |
Див. також
Приклади та рекомендації для Dataverse
Найкращі приклади та рекомендації для програм на основі моделі
Поширені проблеми та способи їх усунення для засобу перевірки рішення
Примітка
Розкажіть нам про свої уподобання щодо мови документації? Візьміть участь в короткому опитуванні. (зверніть увагу, що це опитування англійською мовою)
Проходження опитування займе близько семи хвилин. Персональні дані не збиратимуться (декларація про конфіденційність).