diff --git a/docs/architecture/dapr-for-net-developers/bindings.md b/docs/architecture/dapr-for-net-developers/bindings.md index 8a2b99e91c2ad..cc3241e14f48c 100644 --- a/docs/architecture/dapr-for-net-developers/bindings.md +++ b/docs/architecture/dapr-for-net-developers/bindings.md @@ -2,7 +2,7 @@ title: The Dapr bindings building block description: A description of the bindings building block, its features, benefits, and how to apply it author: edwinvw -ms.date: 02/07/2021 +ms.date: 02/17/2021 --- # The Dapr bindings building block diff --git a/docs/architecture/dapr-for-net-developers/dapr-at-20000-feet.md b/docs/architecture/dapr-for-net-developers/dapr-at-20000-feet.md index ac38efebff671..3394cb784f6f9 100644 --- a/docs/architecture/dapr-for-net-developers/dapr-at-20000-feet.md +++ b/docs/architecture/dapr-for-net-developers/dapr-at-20000-feet.md @@ -2,7 +2,7 @@ title: Dapr at 20,000 feet description: A high-level overview of what dapr is, what it does, and how it works. author: robvet -ms.date: 02/07/2021 +ms.date: 02/17/2021 --- # Dapr at 20,000 feet @@ -21,7 +21,9 @@ Imagine flying in a jet at 20,000 feet. You look out the window and see the land Dapr addresses a large challenge inherent in modern distributed applications: **Complexity**. -Through an architecture of pluggable components, Dapr greatly simplifies the plumbing behind distributed applications. It provides a **dynamic glue** that binds your application with infrastructure capabilities from the Dapr runtime. For example, your application may require a state store. You could write custom code to target Redis Cache and inject it into your service at runtime. However, Dapr simplifies your experience by providing a distributed cache capability out-of-the-box. Your service invokes a Dapr **building block** that dynamically binds to Redis Cache **component** via a Dapr **configuration**. With this model, your service delegates the call to Dapr, which calls Redis on your behalf. Your service has no SDK, library, or direct reference to Redis. You code against the common Dapr state management API, not the Redis Cache API. +Through an architecture of pluggable components, Dapr greatly simplifies the plumbing behind distributed applications. It provides a **dynamic glue** that binds your application with infrastructure capabilities from the Dapr runtime. + +Consider a requirement to make one of your services stateful? What would be your design. You could write custom code that targets a state store such as Redis Cache. However, Dapr provides state management capabilities out-of-the-box. Your service invokes the Dapr state management **building block** that dynamically binds to a state store **component** via a Dapr **component configuration** yaml file. Dapr ships with several pre-built state store components, including Redis. With this model, your service delegates state management to the Dapr runtime. Your service has no SDK, library, or direct reference to the underlying component. You can even change state stores, say, from Redis to MySQL or Cassandra, with no code changes. Figure 2-1 shows Dapr from 20,000 feet. @@ -150,7 +152,6 @@ At the time of this writing, the following component types are provided by Dapr: | [Bindings](https://github.com/dapr/components-contrib/tree/master/bindings) | Provides a uniform interface to trigger application events from external systems and invoke external systems with optional data payloads. | | [Middleware](https://github.com/dapr/components-contrib/tree/master/middleware) | Allows custom middleware to plug into the request processing pipeline and invoke additional actions on a request or response. | | [Secret stores](https://github.com/dapr/components-contrib/tree/master/secretstores) | Provides a uniform interface to interact with external secret stores, including cloud, edge, commercial, open-source services. | -| [Tracing exporters](https://github.com/dapr/components-contrib/tree/master/exporters) | Provides a uniform interface to open telemetry wrappers. | As the jet completes its fly over of Dapr, you look back once more and can see how it connects together. @@ -204,6 +205,8 @@ gRPC is a modern, high-performance framework that evolves the age-old [remote pr - Bidirectional full-duplex communication for sending both client requests and server responses simultaneously. - Built-in streaming enabling requests and responses to asynchronously stream large data sets. +To learn more, check out the [gRPC overview](https://docs.microsoft.com/dotnet/architecture/cloud-native/grpc#what-is-grpc) from the [Architecting Cloud-Native .NET Apps for Azure](https://docs.microsoft.com/dotnet/architecture/cloud-native/) eBook. + ## Dapr and service meshes Service mesh is another rapidly evolving technology for distributed applications. @@ -216,7 +219,7 @@ Figure 2-8 shows an application that implements service mesh technology. **Figure 2-8**. Service mesh with a side car. -The previous figure shows how messages are intercepted by a proxy that runs alongside each service. Each proxy can be configured with traffic rules specific to the service. It understands messages and can route them across your services and the outside world. +The previous figure shows how messages are intercepted by a sidecar proxy that runs alongside each service. Each proxy can be configured with traffic rules specific to the service. It understands messages and can route them across your services and the outside world. So the question becomes, "Is Dapr a service mesh?". @@ -230,7 +233,7 @@ Figure 2-9 shows an application that implements both Dapr and service mesh techn **Figure 2-9**. Dapr and service mesh together. -In the book, [Learning Dapr](https://www.amazon.com/Learning-Dapr-Building-Distributed-Applications/dp/1492072427/ref=sr_1_1?dchild=1&keywords=dapr&qid=1604794794&sr=8-1), authors Haishi Bai and Yaron Schneider, cover the integration of Dapr and service mesh. +The [Dapr online documentation](https://docs.dapr.io/concepts/faq/#networking-and-service-meshes) cover Dapr and service mesh integration. ## Summary diff --git a/docs/architecture/dapr-for-net-developers/foreword.md b/docs/architecture/dapr-for-net-developers/foreword.md index df0fdb4e6d3ee..635ba4dcf458f 100644 --- a/docs/architecture/dapr-for-net-developers/foreword.md +++ b/docs/architecture/dapr-for-net-developers/foreword.md @@ -2,7 +2,7 @@ title: Foreword description: A foreword to Dapr for .NET Developers by Mark Russinovich author: markrussinovich -ms.date: 02/14/2021 +ms.date: 02/17/2021 --- # Foreword diff --git a/docs/architecture/dapr-for-net-developers/getting-started.md b/docs/architecture/dapr-for-net-developers/getting-started.md index 2b00e6b36c91c..87861b5457567 100644 --- a/docs/architecture/dapr-for-net-developers/getting-started.md +++ b/docs/architecture/dapr-for-net-developers/getting-started.md @@ -1,7 +1,7 @@ --- title: Get started with Dapr description: A guide for preparing your local development environment and building your first .NET applications with Dapr. -author: amolenk +author: amolenk ms.date: 02/25/2021 --- @@ -250,7 +250,7 @@ Now, you'll configure communication between the services using Dapr [service inv } ``` - The call to `AddDapr` registers the `DaprClient` class with the ASP.NET Core dependency injection system. You'll use the `DaprClient` class later on to communicate with the Dapr sidecar. + The call to `AddDapr` registers the `DaprClient` class with the ASP.NET Core dependency injection system. With the client registered, you can now inject an instance of `DaprClient` into your service code to communicate with the Dapr sidecar, building blocks, and components. 1. Add a new C# class file named *WeatherForecast* to the `DaprFrontEnd` project: diff --git a/docs/architecture/dapr-for-net-developers/index.md b/docs/architecture/dapr-for-net-developers/index.md index ed1576cf85175..a75401771e69a 100644 --- a/docs/architecture/dapr-for-net-developers/index.md +++ b/docs/architecture/dapr-for-net-developers/index.md @@ -2,7 +2,7 @@ title: Dapr for .NET Developers description: A guide for .NET developers to understand and leverage the full power of Microsoft's open source Distributed Application Runtime. author: robvet -ms.date: 02/07/2021 +ms.date: 02/17/2021 --- # Dapr for .NET Developers diff --git a/docs/architecture/dapr-for-net-developers/observability.md b/docs/architecture/dapr-for-net-developers/observability.md index 2552e43397681..8475ca90896a7 100644 --- a/docs/architecture/dapr-for-net-developers/observability.md +++ b/docs/architecture/dapr-for-net-developers/observability.md @@ -2,7 +2,7 @@ title: The Dapr observability building block description: A description of the observability building block, its features, benefits, and how to apply it author: edwinvw -ms.date: 02/07/2021 +ms.date: 02/17/2021 ms.reviewer: robvet --- diff --git a/docs/architecture/dapr-for-net-developers/publish-subscribe.md b/docs/architecture/dapr-for-net-developers/publish-subscribe.md index 6ad0af17e0b6c..4bc7b7618d43e 100644 --- a/docs/architecture/dapr-for-net-developers/publish-subscribe.md +++ b/docs/architecture/dapr-for-net-developers/publish-subscribe.md @@ -2,7 +2,7 @@ title: The Dapr publish & subscribe building block description: A description of the Dapr publish & subscribe building-block and how to apply it author: edwinvw -ms.date: 02/07/2021 +ms.date: 02/17/2021 --- # The Dapr publish & subscribe building block diff --git a/docs/architecture/dapr-for-net-developers/reference-application.md b/docs/architecture/dapr-for-net-developers/reference-application.md index 2c8bd58def81c..b66ccba10786c 100644 --- a/docs/architecture/dapr-for-net-developers/reference-application.md +++ b/docs/architecture/dapr-for-net-developers/reference-application.md @@ -2,7 +2,7 @@ title: Introduction to the eShopOnDapr reference application description: An overview of the eShopOnDapr reference application and its history. author: amolenk -ms.date: 02/07/2021 +ms.date: 02/17/2021 --- # Dapr reference application diff --git a/docs/architecture/dapr-for-net-developers/secrets.md b/docs/architecture/dapr-for-net-developers/secrets.md index e1d02bca6d234..b2f4521d2527a 100644 --- a/docs/architecture/dapr-for-net-developers/secrets.md +++ b/docs/architecture/dapr-for-net-developers/secrets.md @@ -2,7 +2,7 @@ title: The Dapr secrets building block description: A description of the secrets building block, its features, benefits, and how to apply it author: edwinvw -ms.date: 02/07/2021 +ms.date: 02/17/2021 --- # The Dapr secrets building block diff --git a/docs/architecture/dapr-for-net-developers/service-invocation.md b/docs/architecture/dapr-for-net-developers/service-invocation.md index d806c4a6e447a..3a6376ae8eb5c 100644 --- a/docs/architecture/dapr-for-net-developers/service-invocation.md +++ b/docs/architecture/dapr-for-net-developers/service-invocation.md @@ -2,7 +2,7 @@ title: The Dapr service invocation building block description: A description of the service invocation building block, its features, benefits, and how to apply it author: amolenk -ms.date: 02/07/2021 +ms.date: 02/17/2021 --- # The Dapr service invocation building block diff --git a/docs/architecture/dapr-for-net-developers/state-management.md b/docs/architecture/dapr-for-net-developers/state-management.md index e756b32bf7a75..ba6b423ea6dd1 100644 --- a/docs/architecture/dapr-for-net-developers/state-management.md +++ b/docs/architecture/dapr-for-net-developers/state-management.md @@ -2,7 +2,7 @@ title: The Dapr state management building block description: A description of the state management building block, its features, benefits, and how to apply it. author: amolenk -ms.date: 02/07/2021 +ms.date: 02/17/2021 ms.reviewer: robvet --- diff --git a/docs/architecture/dapr-for-net-developers/summary.md b/docs/architecture/dapr-for-net-developers/summary.md index 68874f9611448..a2ec5f4c803f8 100644 --- a/docs/architecture/dapr-for-net-developers/summary.md +++ b/docs/architecture/dapr-for-net-developers/summary.md @@ -1,7 +1,7 @@ --- title: Summary and the road ahead description: A summary of key Dapr conclusions and a look at the road ahead. -ms.date: 02/04/2021 +ms.date: 02/17/2021 author: robvet --- diff --git a/docs/architecture/dapr-for-net-developers/the-world-is-distributed.md b/docs/architecture/dapr-for-net-developers/the-world-is-distributed.md index a065b99ca1c15..61cbce2c09172 100644 --- a/docs/architecture/dapr-for-net-developers/the-world-is-distributed.md +++ b/docs/architecture/dapr-for-net-developers/the-world-is-distributed.md @@ -2,7 +2,7 @@ title: The world is distributed description: The benefits and challenges of distributed applications with a look at monolithic and SOA approaches. author: robvet -ms.date: 02/07/2021 +ms.date: 02/17/2021 --- # The world is distributed