Minimal API in .NET 6
Sembra incredibile, ma la struttura del progetto per la creazione di una Web API in Visual Studio 2022 ora è questa:
>>WebApplication >>appettings.json >>progam.cs >>WebApplication.csproj
Non abbiamo più il file startup.cs
e neppure la cartella Controller
ma solamente il file program.cs
che ci permette di aggiungere tutte le feature necessarie in maniera estremamente pulita e semplice:
>>var builder = WebApplication.CreateBuilder(args); >>var app = builder.Build(); >>app.MapGet("/", => "Hello World!"); >>app.Run();
Non è certo ciò a cui eravamo abituati noi amanti del framework di Microsoft, sicuramente troverà molte similitudini chi invece è abituato a sviluppare Web API sfruttando Node.js. La presenza di un singolo file ci permette di aggiungere nuove feature (e nuovi endpoint) semplicemente modificando il file program.cs
:
>var builder = WebApplication.CreateBuilder(args); >builder.Services.AddScoped<IWeatherService, WeatherService>(); >var app builder.Build(); >app.MapPost("/weatherforecast", async (IWeatherService weatherService) => >>await weatherService.GetWeatherForecastAsync()) >>.WithName("GetWeatherForecast") >>.WithTags("WeatherForecast"); >app.Run();
In rete potete trovare esempi simili e forse più interessanti, ma il punto è un altro:
“La grande novità delle Minimal API sta tutta nel fatto che ora abbiamo solo il file
program.cs
o c’è dell’altro?“.
Dover gestire più file comporta da sempre più lavoro per gli sviluppatori e l’IDE Visual Studio, quando si apre una “solution”, carica tutti i file in automatico. Giunto a questo punto, mosso da curiosità e spinto dalla lettura dell’articolo di Tim Deschryver ho intravisto un approccio più pulito allo sviluppo. Il fatto che ora sia possibile tralasciare la tradizionale struttura focalizzata più sugli aspetti tecnici dell’applicazione, ci permette di concentrarci su un aspetto “domain-driven“, dove l’applicazione è strutturata attorno al Dominio.