- Use `IServiceCollection` for dependency injection registration in `Program.vb`: `builder.Services.AddScoped(Of IUserService, UserService)()`.
- Use `appsettings.json` with `IConfiguration` and the `IOptions(Of T)` pattern for typed configuration — bind sections at startup, not inline in services.
- Use `Async Function` with `Await` throughout the .NET request pipeline — never call `.Result` or `.Wait()` on `Task` objects in synchronous code.
- Use Entity Framework Core with `DbContext` for database access: define `DbSet(Of TEntity)` properties and migrations with `dotnet ef migrations add`.
- Register `DbContext` with `AddDbContext(Of AppDbContext)()` using a connection string from `IConfiguration` — use `Scoped` lifetime for web applications.
- Use `ILogger(Of T)` for structured logging: `logger.LogInformation("Processing order {OrderId}", orderId)` — configure sinks in `appsettings.json` with Serilog or NLog.
- Use `HttpClientFactory` with named or typed clients: `builder.Services.AddHttpClient(Of IExternalApiClient, ExternalApiClient)()` for managed connection pool lifecycle.