using NLog; using NLog.Web; // Early init of NLog to allow startup and exception logging, before host is built var logger = LogManager.Setup().LoadConfigurationFromAppSettings().GetCurrentClassLogger(); logger.Debug("init main"); try { var builder = WebApplication.CreateBuilder(args); // Ajoute les services n�cessaires pour permettre l'utilisation des // controllers avec des vues. builder.Services.AddControllersWithViews() // Ajoute la compilation des vues lors de l'ex�cution de l'application. // Cela nous �vite de recompiler l'application � chaque modification de vue. // N�cessite le package Nuget Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation. .AddRazorRuntimeCompilation(); // NLog: Setup NLog for Dependency injection builder.Logging.ClearProviders(); builder.Host.UseNLog(); var app = builder.Build(); // Active la possibilit� de servir des fichiers statiques pr�sents dans // le dossier wwwroot. app.UseStaticFiles(); // Active le middleware permettant le routage des requ�tes entrantes. app.UseRouting(); // Ajoute un endpoint permettant de router les urls // avec la forme /controller/action/id(optionnel). // Equivalent � app.MapDefaultControllerRoute() app.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); app.Run(); } catch (Exception exception) { // NLog: catch setup errors logger.Error(exception, "Stopped program because of exception"); throw; } finally { // Ensure to flush and stop internal timers/threads before application-exit (Avoid segmentation fault on Linux) NLog.LogManager.Shutdown(); }