Wzorce aplikacji dla przedsiębiorstw korzystające z Xamarin.Forms książki eBook

Wskazówki dotyczące architektury dotyczące tworzenia aplikacji dla przedsiębiorstw, które można dostosować, obsługiwać i testować Xamarin.Forms

Enterprise Application Patterns using Xamarin.Forms eBook

Uwaga

Ta książka elektroniczna została opublikowana wiosną 2017 r. i od tego czasu nie została zaktualizowana. Jest wiele w książce, która pozostaje cenna, ale niektóre z materiałów są przestarzałe.

Ten podręcznik zawiera wskazówki dotyczące implementowania wzorca Model-View-ViewModel (MVVM), wstrzykiwania zależności, nawigacji, walidacji i zarządzania konfiguracją przy zachowaniu luźnego sprzężenia. Ponadto istnieją również wskazówki dotyczące przeprowadzania uwierzytelniania i autoryzacji za pomocą serwera IdentityServer, uzyskiwania dostępu do danych z konteneryzowanych mikrousług i testowania jednostkowego.

Wstęp

W tym rozdziale opisano przeznaczenie i zakres przewodnika oraz jego przeznaczenie.

Wprowadzenie

Deweloperzy aplikacji dla przedsiębiorstw muszą zmierzyć się z kilkoma wyzwaniami, które mogą zmieniać architekturę aplikacji podczas opracowywania. Dlatego ważne jest, aby utworzyć aplikację, aby można ją było modyfikować lub rozszerzać w miarę upływu czasu. Projektowanie pod kątem takiej adaptacji może być trudne, ale zazwyczaj polega na partycjonowaniu aplikacji w dyskretne, luźno powiązane składniki, które można łatwo zintegrować z aplikacją.

MVVM

Wzorzec Model-View-ViewModel (MVVM) pomaga w przejrzysty sposób oddzielić logikę biznesową i prezentacji aplikacji od interfejsu użytkownika. Utrzymywanie czystej separacji między logiką aplikacji a interfejsem użytkownika pomaga rozwiązać wiele problemów programistycznych i może ułatwić testowanie, konserwację i rozwijanie aplikacji. Może również znacznie poprawić możliwości ponownego wykorzystania kodu i umożliwić deweloperom i projektantom interfejsu użytkownika łatwiejsze współpracę podczas tworzenia odpowiednich części aplikacji.

Wstrzykiwanie zależności

Wstrzykiwanie zależności umożliwia oddzielenie konkretnych typów od kodu, który zależy od tych typów. Zazwyczaj używa kontenera, który zawiera listę rejestracji i mapowań między interfejsami i typami abstrakcyjnymi oraz konkretne typy, które implementują lub rozszerzają te typy.

Kontenery iniekcji zależności zmniejszają sprzężenie między obiektami, zapewniając obiekt do tworzenia wystąpień klas i zarządzania ich okresem istnienia na podstawie konfiguracji kontenera. Podczas tworzenia obiektów kontener wprowadza do niego wszelkie zależności wymagane przez obiekt. Jeśli te zależności nie zostały jeszcze utworzone, kontener tworzy i rozwiązuje swoje zależności jako pierwsze.

Komunikacja między luźno sprzężonymi składnikami

Klasa Xamarin.FormsMessagingCenter implementuje wzorzec publikowania-subskrybowania, umożliwiając komunikację opartą na komunikatach między składnikami, które są niewygodne do łączenia według odwołań do obiektu i typu. Ten mechanizm umożliwia wydawcom i subskrybentom komunikowanie się bez odwołwania się do siebie, co pomaga zmniejszyć zależności między składnikami, jednocześnie umożliwiając niezależne opracowywanie i testowanie składników.

Xamarin.Forms Obejmuje obsługę nawigacji po stronie, która zazwyczaj wynika z interakcji użytkownika z interfejsem użytkownika lub z samej aplikacji w wyniku zmian stanu opartego na logice wewnętrznej. Jednak nawigacja może być złożona do zaimplementowania w aplikacjach korzystających ze wzorca MVVM.

W tym rozdziale przedstawiono klasę, która służy do wyświetlania nawigacji opartej NavigationService na modelu z poziomu modeli widoków. Umieszczenie logiki nawigacji w klasach modelu widoku oznacza, że logikę można wykonywać za pomocą testów automatycznych. Ponadto model widoków może następnie zaimplementować logikę w celu kontrolowania nawigacji w celu zapewnienia, że niektóre reguły biznesowe są wymuszane.

Weryfikacja

Każda aplikacja, która akceptuje dane wejściowe od użytkowników, powinna upewnić się, że dane wejściowe są prawidłowe. Bez walidacji użytkownik może podać dane, które powodują niepowodzenie aplikacji. Walidacja wymusza reguły biznesowe i uniemożliwia atakującemu wstrzyknięcie złośliwych danych.

W kontekście wzorca Model-View-ViewModel (MVVM) model widoku lub model często będzie wymagany do przeprowadzenia walidacji danych i zasygnalizować wszelkie błędy weryfikacji w widoku, aby użytkownik mógł je poprawić.

Zarządzanie konfiguracją

Ustawienia umożliwiają rozdzielenie danych, które konfigurują zachowanie aplikacji z kodu, co pozwala na zmianę zachowania bez ponownego kompilowania aplikacji. Ustawienia aplikacji to dane tworzone przez aplikację i zarządzane przez nią, a ustawienia użytkownika to dostosowywalne ustawienia aplikacji, które mają wpływ na zachowanie aplikacji i nie wymagają częstego ponownego dostosowywania.

Konteneryzowane mikrousługi

Mikrousługi oferują podejście do tworzenia i wdrażania aplikacji, które jest odpowiednie dla wymagań dotyczących elastyczności, skalowania i niezawodności nowoczesnych aplikacji w chmurze. Jedną z głównych zalet mikrousług jest możliwość niezależnego skalowania ich w poziomie, co oznacza, że można skalować określony obszar funkcjonalny, który wymaga większej mocy obliczeniowej lub przepustowości sieci w celu obsługi zapotrzebowania, bez niepotrzebnego skalowania obszarów aplikacji, które nie mają zwiększonego zapotrzebowania.

Uwierzytelnianie i autoryzacja

Istnieje wiele metod integrowania uwierzytelniania i autoryzacji w aplikacji komunikującej się z aplikacją Xamarin.Forms internetową MVC ASP.NET. W tym miejscu uwierzytelnianie i autoryzacja są wykonywane za pomocą mikrousługi tożsamości konteneryzowanej, która korzysta z serwera IdentityServer 4. IdentityServer to platforma open source OpenID Połączenie i OAuth 2.0 dla platformy ASP.NET Core, która integruje się z ASP.NET Core Identity w celu przeprowadzania uwierzytelniania tokenu elementu nośnego.

Uzyskiwanie dostępu do danych zdalnych

Wiele nowoczesnych rozwiązań internetowych korzysta z usług internetowych hostowanych przez serwery internetowe w celu zapewnienia funkcjonalności zdalnych aplikacji klienckich. Operacje uwidaczniane przez usługę internetową stanowią internetowy interfejs API, a aplikacje klienckie powinny mieć możliwość korzystania z internetowego interfejsu API bez znajomości sposobu implementacji danych lub operacji udostępnianych przez interfejs API.

Testowanie jednostek

Testowanie modeli i wyświetlanie modeli z aplikacji MVVM jest identyczne z testowaniem innych klas, a te same narzędzia i techniki mogą być używane. Istnieją jednak pewne wzorce typowe dla klas modelu i wyświetlania modeli, które mogą korzystać z określonych technik testowania jednostkowego.

Witryna społeczności

Ten projekt zawiera witrynę społeczności, w której można publikować pytania i przekazywać opinie. Witryna społeczności znajduje się w witrynie GitHub. Alternatywnie możesz wysłać wiadomość e-mail na adres .dotnet-architecture-ebooks-feedback@service.microsoft.com