diff --git a/daprdocs/content/en/concepts/security-concept.md b/daprdocs/content/en/concepts/security-concept.md
index 66a2bd304..c130d0fe4 100644
--- a/daprdocs/content/en/concepts/security-concept.md
+++ b/daprdocs/content/en/concepts/security-concept.md
@@ -50,7 +50,7 @@ The diagram below shows how the Sentry system service issues certificates for ap

### mTLS in Kubernetes
-The diagram below shows how the Sentry system service issues certificates for applications based on the root/issuer certificate that is provided by an operator or generated by the Sentry service as stored as a Kubernetes secret
+The diagram below shows how the Sentry system service issues certificates for applications based on the root/issuer certificate that is provided by an operator or generated by the Sentry service and stored as a Kubernetes secret

diff --git a/daprdocs/content/en/developing-applications/sdks/_index.md b/daprdocs/content/en/developing-applications/sdks/_index.md
index 1e86e16d5..f3ab7da55 100644
--- a/daprdocs/content/en/developing-applications/sdks/_index.md
+++ b/daprdocs/content/en/developing-applications/sdks/_index.md
@@ -18,7 +18,7 @@ The Dapr SDKs are the easiest way for you to get Dapr into your application. Cho
- Interact with external resources through input and output [bindings]({{< ref bindings >}})
- Get [secrets]({{< ref secrets >}}) from secret stores
- Interact with [virtual actors]({{< ref actors >}})
-- **Service extensions**: The Dapr service extensions allow you to create services that can:
+- **Server extensions**: The Dapr service extensions allow you to create services that can:
- Be [invoked]({{< ref service-invocation >}}) by other services
- [Subscribe]({{< ref pubsub >}}) to topics
- **Actor SDK**: The Dapr Actor SDK allows you to build virtual actors with:
@@ -29,13 +29,13 @@ The Dapr SDKs are the easiest way for you to get Dapr into your application. Cho
## SDK languages
-| Language | Status | Client SDK | Service Extensions | Actor SDK |
-|----------|:-----:|:----------:|:-----------:|:---------:|
-| [.NET](https://github.com/dapr/dotnet-sdk) | Stable | ✔ | ✔ ASP.NET Core | ✔ |
-| [Python]({{< ref python >}}) | Stable | ✔ | ✔ [gRPC]({{< ref python-grpc.md >}}) | ✔ [FastAPI]({{< ref python-fastapi.md >}})
[Flask]({{< ref python-flask.md >}}) |
-| [Java](https://github.com/dapr/java-sdk) | Stable | ✔ | ✔ Spring Boot | ✔ |
+| Language | Status | Client SDK | Server extensions | Actor SDK |
+|----------|:------|:----------:|:-----------:|:---------:|
+| [.NET]({{< ref dotnet >}}) | Stable | ✔ | [ASP.NET Core]({{< ref dotnet-aspnet >}}) | ✔ |
+| [Python]({{< ref python >}}) | Stable | ✔ | [gRPC]({{< ref python-grpc.md >}}) | [FastAPI]({{< ref python-fastapi.md >}})
[Flask]({{< ref python-flask.md >}}) |
+| [Java](https://github.com/dapr/java-sdk) | Stable | ✔ | Spring Boot | ✔ |
| [Go](https://github.com/dapr/go-sdk) | Stable | ✔ | ✔ | |
-| [PHP](https://github.com/dapr/php-sdk) | Stable | ✔ | ✔ | ✔ |
+| [PHP]({{< ref php >}}) | Stable | ✔ | ✔ | ✔ |
| [C++](https://github.com/dapr/cpp-sdk) | In development | ✔ | |
| [Rust]() | In development | ✔ | | |
| [Javascript]() | In development| ✔ | |
diff --git a/daprdocs/content/en/getting-started/get-started-api.md b/daprdocs/content/en/getting-started/get-started-api.md
index a574ae797..b795de4f0 100644
--- a/daprdocs/content/en/getting-started/get-started-api.md
+++ b/daprdocs/content/en/getting-started/get-started-api.md
@@ -19,7 +19,7 @@ Run the following command to launch a Dapr sidecar that will listen on port 3500
dapr run --app-id myapp --dapr-http-port 3500
```
-With this command, no custom component folder was defined so the Dapr uses the default component definitions that were created during the init flow (these can be found under `$HOME/.dapr/components` on Linux or MacOS and under `%USERPROFILE%\.dapr\components` on Windows). These tell Dapr to the local Redis Docker container as a state store and message broker.
+With this command, no custom component folder was defined, so Dapr uses the default component definitions that were created during the init flow (these can be found under `$HOME/.dapr/components` on Linux or MacOS and under `%USERPROFILE%\.dapr\components` on Windows). These tell Dapr to use the local Redis Docker container as a state store and message broker.
## Step 2: Save state
diff --git a/daprdocs/content/en/getting-started/get-started-component.md b/daprdocs/content/en/getting-started/get-started-component.md
index ef9d3038a..73c13bdfd 100644
--- a/daprdocs/content/en/getting-started/get-started-component.md
+++ b/daprdocs/content/en/getting-started/get-started-component.md
@@ -86,8 +86,8 @@ Invoke-RestMethod -Uri 'http://localhost:3500/v1.0/secrets/my-secret-store/my-se
You should see output with the secret you stored in the JSON file.
-```
-"I'm Batman"
+```json
+{"my-secret":"I'm Batman"}
```
Next step: Explore Dapr quickstarts >>
diff --git a/daprdocs/content/en/operations/components/component-secrets.md b/daprdocs/content/en/operations/components/component-secrets.md
index f535ac5ee..f494b89bd 100644
--- a/daprdocs/content/en/operations/components/component-secrets.md
+++ b/daprdocs/content/en/operations/components/component-secrets.md
@@ -121,7 +121,7 @@ metadata:
rules:
- apiGroups: [""]
resources: ["secrets"]
- verbs: ["get"]
+ verbs: ["get", "list"]
---
kind: RoleBinding
diff --git a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-nats-streaming.md b/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-nats-streaming.md
index 004051d77..e8fb5d5a5 100644
--- a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-nats-streaming.md
+++ b/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-nats-streaming.md
@@ -78,7 +78,7 @@ The above example uses secrets as plain strings. It is recommended to use a secr
You can run a NATS server locally using Docker:
```bash
-docker run -d -name nats-streaming -p 4222:4222 -p 8222:8222 nats-streaming
+docker run -d --name nats-streaming -p 4222:4222 -p 8222:8222 nats-streaming
```
You can then interact with the server using the client port: `localhost:4222`.
diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-mysql.md b/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-mysql.md
index f49cfb36d..434a7bf8f 100644
--- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-mysql.md
+++ b/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-mysql.md
@@ -64,7 +64,7 @@ Run an instance of MySQL. You can run a local instance of MySQL in Docker CE wit
This example does not describe a production configuration because it sets the password in plain text and the user name is left as the MySQL default of "root".
```bash
-docker run --name dapr_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:latest
+docker run --name dapr-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:latest
```
{{% /codetab %}}
@@ -78,7 +78,7 @@ We can use [Helm](https://helm.sh/) to quickly create a MySQL instance in our Ku
```bash
helm repo add bitnami https://charts.bitnami.com/bitnami
- helm install dapr_mysql bitnami/mysql
+ helm install dapr-mysql bitnami/mysql
```
1. Run `kubectl get pods` to see the MySQL containers now running in your cluster.
diff --git a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-production.md b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-production.md
index d9e70815f..4b7e012f2 100644
--- a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-production.md
+++ b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-production.md
@@ -21,7 +21,7 @@ Use the following resource settings might serve as a starting point. Requirement
| Placement | Limit: 1, Request: 250m | Limit: 150Mi, Request: 75Mi
| Dashboard | Limit: 200m, Request: 50m | Limit: 200Mi, Request: 20Mi
-When installing Dapr using Helm, no default limit/request values are set. Each component has a `resources` option (for example, `dapr_dashboard.resources`), which you can use to tune the Dapr control plane to fit your environment. The [Helm chart readme](https://github.com/dapr/dapr/blob/master/charts/dapr/README) has detailed information and examples. For local/dev installations, you might simply want to skip configuring the `resources` options.
+When installing Dapr using Helm, no default limit/request values are set. Each component has a `resources` option (for example, `dapr_dashboard.resources`), which you can use to tune the Dapr control plane to fit your environment. The [Helm chart readme](https://github.com/dapr/dapr/blob/master/charts/dapr/README.md) has detailed information and examples. For local/dev installations, you might simply want to skip configuring the `resources` options.
### Optional components
diff --git a/sdkdocs/dotnet b/sdkdocs/dotnet
new file mode 160000
index 000000000..5f5326b83
--- /dev/null
+++ b/sdkdocs/dotnet
@@ -0,0 +1 @@
+Subproject commit 5f5326b83fa52fe1965f60f2161eb18b2940cc10