Zlepšete výkon, stabilitu a spolehlivost komponent pomocí nástroje pro kontrolu řešení
Pro zajištění komplexních obchodních požadavků mohou tvůrci skončit u vysoce pokročilých řešení, která přizpůsobují a rozšiřují platformu Microsoft Dataverse. Při pokročilých implementacích dochází ke zvýšenému riziku, kdy se zavedou problémy s výkonem, stabilitou a spolehlivostí, což může negativně ovlivnit zážitky uživatelů. Identifikace a porozumění řešení těchto problémů může být komplikované a časově náročné. Pomocí funkce kontroly řešení můžete provést bohatou kontrolu statické analýzy vašich řešení proti souboru pravidel osvědčených postupů a rychle identifikovat tyto problematické vzorce. Po dokončení kontroly obdržíte podrobnou sestavu, která obsahuje seznam zjištěných problémů, ovlivněných komponent a kódů a odkazy na dokumentaci, která popisuje, jak vyřešit každý problém.
Kontrola řešení analyzuje tyto součásti řešení:
- Vlastní aktivity pracovních postupů služby Dataverse
- Webové prostředky (HTML a JavaScript) služby Dataverse
- Konfigurace služby Dataverse, například kroky zprávy SDK
- Toky Power Automate (prostřednictvím kontroly toku)
- Výrazy Power Fx (prostřednictvím kontroly aplikací)
Kontrola řešení pracuje s nespravovanými řešeními, které lze exportovat z prostředí.
Poznámka
- Tohle téma popisuje, jak spustit kontrolu řešení z portálu tvůrce Power Apps. K dispozici je také modul PowerShell, pomocí kterého můžete přímo komunikovat se službou. Modul Microsoft.PowerApps.Checker.PowerShell lze použít k analýze nespravovaných řešení pro podporované verze prostředí Power Apps v místních a online prostředích nebo pro automatizaci a integraci služby do kanálu sestavení a vydání. Více informací: Microsoft.PowerApps.Checker.PowerShell – přehled
- Nástroj pro kontrolu řešení podporuje globální proměnné pro ECMAScript 2015 (ES6) a až do syntaxe ECMAScript 2018 (ES9). Pokud je JavaScript detekován pomocí globálních proměnných pozdějších než ES6 nebo syntaxe pozdější než ES9, je hlášen problém nepodporované webové syntaxe pro webový prostředek.
- Kontrola řešení nezaručuje, že import řešení bude úspěšný. Kontroly statické analýzy řešení neznají nakonfigurovaný stav cílového prostředí a úspěch importu může záviset na jiných řešeních nebo konfiguracích v prostředí.
Spuštění kontroly řešení
Přihlaste se do Power Apps
V levém podokně vyberte Řešení. Pokud se položka nenachází v bočním podokně, vyberte možnost …Více a poté vyberte požadovanou položku.
Vedle nespravovaného řešení, které chcete analyzovat, vyberte ..., přejděte na Kontrola řešenía potom vyberte Spustit.
Příkazové tlačítko Kontrola řešení má indikátor načítání a všimnete si zprávy Běží… ve sloupci Kontrola řešení seznamu Řešení.
Je potřeba upozornit na následující:
Kontrola řešení může trvat několik minut, než je dokončena analýza.
Po dokončení kontroly obdržíte e-mailové oznámení a oznámení v oblasti Oznámení webu Power Apps.
Zobrazte sestavu po dokončení kontroly.
Zrušení kontroly
Po odeslání kontroly řešení ve vašem prostředí, lze kontrolu zrušit prostřednictvím podokna stavu v pravém horním rohu stránky Řešení.
Při zrušení kontroly se kontrola řešení zastaví a stav kontroly řešení se vrátí do předchozího stavu.
Stavy kontroly řešení
Při instalaci kontroly řešení ve vašem prostředí bude k dispozici sloupec Kontrola řešení v seznamu Řešení. Tento sloupec zobrazí stavy analýzy řešení.
Kraj | Popis |
---|---|
Nebyl spuštěn | Řešení nebylo nikdy analyzováno. |
Spuštěno | Řešení se analyzuje. |
Nelze dokončit | Analýza řešení byla požadována, ale nebyla úspěšně dokončena. |
Výsledky od data a času | Analýza řešení byla dokončena a výsledky jsou k dispozici ke stažení. |
Nelze dokončit. Výsledek od data a času | Požadavek na nejnovější analýzu nebyl úspěšně dokončen. Poslední úspěšné výsledky si můžete stáhnout. |
Zkontrolováno společností Microsoft | Toto je spravované řešení společnosti Microsoft. Analýza řešení není povolena u těchto řešení. |
Zkontrolováno vydavatelem | Jedná se o spravované řešení třetí strany. Analýza řešení v současné době není k dispozici pro tato řešení. |
Revize sestavy kontroly řešení
Po dokončení kontroly řešení si můžete zobrazit analytickou zprávu na portálu nebo si ji stáhnout z webového prohlížeče. Na portálu máte možnosti řadit výsledky podle problému, umístění nebo závažnosti a zobrazit podrobné informace o problémech zjištěných ve vašem řešení.
V levém podokně vyberte Řešení. Pokud se položka nenachází v bočním podokně, vyberte možnost …Více a poté vyberte požadovanou položku.
Vedle nespravovaného řešení, kde chcete zobrazit sestavu kontroly řešení, vyberte ..., přejděte na Kontrola řešení a pak zvolte Zobrazit výsledky.
Chcete-li zobrazit informace a pokyny k řešení, vyberte příslušný problém.
Výsledky kontroly řešení jsou také k dispozici ke stažení. Soubor ZIP kontroly řešení je stažen do složky určené vaším webovým prohlížečem. Stažená sestava je ve formátu Excel a obsahuje několik vizualizací a sloupců, které vám pomohou identifikovat dopad, typ a místo jednotlivých problémů zjištěných ve vašem řešení. K dispozici je také odkaz na podrobné pokyny o tom, jak problém vyřešit.
- V levém podokně vyberte Řešení. Pokud se položka nenachází v bočním podokně, vyberte možnost …Více a poté vyberte požadovanou položku.
- Vedle nespravovaného řešení, kam chcete stáhnout sestavu kontroly řešení, vyberte ..., přejděte na Kontrola řešení a pak zvolte Stáhnout výsledky.
- Soubor ZIP kontroly řešení je stažen do složky určené vaším webovým prohlížečem.
Zde je souhrn všech sloupců v sestavě.
Sloupec sestavy | Popis | Vztahuje se na komponentu |
---|---|---|
Problém | Název problému identifikovaného v řešení. | Vše |
Kategorie | Kategorizace zjištěného problému, například Výkon, Udržovatelnost, Využití, Podpora, Design, Zabezpečení, Přístupnost nebo Připravenost na upgrade. | Všechny |
Závažnost | Představuje potenciální dopad identifikovaného problému. Dostupné dopady jsou Kritický, Vysoký, Střední, Nízký a Informační. | Všechny |
Pokyny | Odkaz na článek s podrobným popisem problému, dopadu a doporučené akce. | Vše |
Součást | Komponenta řešení, kde byl problém identifikován. | Vše |
Location | Místo anebo zdrojový soubor komponenty, kde došlo k zjištěnému problému, například sestavení nebo název souboru JavaScript. | Vše |
Řádek č. | Odkaz na číslo řádku problému v ovlivněné komponentě webového prostředku. | Webové prostředky |
Modul | Název modulu, kde byl zjištěn problém identifikovaný v sestavení. | Vlastní aktivita pracovního postupu |
Typ | Typ problému identifikovaného v sestavení. | Vlastní aktivita pracovního postupu |
Člen | Člen problému identifikovaného v sestavení. | Vlastní aktivita pracovního postupu |
Příkaz | Příkaz kódu nebo konfigurace, které vedly k problému. | Vše |
Komentáře | Podrobnosti o problému zahrnující základní kroky řešení. | Všechny |
Místní spouštění pravidel kontroly řešení
Ve svém vývojovém prostředí můžete spustit pravidla kontroly řešení, abyste zjistili problémy mnohem dříve, než vytvoříte prostředky řešení. Toto chování je v současné době podporováno u webových zdrojů (JavaScript a TypeScript). Pro více podrobností přejděte na balíček NPM @microsoft/eslint-plugin-power-apps.
Pravidla osvědčených postupů používaná kontrolou řešení
Následující tabulka uvádí typ komponenty, popis pravidla, závažnost a kategorii. Kritická porušení jsou blokována nebo varována při konfiguraci pro vynucení kontroly řešení se spravovanými prostředími. Další informace: Použití kontroly řešení ve spravovaných prostředích
Komponenta řešení | Název pravidla | Popis pravidla | Závažnost | Kategorie |
---|---|---|---|---|
Modul plug-in nebo aktivita pracovního postupu | meta-remove-dup-reg | Vyhněte se duplicitním registracím modulů plug-in Dataverse. | Kritický | Výkon |
Modul plug-in nebo aktivita pracovního postupu | meta-avoid-reg-no-attribute | Zahrňte atributy filtrování s registracemi modulu plug-in Dataverse. | střední | Výkon |
Modul plug-in nebo aktivita pracovního postupu | meta-avoid-reg-retrieve | Postupujte opatrně u modulů plug-in Dataverse registrovaných pro zprávy Retrieve a RetrieveMultiple. | střední | Výkon |
Modul plug-in nebo aktivita pracovního postupu | meta-remove-inactive | Neaktivní konfigurace kanálů v Dataverse. | Nejnižší | Udržovatelnost |
Modul plug-in nebo aktivita pracovního postupu | meta-avoid-crm4-event | Nepoužívejte fázi registrace modulu plug-in Microsoft Dynamics CRM 4.0. | střední | Připravenost upgradu |
Modul plug-in nebo aktivita pracovního postupu | meta-avoid-retrievemultiple-annotation | Vyhněte se registraci modulu plug-in v RetrieveMultiple anotace. | Vysoká | Využití |
Modelem řízená aplikace | meta-license-sales-entity-operations | Řešení obsahuje entity s omezenými zprávami a operacemi SDK, které vyžadují platnou licenci Dynamics 365. | Nízká | Licencování |
Modelem řízená aplikace | meta-license-fieldservice-customcontrols | Řešení obsahuje vlastní ovládací prvky, které vyžadují platnou licenci Dynamics 365 Field Service. | Nízká | Licencování |
Modelem řízená aplikace | meta-license-fieldservice-entity-operations | Řešení obsahuje entity s omezenými zprávami SDK a operacemi, které vyžadují platnou licenci Dynamics 365 Field Service. | Nízká | Licencování |
Webové zdroje | use-async | Pracujte s prostředky HTTP a HTTPS asynchronně. | Kritický | Výkon |
Webové zdroje | avoid-modals | Vyhněte se použití modálních dialogových oken. | Nejvyšší | Podpora |
Webové zdroje | avoid-dom-form | Nejvyšší | Podpora | |
Webové zdroje | avoid-dom-form-event | Nejvyšší | Podpora | |
Webové zdroje | avoid-crm2011-service-odata | Necilte na koncový bod Microsoft Dynamics CRM 2011 OData 2.0. | Kritický | Připravenost upgradu |
Webové zdroje | avoid-crm2011-service-soap | Necilte na služby Microsoft Dynamics CRM 2011 SOAP. | Kritický | Připravenost upgradu |
Webové zdroje | avoid-loadtheme | Nepoužívejte loadTheme Fluent v8 API. |
Nejnižší | Podpora |
Webové zdroje | avoid-browser-specific-api | Nepoužívejte starší rozhraní API aplikace Internet Explorer nebo moduly plug-in prohlížeče. | Kritický | Připravenost upgradu |
Webové zdroje | avoid-unpub-api | Nejvyšší | Podpora | |
Webové zdroje | avoid-window-top | Nejvyšší | Podpora | |
Webové zdroje | avoid-2011-api | Nepoužívejte zastaralý objektový model Microsoft Dynamics CRM 2011. Místo toho se řiďte dokumentací Dataverse Web API. | Nejvyšší | Připravenost upgradu |
Webové zdroje | use-relative-uri | Nepoužívejte absolutní adresy URL koncového bodu Dataverse. | střední | Udržovatelnost |
Webové zdroje | use-cached-webresource | střední | Výkon | |
Webové zdroje | use-client-context | Používejte kontexty klienta. | střední | Připravenost upgradu |
Webové zdroje | use-navigation-api | Umožňuje používat parametry rozhraní API. | střední | Připravenost upgradu |
Webové zdroje | use-offline | střední | Připravenost upgradu | |
Webové zdroje | do-not-make-parent-assumption | Nejvyšší | Návrh | |
Webové zdroje | use-org-setting | Používejte nastavení organizace. | střední | Připravenost upgradu |
Webové zdroje | use-global-context | střední | Připravenost upgradu | |
Webové zdroje | use-grid-api | Používejte API rozhraní mřížek. | střední | Připravenost upgradu |
Webové zdroje | use-utility-dialogs | střední | Využití | |
Webové zdroje | avoid-isActivityType | Nahraďte metodu Xrm.Utility.isActivityType novou metodou Xrm.Utility.gettableMetadata a nepoužívejte pravidla pásu karet. | střední | Připravenost upgradu |
Webové zdroje | meta-avoid-silverlight | Použití webového zdroje Silverlight je zastaralé. | střední | Připravenost upgradu |
Webové zdroje | remove-debug-script | Vyhněte se ladění skriptů v prostředích, která nejsou určena pro vývoj. | střední | Využití |
Webové zdroje | use-strict-mode | Pokud je to možné, používejte striktní režim. | střední | Využití |
Webové zdroje | use-strict-equality-operators | Používejte striktní operátory rovnosti. | střední | Využití |
Webové zdroje | avoid-eval | Nepoužívejte funkci „eval“ nebo její funkční ekvivalenty. | Kritický | Zabezpečení |
Webové zdroje | avoid-with | Nepoužívejte s operátorem „with“. | Nejvyšší | Výkon |
Webové zdroje | remove-alert | Nepoužívejte funkci alert ani její funkční ekvivalenty. | střední | Využití |
Webové zdroje | remove-console | Nepoužívejte metody na konzolu. | střední | Využití |
Webové zdroje | avoid-ui-refreshribbon | Nepoužívejte refreshRibbon ve formuláři onload a EnableRule. | Kritický | Výkon |
Webové zdroje | use-getsecurityroleprivilegesinfo | Nepoužívejte userSettings.securityRolePrivileges. Místo toho použijte userSettings.getSecurityRolePrivilegesInfo. | Nejvyšší | Výkon |
Webové zdroje | use-appsidepane-api | Místo Xrm.Panels.loadPanel použijte Xrm.App.sidePanes.createPane. | střední | Připravenost upgradu |
Webové zdroje | web-sdl-no-cookies | Soubory cookie protokolu HTTP jsou starý mechanismus ukládání na straně klienta s inherentními riziky a omezeními. Místo nich použijte Web Storage, IndexedDB nebo jiné moderní metody. | střední | Zabezpečení |
Webové zdroje | web-sdl-no-document-domain | Zápisy do vlastnosti document.domain musí být zkontrolovány, aby se zabránilo obcházení kontrol stejného původu. Používání domén nejvyšší úrovně, jako je azurewebsites.net, je přísně zakázáno. | střední | Zabezpečení |
Webové zdroje | web-sdl-no-document-write | Volání do document.write nebo document.writeln manipulují s modelem DOM přímo bez jakékoli sanitizace a je třeba se jim vyhnout. Místo toho použijte metodu document.createElement() nebo podobnou. | střední | Zabezpečení |
Webové zdroje | web-sdl-no-html-method | Přímá volání do metody html() často (např. v rámci jQuery) manipulují s modelem DOM bez jakékoli sanitizace a je třeba se jim vyhnout. Místo toho použijte metodu document.createElement() nebo podobnou. | střední | Zabezpečení |
Webové zdroje | web-sdl-no-inner-html | Přiřazení k vlastnostem innerHTML nebo outerHTML manipulují s modelem DOM přímo bez jakékoli sanitizace a je třeba se jim vyhnout. Místo toho použijte metodu document.createElement() nebo podobnou. | střední | Zabezpečení |
Webové zdroje | web-sdl-no-insecure-url | Nezabezpečené protokoly, jako je HTTP nebo FTP, by měly být nahrazeny jejich šifrovanými protějšky (HTTPS, FTPS), aby se zabránilo odesílání potenciálně citlivých dat přes nedůvěryhodné sítě ve formátu prostého textu. | střední | Zabezpečení |
Webové zdroje | web-sdl-no-msapp-exec-unsafe | Volání MSApp.execUnsafeLocalFunction() obcházejí ověřování vkládání skriptu a je třeba se jim vyhnout. | střední | Zabezpečení |
Webové zdroje | web-sdl-no-postmessage-star-origin | Při odesílání dat do jiných oken pomocí postMessage vždy poskytněte konkrétní cílový zdroj, ne *. Zabráníte tak úniku dat mimo hranice důvěryhodnosti. | střední | Zabezpečení |
Webové zdroje | web-sdl-no-winjs-html-unsafe | Volání do WinJS.Utilities.setInnerHTMLUnsafe() a podobné metody neprovádějí žádné ověření vstupu a je třeba se jim vyhnout. Místo toho použijte WinJS.Utilities.setInnerHTML(). | střední | Zabezpečení |
Aplikace plátna | app-formula-issues-high | Další informace viz reference ke vzorcům Power Apps. | Kritický | Návrh |
Aplikace plátna | app-formula-issues-medium | Další informace viz reference ke vzorcům Power Apps. | střední | Návrh |
Aplikace plátna | app-formula-issues-low | Další informace viz reference ke vzorcům Power Apps. | Nejnižší | Návrh |
Aplikace plátna | app-use-delayoutput-text-input | Ke zlepšení výkonu použijte v některých scénářích zpožděné načtení. | střední | Výkon |
Aplikace plátna | app-reduce-screen-controls | Chcete-li zlepšit výkon, omezte počet ovládacích prvků aplikace. | střední | Výkon |
Aplikace plátna | app-include-accessible-label | Ke zlepšení přístupnosti aplikací použijte explicitní popisky. | střední | Přístupnost |
Aplikace plátna | app-include-alternative-input | Zajistěte, aby všechny interaktivní prvky byly přístupné alternativním vstupům. | střední | Přístupnost |
Aplikace plátna | app-avoid-autostart | Nepoužívejte automatické spuštění u hráčů v aplikaci. | střední | Přístupnost |
Viz také
Doporučené postupy a pokyny pro Dataverse
Doporučené postupy a pokyny pro aplikace řízené podle modelu
Běžné problémy a řešení pro kontrolu řešení
Poznámka
Můžete nám sdělit, jaké máte jazykové preference pro dokumentaci? Zúčastněte se krátkého průzkumu. (upozorňujeme, že tento průzkum je v angličtině)
Průzkum bude trvat asi sedm minut. Nejsou shromažďovány žádné osobní údaje (prohlášení o zásadách ochrany osobních údajů).