Developing Distributed Applications with C# and ZeroMQ

Developing Distributed Applications with C# and ZeroMQ

1h 1mIntermediate2017-08-09

Authors

Paul Blasucci

Paul Blasucci

Enthusiast of multiparadigm and polygot engineering

Course details

Distributed applications run on multiple computers on the same network at once—which means they often have to run on multiple operating systems and integrate with the cloud. But you don't need a lot of middleware or advanced configuration to build them. Today, it's possible to build robust software with lightweight tools. Enter ZeroMQ, a flexible, open-source messaging stack. ZeroMQ can be run on Windows, OS X, and Linux, and can be implemented with C, C++, C#, Java, Python, and more. Learn how to use ZeroMQ to simplify development of distributed .NET applications. Follow along with this project-focused course, as instructor Paul Blasucci shows how to build a simple group messaging app—with one-way and two-way communication channels and direct messaging—using ZeroMQ and C#.

Learning objectives
Building a single-file application
Two-way messaging
Heartbeating to detect disconnects
Broadcasting messages using publish/subscribe
Combining one-way and two-way messaging channels
Troubleshooting your app
Designing and evolving protocols

Skills covered

ZeroMQVisual StudioTips, Tricks, & TechniquesSoftware Development ToolsProgramming LanguagesOpen SourceMicrosoftSoftware Development

Concepts

Introduction

  • Welcome
  • What you should know
  • How to use the exercise files

Building a Chat System

  • Overview of ZeroMQ
  • Primary concepts
  • Warm-up exercise - Single-file application

Requests and Replies

  • Sync vs. async two-way messaging
  • Heartbeating keeping track of peers
  • Exercise 1a - Setting up the server
  • Exercise 1b - Setting up the client

Broadcasting Messages

  • Topically filtered one-way messaging
  • Notifications sharing information
  • Exercise 2a - Publishing arrival departure notices
  • Exercise 2b - Subscribing to arrival departure notices

Combining Channels

  • Proxies
  • Polling
  • Slipping one-way messages into a two-way channel
  • Exercise 3a - Extending the server to relay group messages
  • Exercise 3b - Extending the client to send group messages

Sidebar - Troubleshooting

  • Basic checklist for when things aren't working
  • Extra exercise - Implementing a socket monitor

Extending Protocols

  • Solving problems with messages versus adding new channels
  • Exercise 4 - Extending the client and server to support direct messages

Conclusion

  • Going further
40,000 Toman