With the most recent C# 9 feature top-level statement, a simple ASP.NET Core server can be written in just one file:
using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Hosting; Host.CreateDefaultBuilder() .ConfigureWebHostDefaults(webBuilder => { webBuilder.Configure(app => { app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapGet("/", async context => { await context.Response.WriteAsJsonAsync(new { Message = "Hello world!" }); }); }); }); }) .Build() .Run();
Of course, a csproj
file is still needed:
<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net5.0</TargetFramework> </PropertyGroup> </Project>
Running the app with dotnet run
and opening http://localhost:5000
yields:
{"message":"Hello world!"}
Fun!