.net Core Run Code On Startup

4 min read Jun 03, 2024
.net Core Run Code On Startup

Exécuter du code au démarrage d'une application .NET Core

Introduction

Lorsqu'on développe une application .NET Core, il est souvent nécessaire d'exécuter certaines actions dès le lancement de l'application. Cela peut inclure la configuration de la base de données, la lecture de fichiers de configuration, la connexion à des services externes ou d'autres tâches essentielles.

.NET Core offre plusieurs options pour exécuter du code au démarrage, en fonction de vos besoins et de la complexité de votre tâche.

Méthodes pour exécuter du code au démarrage

1. L'événement Startup.Configure

La méthode Configure dans la classe Startup est appelée lors du démarrage de l'application. Vous pouvez utiliser cette méthode pour exécuter du code au démarrage en utilisant le mécanisme d'injection de dépendances.

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    // Code à exécuter au démarrage
    // ...

    app.UseMvc();
}

2. Les services hébergés

Les services hébergés sont des classes qui sont enregistrées dans le conteneur de services et peuvent être utilisées dans toute l'application. Vous pouvez utiliser l'interface IHostedService pour exécuter du code au démarrage et à l'arrêt de l'application.

public class StartupService : IHostedService
{
    public Task StartAsync(CancellationToken cancellationToken)
    {
        // Code à exécuter au démarrage
        // ...

        return Task.CompletedTask;
    }

    public Task StopAsync(CancellationToken cancellationToken)
    {
        // Code à exécuter à l'arrêt
        // ...

        return Task.CompletedTask;
    }
}

3. Les tâches planifiées

.NET Core fournit un mécanisme pour planifier des tâches à l'aide de IHostedService et de l'interface IScheduledService. Vous pouvez utiliser cette approche pour exécuter du code à intervalles réguliers ou à des moments spécifiques.

public class ScheduledTask : IHostedService, IDisposable
{
    private Timer _timer;

    public Task StartAsync(CancellationToken cancellationToken)
    {
        _timer = new Timer(Execute, null, 0, 10000); // Exécuter la tâche toutes les 10 secondes
        return Task.CompletedTask;
    }

    private void Execute(object state)
    {
        // Code à exécuter à intervalles réguliers
        // ...
    }

    public Task StopAsync(CancellationToken cancellationToken)
    {
        _timer?.Dispose();
        return Task.CompletedTask;
    }

    public void Dispose()
    {
        _timer?.Dispose();
    }
}

Conclusion

Exécuter du code au démarrage d'une application .NET Core est une pratique courante pour initialiser des ressources et configurer l'application. La méthode la plus appropriée dépend de vos besoins et de la complexité de votre code.

N'oubliez pas que le code exécuté au démarrage doit être aussi simple et efficace que possible afin d'éviter de ralentir le démarrage de l'application.

Featured Posts