Arc.Core
Arc.Core provides a lightweight application model for building .NET applications without requiring ASP.NET Core. This is ideal for console applications, background services, microservices, and scenarios where you want minimal dependencies and maximum performance.
Why Arc.Core?
Arc.Core is designed for developers who want the power of Arc's developer experience—commands, queries, identity, multi-tenancy, and validation—without the overhead of the full ASP.NET Core stack. It's perfect for:
- Console applications
- Background services and workers
- Lightweight microservices
- Custom HTTP listeners
- gRPC services
- Scenarios requiring fast startup and low memory footprint
- Native AOT (Ahead-of-Time) compilation scenarios
Key Features
- Minimal Dependencies - No web server dependencies (Kestrel, HTTP.sys), no MVC/Razor dependencies
- Native AOT Ready - Designed for Native AOT compilation with smaller binaries and faster startup
- Full Arc Features - Commands, queries, identity, multi-tenancy, validation, and more
- Static File Serving - Serve static assets and host Single Page Applications
- Flexible - Use with any .NET application type
- Performance - Faster startup times and lower memory consumption
Topics
- Overview - Learn about the motivation and design philosophy
- Getting Started - Build your first Arc.Core application
- Endpoint Mapping - Map custom HTTP endpoints with MapGet and MapPost
- Static Files - Serve static files and host SPAs
- Authentication - Implement custom authentication handlers
- Authorization - Protect your endpoints with authorization attributes
- OpenAPI Specifications - Generate OpenAPI documentation for your API
Shared Features
Many Arc features work across both Arc.Core and ASP.NET Core:
- Tenancy - Tenant isolation and context management
- Identity - Core identity system and user details
- Commands - Command handling patterns
- Queries - Query patterns and conventions
- Chronicle - Event sourcing and CQRS
- MongoDB - MongoDB integration
- Entity Framework - Entity Framework Core integration
When to Use Arc.Core vs ASP.NET Core
Use Arc.Core when you need:
- Minimal dependencies and smaller binary size
- Faster startup times
- Lower memory footprint
- Native AOT compilation support
- Console applications or background services
- Scenarios where full web framework is unnecessary
Use 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
- Maximum HTTP throughput with Kestrel
- Traditional web application patterns
Next Steps
Ready to get started? Head over to the Getting Started guide to build your first Arc.Core application.