Introduction
Build great microservices solutions with Dapr and .NET
()
What you are going to build: Introducing Wisdom Pet Medicine
()
1. Dapr Overview
Challenges of distributed applications and microservices
()
What is Dapr?
()
The sidecar pattern
()
Dapr anatomy
()
2. Preparing the Dapr Environment
Installing the development tools
()
Installing and initializing Dapr
()
The Dapr CLI
()
"Hello, world!" with Dapr
()
The Dapr dashboard
()
3. The Pub/Sub Building Block
The pub/sub building block
()
Publishing messages in the Pet microservice
()
Subscribing to messages in the Rescue microservice
()
Subscribing to messages in the Hospital microservice
()
Creating the Dapr component for Azure Service Bus
()
Testing the pub/sub implementation
()
4. The Service Invocation Building Block
The service invocation building block
()
Creating the PetAggregator microservice
()
Implementing the service invocation logic
()
Projecting the results in PetAggregator
()
Testing the service invocation implementation
()
5. The State Management Building Block
The state management building block
()
Refactoring the PetAggregator microservice
()
Implementing state management in PetAggregator
()
Creating a component for state management with Azure Storage
()
Testing the state management implementation
()
6. The Bindings Building Block
The bindings building block
()
Implementing an input binding in the Pet microservice
()
Implementing an output binding in the Hospital microservice
()
Creating the Dapr components for bindings with Azure Storage
()
Testing the bindings implementation
()
7. The Secrets Management Building Block
The secrets management building block
()
Creating a local-file secrets management component
()
Retrieving secrets from the microservices
()
Referencing secrets in the Dapr components
()
Testing the secret references in the components
()
Creating the Azure Key Vault component
()
Testing the secrets management with Azure Key Vault
()
8. The Configuration Building Block
The configuration building block
()
Creating the configuration component for Redis
()
Get configuration items using Dapr SDK
()
Testing the configuration building block
()
9. The Observability Building Block
The observability building block
()
Distributed traces with Zipkin
()
Distributed traces with Jaeger
()
Distributed traces with New Relic
()
10. Upgrading to the Latest Version of Dapr and .NET
Upgrading the Dapr CLI and runtime
()
Upgrading the .NET projects and NuGet packages
()
Upgrading the components and verifying the secrets
()
Upgrading the Projector function
()
Testing the upgraded solution
()
11. Improving the Development Experience
Running multiple apps
()
Attaching the debugger to the application processes
()
Using the Dapr extension in Visual Studio
()
12. Implementing Resiliency Capabilities
Understanding the resiliency capabilities in Dapr
()
Creating and implementing retry resiliency policies
()
Creating and implementing timeout resiliency policies
()
Creating and implementing circuit breaker resiliency policies
()
Implementing app health checks
()
Challenge: Implementing resiliency capabilities
()
Solution: Implementing resiliency capabilities
()
13. Performing Cryptographic Operations
The cryptography building block
()
Creating the Azure Key Vault resource and key
()
Creating the cryptography component
()
Implementing cryptography in the app
()
Challenge: Decrypting data
()
Solution: Decrypting data
()
14. Scheduling Jobs
The jobs building block
()
Using the DaprJobsClient object for scheduling a job
()
Implementing the job handler
()
Challenge: Implementing job logic
()
Solution: Implementing job logic
()
15. Interacting with Large Language Models (LLMs)
The conversation building block
()
Creating the conversation component
()
Implementing a conversation with an LLM
()
Challenge: Using prompting techniques in Dapr
()
Solution: Using prompting techniques in Dapr
()
16. Providing Mutually Exclusive Access with Locks
The distributed lock building block
()
Creating the distributed lock component
()
Implementing the distributed lock
()
Running two instances to test the distributed lock
()
17. Automating and Orchestrating Tasks with Workflows
The workflow building block
()
Using a supported state store for actors and workflows
()
Implementing the workflow and its first activity
()
Invoking the workflow
()
Implementing a second activity
()
Challenge: Implementing a human-in-the-loop process
()
Solution: Implementing a human-in-the-loop process
()
18. Deploying in Kubernetes
Running Dapr on Kubernetes
()
Deploying the Kubernetes cluster and initializing Dapr
()
Containerizing the microservices with Docker Compose
()
Preparing and applying the component files in the Kubernetes cluster
()
Creating and applying the deployments and services in the Kubernetes cluster
()
Creating an ingress controller in the Kubernetes cluster
()
Exposing the services in the Kubernetes cluster
()
Testing the microservices in the Kubernetes cluster
()
19. Deploying in Azure Container Apps
Introduction to Azure Container Apps
()
Deploying the Container Apps environment
()
Preparing the solution to use Azure Container Apps
()
Deploying and testing the Pet microservice as a Container App
()
Conclusion
Learning more
()