Fermer

mars 24, 2021

Mises à niveau de Sitecore: une mini-série Partie 5 Modifications de l'injection de dépendances


Le dernier article de ma mini-série sur les mises à niveau de Sitecore est centré sur l'injection de dépendances. Votre solution peut utiliser un outil tiers populaire comme Castle Windsor ou Simple Injector pour gérer DI (injection de dépendances). Pendant le processus de mise à niveau, je vous recommande de supprimer votre dépendance à ces outils tiers et d'implémenter DI à l'aide de l'injecteur de dépendances .NET. Après avoir lu mon précédent article de blog dans cette série, vous devriez remarquer un modèle dans mon approche. Réduire votre dépendance à des outils tiers rendra votre base de code plus autonome et plus facile à mettre à niveau.

Comment démarrer

Une fois de plus, accédez au gestionnaire de packages NuGet de votre solution. Vous devrez installer les versions appropriées des packages Microsoft.Extensions.DependencyInjection et Microsoft.Extensions.DependencyInjection.Abstractions. Installez ces packages avec le comportement de dépendance défini sur le plus bas pour les projets appropriés.

Implémentation de .NET DI dans un seul projet

 Sitecore - Understanding Development Approaches: A Sitecore Outlook

Recherchez dans tous les constructeurs de votre projet et prenez note de tous les services requis par ces classes.

 using Microsoft.Extensions.DependencyInjection;
en utilisant Sitecore.DependencyInjection;

espace de noms MySampleProject.IoC
{
    classe publique MySampleConfigurator: IServicesConfigurator
    {
        public void Configure (IServiceCollection serviceCollection)
        {
            serviceCollection.AddTransient  ();
            serviceCollection.AddScoped  ();
        }
    }
} 

Vous devrez enregistrer chaque contrôleur dans le projet individuellement. Vous devrez également enregistrer ici tous les services requis par vos cours. Lors de l'inscription d'un service, trois options vous sont proposées: l'inscription du service en tant que service transitoire, service étendu ou service singleton. Ces trois options définissent la durée de vie des services, c'est-à-dire la durée pendant laquelle ces services sont accessibles par votre code. Pour plus d'informations sur la manière de décider de la durée de vie dont vous avez besoin pour votre service, consultez la documentation sur l'injection de dépendances .NET ici .

Après avoir enregistré vos services, vous devrez créer un correctif fichier pour informer Sitecore que vous injectez ces services. Votre fichier de correctif ressemblera à ceci:

 
  
    
      
    
  
 

Chaque service requis ne doit être enregistré qu'UNE SEULE FOIS dans votre solution. Si un service est largement utilisé dans plusieurs projets, vous ne l'enregistrerez pas dans chaque projet individuellement. Vous devrez l'enregistrer dans une couche plus fondamentale pour éviter le réenregistrement. Après avoir mis à jour avec succès DI pour un seul projet, vous devrez répéter ces étapes pour tous les projets nécessaires tout au long de votre solution.






Source link