Modèles d’application d’entreprise à l’aide d’un Xamarin.Forms livre électronique

Conseils d’architecture pour le développement d’applications d’entreprise adaptables, maintenables et testables Xamarin.Forms

Modèles d’application d’entreprise à l’aide d’un Xamarin.Forms livre électronique

Notes

Ce livre électronique a été publié au printemps 2017 et n’a pas été mis à jour depuis. Il y a beaucoup dans le livre qui reste précieux, mais une partie du matériel est obsolète.

Ce livre électronique fournit des conseils sur la façon d’implémenter le modèle Model-ViewModel (MVVM), l’injection de dépendances, la navigation, la validation et la gestion de la configuration, tout en conservant un couplage souple. En outre, il existe également des conseils pour exécuter l’authentification et l’autorisation avec IdentityServer, accéder aux données à partir de microservices en conteneur et effectuer des tests unitaires.

Préface

Ce chapitre explique l’objectif et l’étendue du guide, ainsi que les personnes à qui il est destiné.

Introduction

Les développeurs d’applications d’entreprise font face à plusieurs défis qui peuvent modifier l’architecture de l’application pendant le développement. Par conséquent, il est important de créer une application afin qu’elle puisse être modifiée ou étendue au fil du temps. La conception d’une telle adaptabilité peut être difficile, mais implique généralement de partitionner une application en composants discrets et faiblement couplés qui peuvent être facilement intégrés ensemble dans une application.

MVVM

Le modèle Model-View-ViewModel (MVVM) permet de séparer proprement la logique métier et de présentation d’une application de son interface utilisateur. Le maintien d’une propre séparation entre la logique d’application et l’interface utilisateur permet de résoudre de nombreux problèmes de développement et peut faciliter le test, la maintenance et l’évolution d’une application. Il peut également améliorer considérablement les opportunités de réutilisation du code et permet aux développeurs et aux concepteurs d’interface utilisateur de collaborer plus facilement lors du développement de leurs parties respectives d’une application.

Injection de dépendances

L’injection de dépendances permet de découpler les types concrets du code qui dépend de ces types. Elle utilise généralement un conteneur qui détient une liste d’inscriptions et de mappages entre les interfaces et les types abstraits ainsi que les types concrets qui implémentent ou étendent ces types.

Les conteneurs d’injection de dépendances réduisent le couplage entre les objets en offrant une fonctionnalité permettant d’instancier les instances de classe, et de gérer leur durée de vie en fonction de la configuration du conteneur. Lors de la création des objets, le conteneur y injecte toutes les dépendances dont l’objet a besoin. Si ces dépendances n’ont pas encore été créées, le conteneur crée et résout d’abord leurs dépendances.

Communication entre des composants faiblement couplés

La Xamarin.FormsMessagingCenter classe implémente le modèle publier/s’abonner, ce qui permet à la communication basée sur les messages entre les composants qui ne sont pas pratiques de lier par références d’objet et de type. Ce mécanisme permet aux éditeurs et aux abonnés de communiquer sans qu’il y ait de référence l’un à l’autre, ce qui permet de réduire les dépendances entre les composants, tout en permettant aux composants d’être développés et testés indépendamment.

Xamarin.Forms inclut la prise en charge de la navigation de page, qui résulte généralement de l’interaction de l’utilisateur avec l’interface utilisateur ou de l’application elle-même, à la suite de changements d’état internes pilotés par la logique. Toutefois, la navigation peut être complexe à implémenter dans les applications qui utilisent le modèle MVVM.

Ce chapitre présente une NavigationService classe, qui est utilisée pour effectuer une navigation d’abord en mode d’affichage à partir de modèles d’affichage. Le fait de placer la logique de navigation dans des classes de modèle d’affichage signifie que la logique peut être exercée via des tests automatisés. En outre, le modèle d’affichage peut ensuite implémenter la logique pour contrôler la navigation afin de s’assurer que certaines règles métier sont appliquées.

Validation

Toute application qui accepte une entrée des utilisateurs doit s’assurer que l’entrée est valide. Sans validation, un utilisateur peut fournir des données qui provoquent l’échec de l’application. La validation applique des règles métier et empêche un attaquant d’injecter des données malveillantes.

Dans le contexte du modèle modèle-vue-vue modèle (MVVM), un modèle de vue ou un modèle est souvent nécessaire pour effectuer la validation des données et signaler les erreurs de validation à la vue afin que l’utilisateur puisse les corriger.

Gestion de la configuration

Les paramètres permettent de séparer les données qui configurent le comportement d’une application du code, ce qui permet de modifier le comportement sans regénérer l’application. Les paramètres d’application sont des données qu’une application crée et gère, et les paramètres utilisateur sont les paramètres personnalisables d’une application qui affectent le comportement de l’application et ne nécessitent pas de réajustement fréquent.

Microservices conteneurisés

Les microservices offrent une approche du développement et du déploiement d’applications adaptée aux impératifs d’agilité, de mise à l’échelle et de fiabilité des applications cloud modernes. L’un des main avantages des microservices est qu’ils peuvent être mis à l’échelle indépendamment, ce qui signifie qu’une zone fonctionnelle spécifique peut être mise à l’échelle qui nécessite plus de puissance de traitement ou de bande passante réseau pour prendre en charge la demande, sans mettre à l’échelle inutilement les zones de l’application qui ne connaissent pas de demande accrue.

Authentification et autorisation

Il existe de nombreuses approches pour intégrer l’authentification et l’autorisation dans une Xamarin.Forms application qui communique avec une application web MVC ASP.NET. Ici, l’authentification et l’autorisation sont effectuées avec un microservice d’identité conteneurisé qui utilise IdentityServer 4. IdentityServer est un framework OpenID Connect et OAuth 2.0 open source pour ASP.NET Core qui s’intègre à ASP.NET Core Identity pour effectuer l’authentification par jeton du porteur.

Accès aux données distantes

De nombreuses solutions web modernes utilisent des services web, hébergés par des serveurs web, pour fournir des fonctionnalités aux applications clientes distantes. Les opérations exposées par un service web constituent une API web. Les applications clientes doivent pouvoir utiliser l’API web sans savoir comment les données ou les opérations exposées par l’API sont implémentées.

Tests unitaires

Le test de modèles et de modèles d’affichage à partir d’applications MVVM est identique à celui des autres classes, et les mêmes outils et techniques peuvent être utilisés. Toutefois, il existe certains modèles qui sont typiques pour modéliser et afficher des classes de modèles, qui peuvent tirer parti de techniques de test unitaire spécifiques.

Site de la communauté

Ce projet dispose d’un site communautaire, sur lequel vous pouvez publier des questions et fournir des commentaires. Le site de la communauté se trouve sur GitHub. Vous pouvez également envoyer vos commentaires sur l’eBook par e-mail à dotnet-architecture-ebooks-feedback@service.microsoft.com.