| name | aspnet-core |
| description | Master ASP.NET Core with minimal APIs, MVC, middleware, dependency injection, and production-ready web applications. |
ASP.NET Core Development
Build modern web applications and APIs with ASP.NET Core using minimal APIs, MVC, and production patterns.
Core Patterns
Minimal API
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDbContext<AppDbContext>();
builder.Services.AddScoped<IUserService, UserService>();
var app = builder.Build();
app.MapGet("/api/users", async (IUserService service) =>
{
var users = await service.GetAllAsync();
return Results.Ok(users);
});
app.MapPost("/api/users", async (User user, IUserService service) =>
{
var created = await service.CreateAsync(user);
return Results.Created($"/api/users/{created.Id}", created);
});
app.Run();
Controller Pattern
[ApiController]
[Route("api/[controller]")]
public class UsersController : ControllerBase
{
private readonly IUserService _userService;
public UsersController(IUserService userService)
{
_userService = userService;
}
[HttpGet]
public async Task<ActionResult<IEnumerable<User>>> GetAll()
{
var users = await _userService.GetAllAsync();
return Ok(users);
}
[HttpPost]
public async Task<ActionResult<User>> Create(CreateUserDto dto)
{
var user = await _userService.CreateAsync(dto);
return CreatedAtAction(nameof(GetById), new { id = user.Id }, user);
}
}
Middleware
public class RequestLoggingMiddleware
{
private readonly RequestDelegate _next;
private readonly ILogger<RequestLoggingMiddleware> _logger;
public RequestLoggingMiddleware(RequestDelegate next, ILogger<RequestLoggingMiddleware> logger)
{
_next = next;
_logger = logger;
}
public async Task InvokeAsync(HttpContext context)
{
_logger.LogInformation("Request: {Method} {Path}", context.Request.Method, context.Request.Path);
await _next(context);
}
}
Best Practices
- Use dependency injection
- Implement proper error handling
- Use async/await consistently
- Leverage middleware pipeline
- Implement authentication/authorization
- Use configuration providers
- Write integration tests
- Use proper logging