Modèles d’application d’entreprise à l’aide d’eBook Xamarin.Forms
Conseils architecturaux pour le développement d’applications d’entreprise adaptables, gérables et testables Xamarin.Forms
Remarque
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 certains de la matière est obsolète.
Ce livre électronique fournit des conseils sur la façon d’implémenter le modèle Model-View-ViewModel (MVVM), l’injection de dépendances, la navigation, la validation et la gestion de la configuration, tout en conservant un couplage libre. 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, et à 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 correctement la logique métier et de présentation d’une application de son interface utilisateur. La maintenance d’une séparation propre 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. Pendant la création d’objets, le conteneur injecte toutes les dépendances requises par l’objet. 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 les composants faiblement couplés
La Xamarin.FormsMessagingCenter
classe implémente le modèle publish-subscribe, autorisant la communication basée sur les messages entre les composants qui ne sont pas pratiques à lier par objet et références 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.
Navigation
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, en raison des modifications d’état internes pilotées 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 de vue d’abord à partir de modèles d’affichage. Placer la logique de navigation dans les 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 d’entreprise 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 des configurations
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 qui ne nécessitent pas de réajustation fréquente.
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 principaux 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 des 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 ASP.NET MVC. 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 des classes de modèle et d’affichage, qui peuvent tirer parti de techniques de test unitaire spécifiques.
Site de la communauté
Ce projet a 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 des commentaires sur le livre électronique à dotnet-architecture-ebooks-feedback@service.microsoft.com.