Poprawa wydajności, stabilności i niezawodności rozwiązania
Rozwiązania służą do dystrybucji Power Platform obiektów, takich jak aplikacje, tabele, przepływy, zasoby sieci Web i wtyczki. W tym artykule przedstawiono funkcję sprawdzania rozwiązań, zaawansowane narzędzie, które wykonuje kompleksową analizę statyczną obiektów rozwiązania względem zestawu reguł najlepszych rozwiązań. Korzystając z narzędzia do sprawdzania rozwiązań, można szybko zidentyfikować problematyczne wzorce w składnikach i otrzymać szczegółowe raporty, które wyróżniają problemy, składniki, których dotyczy problem, oraz udostępniają łącza do dokumentacji dotyczącej sposobu rozwiązania każdego problemu. Dzięki temu Twoje rozwiązania są zoptymalizowane pod kątem wydajności, stabilności i niezawodności.
Moduł sprawdzania rozwiązania współpracuje z rozwiązaniami niezarządzanymi, które mogą być eksportowane ze środowiska.
Narzędzie do sprawdzania rozwiązań można uruchomić z Power Apps (make.powerapps.com) lub przy użyciu programu PowerShell.
W jaki sposób narzędzie do sprawdzania rozwiązań może Ci pomóc
Aby sprostać złożonym wymaganiom biznesowym, twórcy często mogą zdecydować się na wysoce zaawansowane rozwiązania, które dostosowują się i rozszerzają Power Platform. 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ązań możesz w ciągu kilku sekund przeprowadzić kontrolę rozwiązania, które korzysta z zestawu reguł najlepszych rozwiązań, aby szybko zidentyfikować problematyczne wzorce. Po zakończeniu sprawdzania otrzymasz szczegółowy raport w Power Apps wiadomości e-mail, który zawiera listę zidentyfikowanych problemów, składników i kodu, których dotyczy problem, oraz linki do dokumentacji opisującej 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)
Uwaga
- 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 modułu sprawdzania rozwiązań nie gwarantuje, że import rozwiązania zakończy się pomyślnie. Testy analizy statycznej wykonywane względem rozwiązania nie znają skonfigurowanego stanu środowiska docelowego, a powodzenie importu może zależeć 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.
Uwaga
- 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 firmę Microsoft. 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.
Uruchamianie modułu sprawdzania rozwiązań przy użyciu programu PowerShell
Dostępny jest moduł programu PowerShell, którego można użyć do bezpośredniej interakcji 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
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 dołączania skryptu debugowania w środowiskach nieprogramistycznych. | Ś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 używaj tej eval funkcji ani jej funkcjonalnych odpowiedników. |
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 Web Storage, 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 (na przykład w frameworku jQuery) manipulują DOM bez żadnej sanityzacji i należy tego 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 metody WinJS.Utilities.setInnerHTMLUnsafe() i podobne metody nie powodują 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 | Przejdź do Power Apps dokumentacji formuły , aby uzyskać dodatkowe informacje. | 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).