Introduction
                                    
                                        Top tactics to build advanced .NET microservices
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Microservices refresher
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        The scenario used in this course: Wisdom Pet Medicine
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        What we are going to build
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Preparing the development environment
                                            
                                                ()
                                            
                                            
                                    
                             
                            
                                1. Event-Driven Microservices
                                    
                                        Event-driven architecture primer
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Handling the domain event and creating the integration event
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Publishing the integration event to Azure Service Bus
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Consuming the integration event from Azure Service Bus
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Storing the data from the integration event
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Challenge: Perform asynchronous communication using events
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Solution: Perform asynchronous communication using events
                                            
                                                ()
                                            
                                            
                                    
                             
                            
                                2. The CQRS Pattern
                                    
                                        Command and Query Responsibility Segregation (CQRS) pattern
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Implementing the first command
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Implementing the viewer service
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Challenge: Implementing the CQRS pattern
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Solution: Implementing the CQRS pattern
                                            
                                                ()
                                            
                                            
                                    
                             
                            
                                3. Event Sourcing and Microservices
                                    
                                        Introduction to the Event Sourcing pattern
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Creating the event store in Azure Cosmos DB
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Creating and storing the first events
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Reading the event store through CQRS
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Challenge: Implementing event sourcing
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Solution: Implementing event sourcing
                                            
                                                ()
                                            
                                            
                                    
                             
                            
                                4. API Gateway
                                    
                                        Introducing the API Gateway pattern
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Implementing the API Gateway pattern by using Ocelot
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Challenge: Configuring additional routes in the API gateway
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Solution: Configuring additional routes in the API gateway
                                            
                                                ()
                                            
                                            
                                    
                             
                            
                                5. Cross-Cutting Concerns
                                    
                                        Health checks
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Versioning
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Centralized logging and distributed tracing
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Challenge: Implementing cross-cutting concerns
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Solution: Implementing cross-cutting concerns
                                            
                                                ()
                                            
                                            
                                    
                             
                            
                                6. Upgrading .NET and NuGet Packages to Their Latest Versions
                                    
                                        Upgrading and refactoring the microservices
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Upgrading and refactoring the API Gateway
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Upgrading and refactoring the projector
                                            
                                                ()
                                            
                                            
                                    
                             
                            
                                7. Using Docker to Containerize the Application
                                    
                                        Creating the required Dockerfiles for the microservices
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Using Docker Compose for executing the multicontainer application
                                            
                                                ()