Restructures application startup and configuration

Migrates from standalone Program.cs to Startup-based configuration
Adds application configuration JSON for environment-specific settings
Integrates Autofac dependency injection and modular service registration

Configures application services, modules, and middleware for enhanced flexibility
This commit is contained in:
Janus C. H. Knudsen 2026-01-10 20:56:29 +01:00
parent 7fc1ae0650
commit cd092f8290
4 changed files with 129 additions and 45 deletions

View file

@ -1,47 +1,14 @@
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.AspNetCore.Mvc.Razor;
using Microsoft.AspNetCore.Mvc.RazorPages;
using PlanTempus.Application.Features.Localization.Services;
using PlanTempus.Application.Features.Menu.Services;
using Autofac.Extensions.DependencyInjection;
using PlanTempus.Application;
var builder = WebApplication.CreateBuilder(args);
var host = Host.CreateDefaultBuilder(args)
.UseServiceProviderFactory(new AutofacServiceProviderFactory())
.ConfigureWebHostDefaults(webHostBuilder =>
{
webHostBuilder
.UseContentRoot(Directory.GetCurrentDirectory())
.UseStartup<Startup>();
})
.Build();
// Add Razor Pages with feature-based structure
builder.Services.AddRazorPages(options =>
{
options.RootDirectory = "/Features";
})
.AddRazorOptions(options =>
{
// View locations for partials and ViewComponents
options.ViewLocationFormats.Add("/Features/_Shared/Pages/{0}.cshtml");
options.ViewLocationFormats.Add("/Features/_Shared/Components/{1}/{0}.cshtml");
});
// Register application services
builder.Services.AddScoped<IMenuService, MockMenuService>();
builder.Services.AddScoped<ILocalizationService, JsonLocalizationService>();
var app = builder.Build();
// Developer exception page for debugging
if (app.Environment.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
// Serve static files from wwwroot
app.UseStaticFiles();
// Configure routing
app.UseRouting();
// Map Razor Pages
app.MapRazorPages();
app.Run("http://localhost:8000");
// Note: Set ASPNETCORE_ENVIRONMENT=Development for detailed error pages
host.Run();