Build distributed applications using the Dapr .NET SDK. The Dapr .NET SDK provides client and server extensions to interact with Dapr building blocks and APIs.

## Resources

- [Dapr .NET SDK GitHub](https://github.com/dapr/dotnet-sdk)
- [Dapr .NET SDK NuGet Packages](https://www.nuget.org/profiles/dapr.io)
- [Dapr .NET SDK Documentation](https://docs.dapr.io/developing-applications/sdks/dotnet/)

**Prerequisites:**

- .NET 8.0+ ([Download](https://dotnet.microsoft.com/en-us/download))
- [Dapr .NET Client/Server SDK](https://www.nuget.org/profiles/dapr.io)

## Installation

Install the Dapr .NET SDK via NuGet:

```bash
# Install Dapr client SDK
dotnet add package Dapr.Client

# Install Dapr server SDK (for ASP.NET Core)
dotnet add package Dapr.AspNetCore
```

## Dapr Client APIs

Use the Dapr Client to interact with Dapr building blocks and APIs with .NET-specific examples and code samples.

- [State Management](https://docs.dapr.io/developing-applications/sdks/dotnet/dotnet-client/#save--get-application-state) — Store and retrieve application state using key-value pairs with .NET code examples
- [Service Invocation](https://docs.dapr.io/developing-applications/sdks/dotnet/dotnet-client/#invoke-a-service) — Invoke methods on other services securely and reliably with .NET SDK
- [Publish](https://docs.dapr.io/developing-applications/sdks/dotnet/dotnet-client/#publish-messages) — Publish events to topics for event-driven communication in .NET
- [Bindings](https://docs.dapr.io/developing-applications/sdks/dotnet/dotnet-client/#interact-with-output-bindings) — Interact with external systems through input and output bindings using .NET
- [Secrets Management](https://docs.dapr.io/developing-applications/sdks/dotnet/dotnet-client/#retrieve-secrets) — Securely retrieve secrets from configured secret stores with .NET examples
- [Conversation](https://docs.dapr.io/developing-applications/sdks/dotnet/dotnet-ai/) — Interact with Large Language Models (LLMs) using the Dapr Conversation API with .NET

## Advanced Features

- [Actors](https://docs.dapr.io/developing-applications/sdks/dotnet/dotnet-actors/) — Build virtual actors with state, timers, and reminders using .NET SDK
- [Workflow](https://docs.diagrid.io/develop/workflows/dotnet-sdk) — Create durable, long-running workflows with .NET code examples
- [Jobs](https://docs.dapr.io/developing-applications/sdks/dotnet/dotnet-jobs/) — Schedule, get, and delete jobs with .NET SDK examples
- [Cryptography](https://docs.dapr.io/developing-applications/sdks/dotnet/dotnet-cryptography/) — Encrypt and decrypt data using configured cryptography components in .NET
- [Distributed Lock](https://docs.dapr.io/developing-applications/sdks/dotnet/dotnet-client/#distributed-lock-alpha) — Acquire and release distributed locks for synchronization with .NET

## Getting Started

- [Dotnet Examples](https://github.com/dapr/dotnet-sdk/tree/master/examples) — Samples that highlight the Dapr .NET SDK Capabilities
- [.NET Client Documentation](https://docs.dapr.io/developing-applications/sdks/dotnet/dotnet-client/) — Complete .NET client SDK guide with code examples

### Catalyst Quickstarts

- [State Quickstart](https://docs.diagrid.io/getting-started/quickstarts/dapr-apis/state) — Get started with state management in Catalyst
- [Pub/Sub Quickstart](https://docs.diagrid.io/getting-started/quickstarts/dapr-apis/pubsub) — Get started with publish and subscribe in Catalyst
- [Service Invocation Quickstart](https://docs.diagrid.io/getting-started/quickstarts/dapr-apis/invocation) — Get started with service invocation in Catalyst
