Udostępnij przez


Optymalizuj wydajność aplikacji Canvas wymagających złożonej logiki biznesowej

Ponieważ organizacje coraz częściej korzystają z platformy Power Platform do tworzenia skalowalnych aplikacji opartych na danych, wybór odpowiedniego podejścia do implementowania logiki biznesowej staje się krytyczny. Ta architektura referencyjna przedstawia dwie opcje — funkcje Power Fx i niestandardowe interfejsy API usługi Dataverse — w celu optymalizacji wydajności i możliwości konserwacji w aplikacjach kanwy usługi Power Apps.

Scenario

Domyślnie gdy aplikacja wysyła zapytania o dane lub wykonuje wiele modyfikacji, wysyła pojedyncze żądania sieci HTTP do usługi Dataverse. Usługa Dataverse zwraca dane do aplikacji, a logika aplikacji przetwarza je.

Ten wzorzec implementacji powoduje czas oczekiwania, zwłaszcza gdy aplikacja wysyła wiele żądań, takich jak w funkcji ForAll. Czas oczekiwania negatywnie wpływa na wydajność i środowisko użytkownika. Jeśli na przykład aplikacja pobiera i przekształca dane wiele razy w pętli ForAll, ogólny czas oczekiwania może znacząco się zwiększyć, co prowadzi do powolnego i nieefektywnego doświadczenia użytkownika.

Aby zoptymalizować interakcję z danymi, przenieś logikę i operacje pobierania danych z aplikacji kanwy do usługi Dataverse przy użyciu niestandardowych interfejsów API usługi Dataverse lub funkcji Power Fx. Operacje modyfikacji danych są wykonywane w ramach transakcji, zapewniając spójność danych w przypadku wystąpienia błędu.

Napiwek

Ten artykuł zawiera przykładowy scenariusz i uogólnioną architekturę przykładową, aby zilustrować, w jaki sposób aplikacje kanwy korzystające z usługi Dataverse mogą przenosić złożoną logikę biznesową do niestandardowych interfejsów API usługi Dataverse i funkcji Power Fx w celu zwiększenia wydajności. Możesz zmodyfikować przykład architektury dla wielu różnych scenariuszy i branż.

Diagram architektury

Na tym diagramie funkcje Power Fx są używane do przenoszenia złożonej logiki biznesowej z aplikacji kanwy do usługi Dataverse. Możesz również użyć niestandardowego interfejsu API usługi Dataverse, aby uzyskać ten sam wynik. Zapoznaj się z Zaleceniami, aby zdecydować, którą opcję wybrać.

Diagram architektury przedstawiający różnicę między używaniem wbudowanych możliwości aplikacji kanwy dla operacji na danych a używaniem funkcji Power Fx.

Workflow

  1. Aplikacja kanwowa Power Apps używa Dataverse do zarządzania alokacją zasobów. Aplikacja używa funkcji Power Fx (niestandardowy interfejs API usługi Dataverse spełnia ten sam cel) w przypadku intensywnych operacji na danych zamiast bezpośrednio korzystać z wbudowanych funkcjonalności dostępu. Aplikacja nadal używa wbudowanych funkcji usługi Dataverse do operacji na mniejszą skalę oraz zadań, które nie wymagają obsługi transakcyjnej.

  2. Funkcja Power Fx (z niestandardowym interfejsem API usługi Dataverse) jest skonfigurowana do przekazywania parametrów wejściowych z aplikacji wywołującej i odbierania wyniku (parametrów odpowiedzi) z funkcji (lub interfejsu API) za pośrednictwem zdefiniowanych parametrów wyjściowych. Dla:

    • Funkcja Power Fx (wersja zapoznawcza): Zaimplementuj logikę w programie Power Apps Studio. Korzystając z funkcji Power Fx, twórcy mogą tworzyć złożoną logikę z niewielką lub małą wiedzą w zakresie kodowania. Dowiedz się więcej w funkcjach Power Fx.

    • Niestandardowy interfejs API usługi Dataverse: wdrożenie logiki poprzez utworzenie dodatku plug-in .NET dla Dataverse. Niestandardowe wtyczki platformy .NET wymagają większej wiedzy na temat kodowania, ale zapewniają większą kontrolę i rozszerzalność. Więcej informacji znajdziesz w sekcji Niestandardowe interfejsy API usługi Dataverse.

Szczegóły przypadku użycia

Usługa Power Apps umożliwia organizacjom tworzenie niestandardowych środowisk użytkownika i scentralizowanie logiki biznesowej. Korzystając z usługi Power Apps, można uzyskać wydajniejszą architekturę danych i zmniejszyć obciążenie po stronie klienta.

W poniższym przykładzie aplikacja kanwy usługi Power Apps ułatwia twórcom efektywne przydzielanie zasobów do zespołów i zadań. Ten wzorzec architektury można zastosować do podobnych scenariuszy, w których aplikacja kanwy obejmuje operacje danych i wymaga:

  • Wiele pętli w aplikacji kanwy, których nie można zrealizować za pomocą funkcji Concurrent.
  • Intensywne obliczenia dla wielu przekształceń danych.
  • Spójny czas wykonywania, niezależny od liczby elementów w pętli lub połączenia internetowego użytkownika.
  • Spójność danych w wielu operacjach modyfikacji danych.

Aby przydzielić zasoby, producent musi określić lokalizacje, zadania, podzadania i inne powiązane metadane alokacji. W aplikacji kanwy ekran "Przegląd zasobów" przedstawia wiele poziomów skorelowanych danych, takich jak:

  • Zasoby
    • Adres
      • Zadania
        • Podzadania
          • Zatwierdzenie

Aby osiągnąć ten cel, możesz zaimplementować logikę aplikacji przy użyciu programu Power Fx w następujący sposób:

ForAll(Resources,
    //Transformations
    ForAll(Location,
        //Transformations...
        ForAll(Tasks,
            //Transformations ...
        )
    )
)

Ta logika generuje wiele wywołań HTTP do usługi Dataverse po uruchomieniu aplikacji. Najlepszym rozwiązaniem jest skonsolidowanie danych w widokach usługi Dataverse lub korzystanie z funkcji współbieżnych lub innych technik Power Fx, jednak takie podejście nie zawsze jest możliwe lub nie spełnia celów wydajności.

Aby rozwiązać ten problem, zlikwiduj wielokrotne wywołania HTTP z aplikacji kanwy, przenosząc transformację danych — przetwarzanie danych i wyniki — w jedną odpowiedź. Takie podejście zmniejsza czas oczekiwania na pobieranie danych, zwiększa ogólną wydajność aplikacji kanwy i zapewnia bezproblemowe i bardziej dynamiczne środowisko użytkownika. Scentralizowanie logiki przekształcania danych zapewnia spójne i wydajne przetwarzanie po stronie serwera, dzięki czemu rozwiązanie jest skalowalne w przypadku dużych ilości danych i złożonych przekształceń.

Opcje

Zarówno niestandardowe interfejsy API usługi Dataverse, jak i funkcje Power Fx rozszerzają logikę biznesową usługi Dataverse.

Funkcje języka Power Fx

Funkcja Power Fx tworzy abstrakcję niestandardowej funkcji interfejsu API usługi Dataverse, której można używać na potrzeby logiki.

Funkcje Power Fx rozszerzają logikę biznesową usługi Dataverse i mogą być wywoływane na żądanie ze składników platformy Power Platform, takich jak aplikacje kanwy Power Apps, przepływy Power Automate i agenci niestandardowi utworzeni za pomocą Microsoft Copilot Studio. Ta funkcja obsługuje implementację bardziej podstawowej logiki, która nie jest wystarczająco skomplikowana, aby wymagać korzystania z pełnej możliwości niestandardowego interfejsu API usługi Dataverse.

Niestandardowe interfejsy API usługi Dataverse

Wtyczka Dataverse to niestandardowy obsługiwacz zdarzeń wykonywany w odpowiedzi na określone zdarzenia. W przypadku niestandardowego interfejsu API usługi Dataverse, kiedy definiujesz ten interfejs API, tworzy to zdarzenie niestandardowe, które aplikacja wywołuje podczas korzystania z tego interfejsu API. Implementujesz te wtyczki jako niestandardowe klasy skompilowane w zestawie .NET Framework, które następnie przesyłasz i rejestrujesz w usłudze Dataverse.

Wtyczki rozszerzają logikę biznesową usługi Dataverse, umożliwiając deweloperom pisanie niestandardowego kodu do wykonywania w przypadku wystąpienia niektórych zdarzeń, takich jak tworzenie, aktualizowanie lub usuwanie rekordów albo za pomocą wywołań bezpośrednich przy użyciu niestandardowego interfejsu API. Ta funkcja obsługuje implementację bardziej złożonych i dostosowanych procesów biznesowych w ramach platformy Power Platform, ułatwiając pełną integrację z aplikacjami kanwy lub usługą Power Automate.

Korzystając zarówno z funkcji Power Fx, jak i niestandardowych interfejsów API usługi Dataverse, twórcy mogą wywoływać akcję funkcji bezpośrednio w formule, obsługując zarówno akcje powiązane, jak i niezwiązane. Mogą również dodać obiekt języka środowiska Power Fx do aplikacji, umożliwiając dostęp do funkcji. Za pomocą niestandardowych interfejsów API usługi Dataverse twórcy mogą obsługiwać nietypowe pola obiektów zarówno dla danych wejściowych, jak i wyjściowych.

Rekomendacje

Zarówno funkcje Power Fx, jak i niestandardowe interfejsy API Dataverse kończą operacje modyfikacji danych w transakcji.

Wybierz funkcje Power Fx , jeśli przypadek użycia spełnia następujące kryteria:

  • Logika nie jest nadmiernie złożona i może być wyrażona przy użyciu programu Power Fx.
  • Chcesz zwiększyć możliwości twórców (innych niż deweloperzy), aby tworzyć i utrzymywać logikę.
  • Preferowane jest podejście o niskim kodzie , które bezproblemowo integruje się z portalem usługi Power Apps.
  • Potrzebna jest spójność transakcyjna , ale nie wymaga zaawansowanych funkcji platformy .NET.
  • Chcesz scentralizować logikę do ponownego użycia między aplikacjami i przepływami bez angażowania deweloperów .NET.

Dowiedz się więcej w artykule Funkcje w usłudze Microsoft Dataverse (wersja zapoznawcza).

Wybierz niestandardowe interfejsy API Dataverse, jeśli Twój przypadek użycia wymaga:

  • Złożona logika biznesowa , którą usługa Power Fx nie może wyrazić.
  • Zaawansowane możliwości, takie jak niestandardowa obsługa błędów, telemetria i integracja z systemami zewnętrznymi.
  • Wiedza na temat programowania na platformie .NET jest dostępna i akceptowalna w przepływie pracy.
  • Pełna kontrola nad potokiem wykonywania, w tym rejestracją i monitorowaniem dodatków plug-in.
  • Dane telemetryczne i diagnostyka, takie jak usługa Application Insights na potrzeby śledzenia kondycji.

Dowiedz się więcej w temacie Tworzenie i używanie niestandardowych interfejsów API.

Jeśli Twoim celem jest usprawnienie wydajności aplikacji kanwy przy zachowaniu dostępności i konserwacji rozwiązania przez twórców, funkcje Power Fx są lepszym wyborem. Jeśli tworzysz warstwę serwerową o znaczeniu krytycznym i wysoce dostosowaną, rozważ użycie niestandardowych interfejsów API usługi Dataverse.

Alternatives

Innym podejściem do tego wzorca jest przeniesienie operacji danych i logiki do interfejsu API REST, a następnie zaimplementowanie łącznika niestandardowego w celu umożliwienia użycia operacji z usługi Power Apps. Różnica w tym podejściu polega na tym, gdzie wykonywana jest logika i operacje na danych. W takim przypadku są uruchamiane w zasobie obliczeniowym, który implementuje interfejs API REST, taki jak funkcja platformy Azure.

Ponieważ nie są one uruchamiane w piaskownicy środowiska uruchomieniowego usługi Dataverse, operacje danych są szybsze niż operacje z klienta, ale wolniejsze niż te wykonywane w usłudze Dataverse. Podobnie logika nie działa w kontekście transakcji w Dataverse. Jeśli nie zostaną wykonane specjalne kroki, każda operacja danych jest niezależna i nie jest wykonywana jako jednostka transakcyjna.

Dowiedz się więcej w artykule Używanie interfejsu API REST do rozszerzania funkcjonalności aplikacji kanwy.

Rozważania

Te rozważania wdrażają filary Power Platform Well-Architected, zestaw zasad przewodnich, które poprawiają jakość obciążenia. Dowiedz się więcej w Microsoft Power Platform artykule Dobrze zaprojektowane środowisko.

Reliability

Zaprojektuj obciążenie, aby uniknąć niepotrzebnej złożoności: przesunięcie operacji danych i logiki z aplikacji kanwy pozwala uniknąć niepotrzebnej złożoności w aplikacji. Takie podejście umożliwia również scentralizowanie logiki, dzięki czemu inne aplikacje w organizacji mogą z niej korzystać. Ponadto twórcy usługi Power Apps korzystają z ulepszeń wydajności bez dodawania złożoności do aplikacji.

Testowanie odporności i dostępności: Przeniesienie logiki aplikacji Canvas do niestandardowych interfejsów API Dataverse lub funkcji Power Fx umożliwia testowanie interfejsu API lub funkcji niezależnie od aplikacji.

Mierzenie i publikowanie wskaźników kondycji (niestandardowe interfejsy API usługi Dataverse): niestandardowe interfejsy API usługi Dataverse zapewniają zaawansowane monitorowanie i telemetrię za pośrednictwem wtyczki platformy .NET. Aby zapewnić odpowiednie śledzenie, rozważ użycie rejestrowania w usłudze Application Insights.

Doskonałość operacyjna

Przyjęcie bezpiecznych praktyk wdrażania: standaryzacja wdrażania wszelkich zmian w aplikacji Power Apps przy użyciu zautomatyzowanych procesów wdrażania, takich jak potoki. Przenoś aplikację do środowiska produkcyjnego dopiero po przetestowaniu zmian. ** Jako składniki rozwiązania, niestandardowe interfejsy API Dataverse i funkcje Power Fx są wdrażane razem z aplikacją, gdy znajdują się w tym samym rozwiązaniu Dataverse. Takie podejście minimalizuje ryzyko braku synchronizacji składników w środowiskach.

Zaimplementuj strategię łagodzenia skutków niepowodzenia wdrożenia: Podczas wdrażania aplikacji oraz niestandardowego interfejsu API usługi Dataverse lub funkcji Power Fx, strategia łagodzenia skutków niepowodzenia jest uproszczona, ponieważ stosuje tę samą strategię wycofywania lub naprawy co aplikacja.

Efektywność operacyjna

Projektowanie pod kątem spełnienia wymagań dotyczących wydajności: Ocena wymagań dotyczących wydajności i ilości danych rozwiązania. Sprawdź, jak aplikacja uzyskuje dostęp do danych i czy usługa Power Apps korzystająca z różnych źródeł danych spowalnia wydajność z powodu opóźnienia poszczególnych żądań wysyłanych do każdego magazynu danych. Jeśli na przykład logika aplikacji działa w wielu wierszach w źródle danych, może być możliwe przeniesienie całego ruchu sieciowego do niestandardowego interfejsu API lub funkcji. Zmniejszenie liczby operacji do jednej interakcji z niestandardowym interfejsem API lub funkcją, która następnie obsługuje komunikację z usługą Dataverse, sprawia, że operacje są wydajniejsze.

Optymalizowanie logiki (niestandardowe interfejsy API usługi Dataverse): Ponieważ logika staje się bardziej złożona w aplikacji kanwy, niestandardowe interfejsy API usługi Dataverse umożliwiają odciążanie tej logiki do scentralizowanej usługi wielokrotnego użytku.

Wydajność testowania: wraz z testowaniem pod kątem funkcjonalności i awarii przetestuj i opracuj punkt odniesienia dla wydajności. Oceń tę podstawową wartość odniesienia podczas cyklu publikacji, jeśli niestandardowy interfejs API usługi Dataverse lub funkcja Power Fx jest wrażliwa na zmiany w czasie zakończenia pracy.

Współautorzy

Firma Microsoft utrzymuje ten artykuł. Następujący współautorzy napisali ten artykuł.

Główni autorzy: