Installation

June 10, 2026 · View on GitHub

Requirements

  • .NET 10.0 or later
  • Entity Framework Core 10.0 (for EF Core backend)
  • An ASP.NET Core application (for HTTP endpoints)

NuGet Packages

Install the packages you need via the .NET CLI or your package manager:

# Core — always required
dotnet add package DataSurface.Core

# EF Core backend — for static entities backed by Entity Framework
dotnet add package DataSurface.EFCore

# HTTP layer — for REST endpoint generation via Minimal APIs
dotnet add package DataSurface.Http

# Dynamic entities — for runtime-defined resources
dotnet add package DataSurface.Dynamic

# Admin API — for managing dynamic entity definitions via REST
dotnet add package DataSurface.Admin

# OpenAPI — for Swashbuckle/Swagger integration
dotnet add package DataSurface.OpenApi

# Scalar — API reference UI (additive to Swagger)
dotnet add package DataSurface.Scalar

# Source generator (optional) — for typed DTO generation
dotnet add package DataSurface.Generator

Package Combinations

Choose the combination that matches your use case:

Static Resources Only

For compile-time entities backed by EF Core:

<ItemGroup>
  <PackageReference Include="DataSurface.Core" Version="*" />
  <PackageReference Include="DataSurface.EFCore" Version="*" />
  <PackageReference Include="DataSurface.Http" Version="*" />
</ItemGroup>

Dynamic Resources Only

For entities defined at runtime via database metadata:

<ItemGroup>
  <PackageReference Include="DataSurface.Core" Version="*" />
  <PackageReference Include="DataSurface.Dynamic" Version="*" />
  <PackageReference Include="DataSurface.Http" Version="*" />
  <PackageReference Include="DataSurface.Admin" Version="*" />
</ItemGroup>

Both Static and Dynamic

<ItemGroup>
  <PackageReference Include="DataSurface.Core" Version="*" />
  <PackageReference Include="DataSurface.EFCore" Version="*" />
  <PackageReference Include="DataSurface.Dynamic" Version="*" />
  <PackageReference Include="DataSurface.Http" Version="*" />
  <PackageReference Include="DataSurface.Admin" Version="*" />
</ItemGroup>

Optional Add-ons

Add these to any combination above:

<!-- Swagger/OpenAPI typed schemas -->
<PackageReference Include="DataSurface.OpenApi" Version="*" />

<!-- Scalar API reference UI -->
<PackageReference Include="DataSurface.Scalar" Version="*" />

<!-- Compile-time typed DTO generation -->
<PackageReference Include="DataSurface.Generator" Version="*" />

Next Step

Quick Start — Build your first DataSurface API in under 5 minutes.