• Courses
  • TutorialsFree
  • Learning Paths
  • Blogs
  • Authors
  • Dometrain Pro
  • Shopping Basket

    Your basket is empty

  • Business Portal
  • Getting Started: Messaging in .NET with NServiceBus

    Simplify distributed systems messaging in .NET using the battle-tested NServiceBus framework.

    About This Course

    Gain practical, hands-on experience with NServiceBus and the Particular Platform. You will build a complete, foundational system from the ground up, mastering the essential components: messages, endpoints, transports, routing, and persistence. As you construct this system, you will be introduced to crucial architectural concepts, including sagas for managing simple long-running business processes and the Outbox pattern for ensuring reliable message delivery. Additionally, you'll learn to observe and gain insight into your messaging system using specialised tools such as ServiceControl and ServicePulse. By the end of the course, you will have all the skills needed to begin working with NServiceBus in real projects.

    Course Curriculum

    5h 10m 7 sections
    Welcome
    02:25 Free preview
    What will you learn in this course?
    03:49 Free preview
    Who is the course for and prerequisites
    02:22 Free preview
    What is NServiceBus
    02:12
    Why use an abstraction like NServiceBus
    04:40
    Particular Platform tools overview
    01:19
    Messages and message types
    03:18
    Defining messages
    02:09
    Message design considerations
    02:12
    Persistence
    02:27
    Introducing the Learning Transport
    00:48
    Exploring the project
    01:28
    Configuring NServiceBus
    02:16
    Adding a serialization type
    00:50
    Transports
    02:00
    Using the IMessageSession
    00:49
    Sending our first command
    03:23
    Routing
    00:44
    Using the Learning transport
    04:35
    Endpoints
    05:38
    Obtaining a developer license
    04:11
    Installing Particular Templates
    01:27
    Creating a new endpoint
    02:38
    Reorganizing the project
    04:38
    Handling messages
    09:54
    Controlling the OrderId
    02:27
    Publishing events
    09:50
    AutoSubscribe and events
    03:12
    Section recap
    01:04
    Installing RabbitMq in Docker
    01:00
    The RabbitMq transport
    04:48
    Enabling and using Installers
    05:22
    Callbacks and the Request/Reply pattern
    10:32
    Message headers
    01:26
    Adding custom message headers
    02:41
    Reading message headers
    01:51
    Setting a message destination
    03:31
    Adding a global header
    01:58
    Mutators
    11:21
    Behaviors
    05:30
    Filtering message types in Behaviors
    00:41
    Enforcing validation rules
    03:47
    Why use Behaviors
    01:23
    Time to Live of a message
    01:33
    Expiring messages per type
    04:49
    Expiring messages globally
    00:51
    Considerations about TTBR
    01:42
    Section recap
    01:17
    Intro to dealing with errors
    01:38
    Types of failures & retry policies
    04:10
    Configuring immediate retries
    04:04
    Delayed retries
    04:32
    Unrecoverable exceptions
    02:09
    Error notifications
    02:42
    Using Automatic rate limiting
    07:05
    Considerations about Rate limiting
    01:45
    Particular Platform - Using SCMU to install ServiceControl
    05:43
    Using ServicePulse
    01:59
    Recoverability with ServicePulse
    03:55
    Enabling Message editing
    02:47
    Section recap
    01:12
    The Outbox pattern
    06:22
    Delivery vs Processing
    04:21
    Inbox pattern
    01:33
    Revisiting the project
    02:32
    Enabling the outbox
    02:12
    Customizing the outbox
    02:59
    Implementing the outbox
    06:38
    Concurrency control in the outbox
    03:02
    Transactional Session
    02:35
    Enabling the transactional Session
    01:04
    Implementing a transactional Session
    07:11
    Section recap
    02:21
    The saga pattern
    04:27
    Orchestration vs Choreography
    04:03
    Adding a Saga
    03:28
    Defining Sagas
    12:10
    Timeouts and scheduling Events
    03:45
    Enabling SagaAudit and message auditing feature
    02:51
    Debugging sagas with SagaView
    04:41
    Publishing events from the Saga
    08:39
    Compensating an event
    09:27
    Removing a saga from the database
    00:19
    Saga design best practices
    03:40
    Considerations about ending the saga
    00:58
    Handling out-of-order messages
    01:12
    Section recap
    03:17
    Licensing considerations
    03:27
    Conclusion
    02:38

    Meet Your Instructor

    Irina Scurtu

    Irina Scurtu

    Irina Scurtu (Dominte) is a software architect, international speaker, Microsoft MVP for developer technologies, and Microsoft certified trainer (MCT) with a wealth of experience. Having taught classes, workshops, and presentations for over 2,000 hours, Irina is passionate about coding and keeping abreast of the latest trends and best practices in software architecture and .NET. Twice a year, for five months each time, Irina teaches .NET and C# to aspiring software developers or people interested in software development or seeking to expand their knowledge. She is an active member of the community and has founded the DotNet Iasi User Group and the dotnetdays.ro conference, where she connects with like-minded developers who are eager to share their expertise and insights. Irina is also a prolific blogger, and her website, https://irina.codes, features a wealth of articles on various coding topics.

    View all courses by Irina Scurtu

    What's New

    What's new in C# 14
    blog

    What's new in C# 14

    This guide covers every new C# 14 feature, explains its benefits, and provides practical code examples to help you navigate how you can use them.

    Learn More
    Let's Build It: AI Chatbot with RAG in .NET Using Your Data
    course

    Let's Build It: AI Chatbot with RAG in .NET Using Your Data

    Build a Retrieval-Augmented Generation (RAG) chatbot that can answer questions using your data.

    Learn More
    Working with Large Language Models
    tutorial

    Working with Large Language Models

    Learn how to work with Large Language Models (LLMs). Understand the fundamentals of how GPT works, the transformer architecture, and master prompt engineering techniques to build AI agents.

    Learn More
    From Zero to Hero: SignalR in .NET
    course

    From Zero to Hero: SignalR in .NET

    Enable enterprise-grade real-time communication for your web apps with SignalR.

    Learn More
    Deep Dive: Solution Architecture
    course

    Deep Dive: Solution Architecture

    Master solution architecture and turn business needs into scalable, maintainable systems.

    Learn More
    Migrating: ASP.NET Web APIs to ASP.NET Core
    course

    Migrating: ASP.NET Web APIs to ASP.NET Core

    A step-by-step process to migrate ASP.NET Web APIs from .NET Framework to ASP.NET Core.

    Learn More
    Getting Started: Caching in .NET
    course

    Getting Started: Caching in .NET

    Let's make the hardest thing in programming easy for .NET software engineers.

    Learn More
    From Zero to Hero: Testing with xUnit in C#
    course

    From Zero to Hero: Testing with xUnit in C#

    Learn how to test any codebase in .NET with the latest version of xUnit, the industry-standard testing library.

    Learn More
    Create a ChatGPT Console AI Chatbot in C#
    blog

    Create a ChatGPT Console AI Chatbot in C#

    This walkthrough is your hands-on entry point to create a basic C# console application that talks to ChatGPT using the OpenAI API.

    Learn More