Poprawienie wydajności, stabilności i niezawodności składnika za pomocą sprawdzania rozwiązania

Aby spełnić złożone wymagania biznesowe, twórcy często mogą chcieć korzystać z bardzo zaawansowanych rozwiązań, które dostosowuje i rozszerzają platformę Microsoft Dataverse. Implementacje zaawansowane wiążą się ze zwiększonym ryzykiem, gdzie pojawiają się problemy wydajności, stabilności i niezawodności, co może negatywnie wpływać na użytkownika końcowego. Zidentyfikowanie i zrozumienie sposobu rozwiązywania tych problemów może być skomplikowane i czasochłonne. Dzięki funkcji sprawdzania rozwiązania możesz przeprowadzać bogate analizy statyczne na rozwiązaniach dla zestawu reguł najlepszych metod postępowania i szybko określać te problematyczne wzorce. Po zakończeniu sprawdzania otrzymujesz szczegółowy raport zawierający listę stwierdzonych problemów, składniki i kod, na które wywarty został wpływ oraz łącza do dokumentacji, w której opisano sposób rozwiązania każdego problemu.

Moduł sprawdzania rozwiązań analizuje te składniki rozwiązania:

  • Niestandardowe działania przepływu pracy Dataverse
  • Zasoby sieci Web (HTML i JavaScript) Dataverse
  • Konfiguracje Dataverse, takie jak etapy komunikatu SDK
  • Przepływy Power Automate (za pośrednictwem sprawdzania przepływu)
  • Wyrażenia Power Fx (z pomocą narzędzia sprawdzania aplikacji)

Moduł sprawdzania rozwiązania współpracuje z rozwiązaniami niezarządzanymi, które mogą być eksportowane ze środowiska.

Uwaga

  • W tym temacie wyjaśniono, jak uruchomić program kontroler rozwiązań w portalu Power Apps Maker. Dostępny jest także moduł PowerShell, który może być używany do interakcji bezpośrednio z usługą. Moduł Microsoft.PowerApps.Checker.PowerShell może być użyty do analizy niezarządzanych rozwiązań dla środowisk Power Apps lub do zautomatyzowania i zintegrowania usługi z potokiem budowania i wydawania. Więcej informacji: Omówienie Microsoft.PowerApps.Checker.PowerShell
  • Moduł sprawdzania rozwiązań obsługuje zmienne globalne dla ECMAScript 2015 (ES6) i do składni ECMAScript 2018 (ES9). Gdy JavaScript zostanie wykryty przy użyciu zmiennych globalnych późniejszych niż ES6 lub składni późniejszej niż ES9, zgłaszany jest problem ze składnią nieobsługiwaną przez WWW dla zasobu WWW.
  • Użycie Narzędzia sprawdzania rozwiązania nie jest gwarancją, że importowanie rozwiązania powiedzie się. Kontrole statyczne wykonane przy użyciu rozwiązania nie wiedzą o stanie skonfigurowanym w środowisku docelowym i pomyślne zaimportowanie może być zależne od innych rozwiązań lub konfiguracji w środowisku.

Uruchom moduł sprawdzania rozwiązań

  1. Zaloguj się do usługi Power Apps.

  2. W lewym okienku wybierz Rozwiązania. Jeśli elementu nie ma w okienku panelu bocznego, wybierz …Więcej, a następnie wybierz żądany element.

  3. Obok rozwiązania niezarządzanego, który chcesz analizować, wybierz ..., wskaż Moduł sprawdzania rozwiązań, a następnie wybierz Uruchom.

    Uruchom polecenie sprawdzania rozwiązań.

  4. Przycisk polecenia Sprawdź rozwiązanie ma wskaźnik ładowania i zauważysz Uruchomione… w kolumnie Sprawdzanie rozwiązania na liście Rozwiązanie.

    Stan modułu sprawdzania rozwiązań.

    Należy zwrócić uwagę na następujące kwestie:

    • Sprawdzanie rozwiązania może potrzebować kilku minut, aby wykonać analizę.

    • Otrzymasz powiadomienie e-mail i powiadomienie w obszarze Powiadomienia witryny Power Apps, gdy kontrola zostanie zakończona.

  5. Wyświetl raport po zakończeniu kontroli.

Anuluj kontrolę

Po przesłaniu kontroli rozwiązania w środowisku, kontrolę można anulować za pośrednictwem okienka stanu w prawym górnym rogu strony Rozwiązania.

Po anulowaniu kontroli kontrola rozwiązania przestanie działać i stan kontroli rozwiązania wróci do poprzedniego stanu.

Stany modułu sprawdzania rozwiązań

Podczas instalowania modułu sprawdzania rozwiązania w środowisku, kolumn Sprawdzanie rozwiązania stanie się dostępna na liście Rozwiązania. Ta kolumna ukazuje stany analizy rozwiązania dla rozwiązania.

województwo Opis
Nie została uruchomiona. Rozwiązanie nigdy nie było analizowane.
Uruchomiono Rozwiązanie jest analizowane.
Nie można zakończyć Analiza rozwiązania była wymagana, ale analiza nie została ukończona pomyślnie.
Wyniki Data i godzina Analiza rozwiązania została ukończona i wyniki są dostępne do pobrania.
Nie można zakończyć. Wyniki Data i godzina Najnowsze żądanie analizy nie powiodło się. Ostatnie udane wyniki można pobrać.
Wyewidencjonowane przez Microsoft Jest to rozwiązanie zarządzane przez firmę Microsoft. Analiza rozwiązania nie może zostać przeprowadzona na tych rozwiązaniach.
Wyewidencjonowane przez Wydawcę Jest to rozwiązanie zarządzane przez inną firmę. Obecnie analiza rozwiązania nie jest dostępna dla tych rozwiązań.

Przejrzyj raport sprawdzania rozwiązania

Po zakończeniu sprawdzania rozwiązania można wyświetlić raport z analizy w portalu lub pobrać raport z przeglądarki sieci Web. W portalu dostępne są opcje sortowania wyników według Problemu, Lokalizacji lub Ważności oraz wyświetlania szczegółowych informacji o problemach wykrytych w rozwiązaniu.

  1. W lewym okienku wybierz Rozwiązania. Jeśli elementu nie ma w okienku panelu bocznego, wybierz …Więcej, a następnie wybierz żądany element.

  2. Obok rozwiązania niezarządzanego, w którym chcesz przeglądać raport sprawdzania rozwiązania, wybierz ..., wskaż Moduł sprawdzania rozwiązania, a następnie wybierz Przejrzyj wyniki.

  3. Wybierz problem, aby wyświetlić szczegółowe informacje i wytyczne dotyczące rozwiązywania.

    Wyświetl wyniki modułu sprawdzania rozwiązań.

Wyniki sprawdzania rozwiązań są również dostępne do pobrania. Plik zip modułu sprawdzania rozwiązań jest pobierany do folderu określonego przez przeglądarkę sieci Web. Raport do pobrania jest w formacie Excel i zawiera kilka wizualizacji i kolumny, które pomagają w określaniu wpływu, typu i lokalizacji każdego problemu zauważonego w rozwiązaniu. Zapewniane jest również łącze do szczegółowych instrukcji dotyczących sposobu rozwiązania tego problemu.

  1. W lewym okienku wybierz Rozwiązania. Jeśli elementu nie ma w okienku panelu bocznego, wybierz …Więcej, a następnie wybierz żądany element.
  2. Obok rozwiązania niezarządzanego, do którego ma zostać pobrany raport sprawdzania rozwiązania, wybierz ..., wskaż Sprawdzanie rozwiązania, a następnie wybierz Pobierz wyniki.
  3. Plik zip modułu sprawdzania rozwiązań jest pobierany do folderu określonego przez przeglądarkę sieci Web.

Poniżej przedstawiono podsumowanie każdej kolumny w raporcie.

Kolumna raportu Opis Dotyczy składnika
Problem Tytuł problemu stwierdzonego w rozwiązaniu. Wszystkie
Kategoria Kategoryzowanie identyfikowanego problemu, takie jak Wydajność, Łatwość obsługi, Użycie, Możliwość obsługi, Projekt, Bezpieczeństwo, Dostępność lub Gotowość do uaktualnienia. wszystkie
Waga błędu Reprezentuje potencjalny wpływ zidentyfikowanego problemu. Dostępne typy wpływów to Krytyczne, Duże, Średnie, Niskie i Do informacji. wszystkie
Wskazówki Łącze do artykułu określającego problem, wpływ i zalecane działanie. Wszystkie
Składnik Składnik rozwiązania, w którym problem zauważono. Wszystkie
Location Lokalizacja i/lub źródłowy plik składnika, w którym problem, który został zidentyfikowany, wystąpił, taki jak zestaw lub nazwa pliku w języku JavaScript. Wszystkie
Numer wiersza Odwołanie numeru wiersza problemu w dotkniętym składniku zasobu sieci Web. Zasoby sieci Web
Moduł Nazwa modułu, gdzie został wykryty problem wskazany w zestawie. Niestandardowa aktywność przepływu pracy
Typ Typ problemu zidentyfikowanego w zestawie. Niestandardowa aktywność przepływu pracy
Element członkowski Członek problemu zidentyfikowanego w zestawie. Niestandardowa aktywność przepływu pracy
Oświadczenie Oświadczenie lub konfiguracja kodu powodujące problem. Wszystkie
Komentarze Szczegółowe informacje o problemie, które zawierają podstawowe kroki naprawcze. wszystkie

Lokalne uruchamianie reguł sprawdzania rozwiązań

W środowisku projektowym można uruchomić reguły sprawdzania rozwiązań, aby wykrywać problemy znacznie wcześniej, gdy zasoby rozwiązania będą się tworzyć. Jest to obecnie obsługiwane w przypadku zasobów sieci web (JavaScript i TypeScript). Aby uzyskać więcej informacji, przejdź do pakietu NPM @microsoft/eslint-plugin-power-apps.

Reguły najlepszych rozwiązań stosowane przez moduł sprawdzania rozwiązań

W poniższej tabeli wymieniono typy składników, opis reguły, ważność i kategoria. Krytyczne naruszenia są blokowane lub wskazywane podczas konfigurowania ich do wymuszenia sprawdzania rozwiązań w środowiskach zarządzanych. Więcej informacji: Stosowanie sprawdzania rozwiązań w środowiskach zarządzanych

Składnik rozwiązania Nazwa reguły Opis reguły Waga błędu Kategoria
Dodatek typu plug-in lub działanie przepływu pracy meta-remove-dup-reg Należy unikać powtarzających się rejestracji dodatków plug-in Dataverse. Krytyczne Wydajność
Dodatek typu plug-in lub działanie przepływu pracy meta-avoid-reg-no-attribute Dołączanie atrybutów filtrowania do rejestracji dodatków plug-in Dataverse. Średnia Wydajność
Dodatek typu plug-in lub działanie przepływu pracy meta-avoid-reg-retrieve Zachowaj ostrożność w przypadku dodatków typu plug-in Dataverse rejestrowanych dla wiadomości Retrieve i RetrieveMultiple. Średnia Wydajność
Dodatek typu plug-in lub działanie przepływu pracy meta-remove-inactive Usuń nieaktywne konfiguracje Dataverse. Minimum Możliwość konserwacji
Dodatek typu plug-in lub działanie przepływu pracy meta-avoid-crm4-event Nie używaj etapu rejestracji dodatku typu plug-in Microsoft Dynamics CRM 4.0. Średnia Gotowość do uaktualnienia
Dodatek typu plug-in lub działanie przepływu pracy meta-avoid-retrievemultiple-annotation Unikaj rejestrowania wtyczki na RetrieveMultiple adnotacji. Maksimum Sposób użycia
Aplikacja oparta na modelu meta-license-sales-entity-operations Rozwiązanie zawiera encje z ograniczonymi komunikatami i operacjami SDK, które wymagają ważnej licencji Dynamics 365. Minimum Licencjonowanie
Aplikacja oparta na modelu meta-license-fieldservice-customcontrols Rozwiązanie zawiera niestandardowe kontrolki, które wymagają ważnej licencji Dynamics 365 Field Service. Minimum Licencjonowanie
Aplikacja oparta na modelu meta-license-fieldservice-entity-operations Rozwiązanie zawiera encje z ograniczonymi komunikatami SDK i operacjami, które wymagają ważnej licencji Dynamics 365 Field Service. Minimum Licencjonowanie
Zasoby internetowe use-async Wchodź w interakcję z zasobami HTTP i HTTPS asynchronicznie. Krytyczne Wydajność
Zasoby internetowe avoid-modals Unikaj używania modalnych okien dialogowych. Maksimum Możliwość obsługi
Zasoby internetowe avoid-dom-form Maksimum Możliwość obsługi
Zasoby internetowe avoid-dom-form-event Maksimum Możliwość obsługi
Zasoby internetowe avoid-crm2011-service-odata Nie ustawiaj za cel punktu końcowego Microsoft Dynamics CRM 2011 OData 2.0. Krytyczne Gotowość do uaktualnienia
Zasoby internetowe avoid-crm2011-service-soap Nie ustawiaj za cel usług Microsoft Dynamics CRM 2011 SOAP. Krytyczne Gotowość do uaktualnienia
Zasoby internetowe avoid-loadtheme Nie używaj interfejsu loadTheme API Fluent v8. Minimum Możliwość obsługi
Zasoby internetowe avoid-browser-specific-api Nie używaj starszych interfejsów API programu Internet Explorer ani dodatków plug-in przeglądarki. Krytyczne Gotowość do uaktualnienia
Zasoby internetowe avoid-unpub-api Maksimum Możliwość obsługi
Zasoby internetowe avoid-window-top Maksimum Możliwość obsługi
Zasoby internetowe avoid-2011-api Nie używaj przestarzałego modelu obiektu Microsoft Dynamics CRM 2011. Zamiast tego należy postępować zgodnie z dokumentacją Dataverse interfejsu API sieci Web. Maksimum Gotowość do uaktualnienia
Zasoby internetowe use-relative-uri Nie używaj bezwzględnych adresów URL punktu końcowego Dataverse. Średnia Możliwość konserwacji
Zasoby internetowe use-cached-webresource Średnia Wydajność
Zasoby internetowe use-client-context Używaj kontekstów klienta. Średnia Gotowość do uaktualnienia
Zasoby internetowe use-navigation-api Użyj parametrów interfejsów API nawigacji. Średnia Gotowość do uaktualnienia
Zasoby internetowe use-offline Średnia Gotowość do uaktualnienia
Zasoby internetowe do-not-make-parent-assumption Maksimum Zaprojektuj
Zasoby internetowe use-org-setting Użyj ustawień organizacyjnych. Średnia Gotowość do uaktualnienia
Zasoby internetowe use-global-context Średnia Gotowość do uaktualnienia
Zasoby internetowe use-grid-api Użyj interfejsu API siatki. Średnia Gotowość do uaktualnienia
Zasoby internetowe use-utility-dialogs Średnia Sposób użycia
Zasoby internetowe avoid-isActivityType Zastąp metodę Xrm.Utility.isActivityType przy użyciu nowych Xrm.Utility.gettableMetadata i nie używaj w regułach wstążki. Średnia Gotowość do uaktualnienia
Zasoby internetowe meta-avoid-silverlight Użycie zasobu sieci Web Silverlight jest przestarzałe. Średnia Gotowość do uaktualnienia
Zasoby internetowe remove-debug-script Unikaj włączania skryptów debugowania w środowiskach innych niż projektowanie. Średnia Sposób użycia
Zasoby internetowe use-strict-mode Jeśli jest to możliwe używaj trybu strict. Średnia Sposób użycia
Zasoby internetowe use-strict-equality-operators Używaj operatorów równości typu strict. Średnia Sposób użycia
Zasoby internetowe avoid-eval Nie należy używać funkcji "eval" ani jej ekwiwalentów funkcjonalnych. Krytyczne Zabezpieczenia
Zasoby internetowe avoid-with Nie używać operatora 'with'. Maksimum Wydajność
Zasoby internetowe remove-alert Nie używaj funkcji „alert” ani jej odpowiedników funkcjonalnych. Średnia Sposób użycia
Zasoby internetowe remove-console Należy unikać stosowania metod w konsoli. Średnia Sposób użycia
Zasoby internetowe avoid-ui-refreshribbon Należy unikać używania refreshRibbon przy ładowaniu formularza i EnableRule. Krytyczne Wydajność
Zasoby internetowe use-getsecurityroleprivilegesinfo Unikaj userSettings.securityRolePrivileges. W zamian użyj obiektu userSettings.getSecurityRolePrivilegesInfo. Maksimum Wydajność
Zasoby internetowe use-appsidepane-api Użyj Xrm.App.sidePanes.createPane zamiast Xrm.Panels.loadPanel. Średnia Gotowość do uaktualnienia
Zasoby internetowe web-sdl-no-cookie Pliki cookie w przeglądarkach HTTP to stary mechanizm przechowywania danych po stronie klienta z nieodłącznym ryzykiem i ograniczeniami. Zamiast tego użyj magazynu sieci Web IndexedDB lub innych nowoczesnych metod. Średnia Zabezpieczenia
Zasoby internetowe web-sdl-no-document-domain Zapisuje właściwości document.domain, musi być przeglądane, aby uniknąć pominięcia kontroli z tego samego źródła. Używanie domen najwyższego poziomu, takich jak azurewebsites.net, jest zakazane. Średnia Zabezpieczenia
Zasoby internetowe web-sdl-no-document-write Wywołania metod document.write lub document.writeln mogą bezpośrednio modyfikować specyfikacje DOM bez oczyszczania i należy ich unikać. Zamiast tego należy użyć document.createElement () lub podobnych metod. Średnia Zabezpieczenia
Zasoby internetowe web-sdl-no-html-method Bezpośrednie wywołania metody html() często (np. w strukturach biblioteki jQuery) zmieniają specyfikacje DOM bez oczyszczania i należy ich unikać. Zamiast tego należy użyć document.createElement () lub podobnych metod. Średnia Zabezpieczenia
Zasoby internetowe web-sdl-no-inner-html Przypisania do właściwości innerHTML lub outerHTML zmieniają specyfikacje DOM bez oczyszczania i należy ich unikać. Zamiast tego należy użyć document.createElement () lub podobnych metod. Średnia Zabezpieczenia
Zasoby internetowe web-sdl-no-insecure-url Niezabezpieczone protokoły, takie jak HTTP lub FTP, powinny zostać zastąpione ich szyfrowanymi odpowiednikami (HTTPS, FTPS), aby uniknąć wysyłania potencjalnie poufnych danych za pośrednictwem niezaufanych sieci w postaci zwykłego tekstu. Średnia Zabezpieczenia
Zasoby internetowe web-sdl-no-msapp-exec-unsafe Wywołanie MSApp.execUnsafeLocalFunction() pomija sprawdzanie poprawności skryptów i należy go unikać. Średnia Zabezpieczenia
Zasoby internetowe web-sdl-no-postmessage-star-origin Zawsze należy podać konkretne docelowe miejsce, a nie * podczas wysyłania danych do innych okien przy użyciu funkcji postMessage w celu uniknięcia wycieku danych poza strefę zaufania. Średnia Zabezpieczenia
Zasoby internetowe web-sdl-no-winjs-html-unsafe Wywołania WinJS.Utilities.setInnerHTMLUnsafe() i podobnych metod nie przeprowadzają sprawdzania poprawności danych wejściowych i należy ich unikać. Zamiast tego należy użyć WinJS.Utilities.setInnerHTML(). Średnia Zabezpieczenia
Aplikacja kanwy app-formula-issues-high Aby uzyskać więcej szczegółowych informacji, zobacz Opis odwołań do formuł Power Apps. Krytyczne Zaprojektuj
Aplikacja kanwy app-formula-issues-medium Aby uzyskać więcej szczegółowych informacji, zobacz Opis odwołań do formuł Power Apps. Średnia Zaprojektuj
Aplikacja kanwy app-formula-issues-low Aby uzyskać więcej szczegółowych informacji, zobacz Opis odwołań do formuł Power Apps. Minimum Zaprojektuj
Aplikacja kanwy app-use-delayoutput-text-input W niektórych scenariuszach użyj opóźnionego ładowania, aby zwiększyć wydajność. Średnia Wydajność
Aplikacja kanwy app-reduce-screen-controls Ograniczenie liczby kontrolek aplikacji zwiększających wydajność. Średnia Wydajność
Aplikacja kanwy app-include-accessible-label Użyj jawnych etykiet, aby zwiększyć dostępność aplikacji. Średnia Dostępność
Aplikacja kanwy app-include-alternative-input Upewnij się, że wszystkie elementy interaktywne są dostępne dla innych składników. Średnia Dostępność
Aplikacja kanwy app-avoid-autostart Unikaj używania autostartu na graczach w aplikacji. Średnia Dostępność

Zobacz też

Sprawdzone metody postępowania i wskazówki dotyczące Dataverse
Najważniejsze wskazówki i wytyczne dotyczące aplikacji opartych na modelu
Typowe problemy i rozwiązania dla modułu sprawdzania rozwiązań

Uwaga

Czy możesz poinformować nas o preferencjach dotyczących języka dokumentacji? Wypełnij krótką ankietę. (zauważ, że ta ankieta jest po angielsku)

Ankieta zajmie około siedmiu minut. Nie są zbierane żadne dane osobowe (oświadczenie o ochronie prywatności).