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ń
Zaloguj się do usługi Power Apps.
W lewym okienku wybierz Rozwiązania. Jeśli elementu nie ma w okienku panelu bocznego, wybierz …Więcej, a następnie wybierz żądany element.
Obok rozwiązania niezarządzanego, który chcesz analizować, wybierz ..., wskaż Moduł sprawdzania rozwiązań, a następnie wybierz Uruchom.
Przycisk polecenia Sprawdź rozwiązanie ma wskaźnik ładowania i zauważysz Uruchomione… w kolumnie Sprawdzanie rozwiązania na liście Rozwiązanie.
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.
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.
W lewym okienku wybierz Rozwiązania. Jeśli elementu nie ma w okienku panelu bocznego, wybierz …Więcej, a następnie wybierz żądany element.
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.
Wybierz problem, aby wyświetlić szczegółowe informacje i wytyczne dotyczące rozwiązywania.
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.
- W lewym okienku wybierz Rozwiązania. Jeśli elementu nie ma w okienku panelu bocznego, wybierz …Więcej, a następnie wybierz żądany element.
- 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.
- 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).
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla