Overblog
Editer l'article Suivre ce blog Administration + Créer mon blog
SmartnSkilled E-learning

Les fonctions d'enchaînement Map et MapWhen dans la logique Middleware !

21 Décembre 2018 , Rédigé par SmartnSkilled Publié dans #Informatique, #Programmation

Les fonctions d'enchaînement Map et MapWhen dans la logique Middleware !

Vous pensez mettre à jour vos connaissances en termes du développement des applications .Net MVC multi plateformes ?

Vous cherchez d’où commencer pour maîtriser le .Net Core ?

Vous souhaitez booster vos carrières en améliorant vos connaissances en termes de langage C# et de MVC ?

Depuis que Microsoft a annoncé .NET Core 2.1, un large spectre de la communauté Microsoft a eu du mal à comprendre les différences entre .NET Core et .NET Standard.

Le .NET Framework est utilisé pour créer des applications de bureau et des applications ASP.NET s'exécutant sur Internet Information Server (IIS).

Le .NET Core est une implémentation libre, multiplateforme et open source du Framework managé. Il prend en charge quatre types d'applications : console, ASP.NET Core, Cloud et plateforme Windows universelle (UWP).

Ce pendant les projets de type Windows Forms et Windows Presentation Foundation (WPF) feront très probablement partie de la version prochaine 3.0.


Techniquement, .NET Core ne prend en charge que les applications en console. Cependant, ASP.NET Core et UWP sont des modèles d’application basés sur.NET Core pour la précision.

Contrairement à .NET Framework.NET Core n'est pas considéré comme un composant Windows. Par conséquent, les mises à jour sont fournies sous forme de packages NuGet essentiellement et non via Windows Update.


Étant donné que le runtime .NET Core est installé indépendamment de la plateforme que ce soit Window, Linux ou MAC OS et que les applications sont mises à jour via le gestionnaire de packages, les applications peuvent être associées à une version .NET Core particulière et mises à jour individuellement, surtout pour le cas des versions d’application plus anciennes, on parle essentiellement de la version 1.x.

La version 2.1 essaye d’y remédier en introduisant Windows Compatibility Pack.

 .NET Core est une spécification pour l'implémentation de la BCL.

Dans la mesure où une implémentation .NET doit respecter cette norme, les développeurs d'applications n'auront pas à se soucier des différentes versions de la BCL pour chaque implémentation d'infrastructure gérée.

Chaque révision de l'infrastructure possède son propre ensemble de bibliothèques de classes de base. La bibliothèque de classes de base (BCL) contient des classes telles que la gestion des exceptions, les chaînes, XML, les entrées et sorties, le réseau et les collections.

Les bibliothèques de classes Framework (FCL) telles que WPF, WCF et ASP.NET ne font pas partie de la BCL et ne sont donc pas incluses dans .NET Standard.

En fournissant des API cohérentes, il est plus facile de porter des applications vers différentes implémentations gérées, ainsi que de fournir des outils.

.NET Core est défini comme un seul package NuGet car toutes les implémentations .NET sont nécessaires pour le prendre en charge, ce là est plus visible à partir de la version 2.0. L'outil devient plus facile car les outils disposent d'un ensemble cohérent d'API à utiliser pour une version donnée.

Partons vers la structure du projet ! GO... 👉  

Dans le cadre de la structure du projet, on va présenter le nouveau concept nouvellement présenté par MVC .Net Core 2.x qui est le Middleware utilisé essentiellement pour contrôler et influencer les requêtes et les réponses.

🍃 Découvrons les méthodes de branchement MAP et MapWhen dans le cadre de Middleware :

Pour le cas des applications ASP.NET classiques, les requêtes et les réponses sont traitées selon une logique de succession d’événements.La représentation de pipeline d’une application MVC classique figurée ci-dessous explique le flux de traitement des requêtes et des réponses entre l’application d’une part et le monde extérieur d’autre part.

Les fonctions d'enchaînement Map et MapWhen dans la logique Middleware !

Le développeur à aspect .Net, doit absolument connaitre la succession d’événements suivants.

Les fonctions d'enchaînement Map et MapWhen dans la logique Middleware !

Avant le passage de la requête vers le code d’application pour être traitée, le développeur interagit et intervient pour injecter sa propre logique et influencer la requête avant d’être transmise vers le code d’application ( au niveau du cadre jaune).

D’autre part, dans le sens de réponse, l’utilisateur intercepte la réponse et l’influence comme indiqué ci-dessous ( au niveau du cadre jaune).

Les fonctions d'enchaînement Map et MapWhen dans la logique Middleware !

Pour contrôler les requêtes et les réponses, l’utilisateur doit injecter des objets de type IHTTPModule ou IHTTPHandler.

🍃 Les fonctions de gestion des enchaînements 

La fonction Use

  • La méthode Use ajoute un middleware au pipeline.
  • La méthode Use est utilisée souvent dans un contexte d’appel séquentiel de plusieurs Middleware
  • Il est possible de rencontrer des méthodes extensions dont le préfixe est Use, ces méthodes étendent IApplicationBuilder pour injecter des Middlewared’une façon séquentielle
  • La méthode UseMiddleware permet de lancer la logique du Middleware encapsulé dans une classe 
  • Il est possible aussi de définir une méthode extension personnalisée qui qui étend l’interface IApplicationBuilder pour déclencher une logique deMiddleware. 

La fonction Run

Contrairement à la méthode Use, la méthode Run ne permet pas de lancer une série de Middleware pour être exécutés d’une manière séquentielle.

Voici un exemple d’application erronée de Run : 

Les fonctions d'enchaînement Map et MapWhen dans la logique Middleware !

Je vous propose aussi un deuxième exemple d’application erronée de Run :

Autre application erronée de Run

 

La fonction Map

La fonction Map est utilisée pour spécifier un chemin de requête pour le déclenchement d’un Middleware

C’est le cas de l’exemple d’application de Map ci-dessous :

Les fonctions d'enchaînement Map et MapWhen dans la logique Middleware !

La fonction MapWhen

La fonction MapWhen est similaire à Map, sauf qu’elle ajoute plus de granularité à la condition de déclenchement d’un Middleware en spécifiant un paramètre au niveau de l’URL, les en-têtes, les chaînes de requête, les cookies, etc.

Exemple d’application de MapWhen

Les fonctions d'enchaînement Map et MapWhen dans la logique Middleware !

Suivez avec beaucoup de détails la vidéo suivante sur Le concept de Middleware - Les méthodes de branchement MAP et MapWhen. 

 

Partager cet article
Repost0
Pour être informé des derniers articles, inscrivez vous :
Commenter cet article