---
title: ASP.NET Core Integration
---

The Arc provides enhanced capabilities for ASP.NET Core applications, building upon the core Arc features with web-specific functionality. Install `Cratis.Arc` for this host (`Cratis.Arc.Core` alone is the lightweight alternative). Register with `WebApplicationBuilder.AddCratisArc()` and activate with `WebApplication.UseCratisArc()`. No event store is required. OpenAPI/Swagger have separate optional packages.

## Features

- **[Configuration](/arc/backend/csharp/asp-net-core/configuration/)** - Configure Arc through appsettings.json or programmatically
- **[Authorization](/arc/backend/csharp/asp-net-core/authorization/)** - Arc role checks versus separately configured ASP.NET endpoint policies
- **[Microsoft Identity](/arc/backend/csharp/asp-net-core/microsoft-identity/)** - Integration with Microsoft Client Principal for Azure services
- **[FromRequest Attribute](/arc/backend/csharp/asp-net-core/from-request/)** - Advanced model binding combining multiple HTTP request sources
- **[Swagger](/arc/backend/csharp/asp-net-core/swagger/)** - Enhanced OpenAPI documentation with Arc-specific schema generation
- **[Validation](/arc/backend/csharp/asp-net-core/validation/)** - Comprehensive validation with FluentValidation support
- **[Without Wrappers](/arc/backend/csharp/asp-net-core/without-wrappers/)** - Control response wrapping behavior for specific endpoints
- **[Invariant Culture](/arc/backend/csharp/asp-net-core/invariant-culture/)** - Configure invariant culture defaults and understand request-level overrides

## When to Use ASP.NET Core Integration

Use the ASP.NET Core integration when you need:

- Full web framework capabilities (Kestrel, middleware pipeline, static files)
- Razor views or MVC features
- Swagger UI for API documentation
- Advanced middleware scenarios
- Kestrel's HTTP server capabilities
- Traditional web application patterns

## When to Use Arc.Core Instead

Consider using [Arc.Core](/arc/backend/csharp/core/overview/) (without ASP.NET Core) when you need:

- Minimal dependencies and smaller binary size
- A simplified `HttpListener` host rather than the ASP.NET middleware ecosystem
- A deployment whose performance and Native AOT compatibility you verify with your actual dependencies
- Console applications or background services
- Scenarios where full web framework is unnecessary

## See Also

- [Arc.Core Overview](/arc/backend/csharp/core/overview/) - Lightweight alternative without ASP.NET Core
- [Commands](/arc/backend/csharp/commands/) - Command handling patterns
- [Queries](/arc/backend/csharp/queries/) - Query patterns and conventions
- [Tenancy](/arc/backend/csharp/tenancy/) - Tenant isolation and management
