> ## Documentation Index
> Fetch the complete documentation index at: https://ancplua.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# SDK Variants

> Three SDK variants for different project types.

Choose the variant that matches your project type. See [Quickstart](/quickstart) for installation.

| Variant                | Use case                         |
| ---------------------- | -------------------------------- |
| `ANcpLua.NET.Sdk`      | Libraries, console apps, workers |
| `ANcpLua.NET.Sdk.Web`  | ASP.NET Core APIs                |
| `ANcpLua.NET.Sdk.Test` | xUnit v3 test projects           |

## Base

All variants include:

* [Roslyn analyzers](/analyzers/overview)
* [Banned APIs](/sdk/banned-apis) enforcement
* [Guard clauses](/sdk/shared-utilities) (`Throw.IfNull()`)
* Nullable enabled, LangVersion `latest`
* Deterministic builds, SourceLink

## Web

Extends the base SDK with:

* OpenTelemetry (logging, metrics, tracing)
* Auto-instrumentation for GenAI and database calls
* Health endpoints (`/health`, `/alive`)
* HTTP resilience via Polly
* DevLogs (browser → server logging)

See [Service Defaults](/sdk/service-defaults) for configuration.

## Test

Extends the base SDK with:

* xUnit v3 with [Microsoft Testing Platform](https://learn.microsoft.com/en-us/dotnet/core/testing/microsoft-testing-platform-overview)
* AwesomeAssertions
* WebApplicationFactory base classes
* Analyzer testing packages

<Note>
  The SDK auto-detects `xunit.v3.mtp-v2` and sets `OutputType=Exe`
  automatically. See [Testing](/sdk/testing) for MTP CLI syntax and
  troubleshooting.
</Note>
