Workshop: Introduction to Distributed Systems with .NET Core

A practical online workshop from Dylan Beattie for .NET developers
Workshop: Introduction to Distributed Systems with .NET Core
Workshop: Introduction to Distributed Systems with .NET Core

A hands-on workshop with Dylan Beattie, covering HTTP, REST, GraphQL, gRPC, RabbitMQ, and SignalR: what they do, why you would use them, and how they all work with C# and .NET Core.

Once upon a time, software was simple. You built a website, connected it to a database, and you were done. Then customers started asking for APIs, mobile apps, notification emails, realtime chat. Cloud hosting enabled “elastic” systems – websites that automatically scale up to handle demand; message queues and publish/subscribe patterns to handle spikes in traffic and workload without impacting your end users.

If you’re just starting out with distributed systems design, the possibilities can be overwhelming. APIs, message queueing, REST, GraphQL, gRPC… what should you choose, how does it work, how do you get started?

This workshop gives you a hands-on introduction to the most important messaging patterns used in modern application development. Using .NET Core and C#, we’ll build a series of small example apps and services, wire them together using these patterns, and discuss how – and when – you’d apply the same patterns in your own applications.

Workshop will be held on July 6, 7 from 4 p.m to 8 p.m. (UTC+3). Timezone: EEST.

Check invitation from Dylan Beattie:



Target Audience and Prerequisites

Number of participants: up to 20 participants.

The event will be held in English.

This workshop is aimed at developers with some experience writing applications using C# and Microsoft .NET.

The workshop is run fully online, using Zoom and various online collaboration tools. Attendees will be writing and running .NET code during the workshop, so will need to join the workshop on a computer running Windows, macOS or Linux, and ideally install the Microsoft .NET SDK from here.

Exercises can be done in .NET Framework 4.6+ or .NET Core 2.0+



Speaker Dylan Beattie

— Dylan Beattie created his first web page in 1992;

— With nearly 25 years’ experience as a professional developer, he’s worked on everything from static websites to distributed microservice architectures;

— Dylan is a Microsoft MVP and the creator of the Rockstar esoteric programming language;

— He’s presented talks about technology and software development at conferences and events all over the world;

Ticket price

Standard

Participation in an online workshop

Workshop presentation

Chat of participants

Additional workshop materials from the speaker

Participation certificate

3 900 UAH ≈$143
till 29 June
5 tickets — 2900 UAH
next 3 — 4900 грн
Buy ticket

Course Structure and Contents

Introduction

  • What are “distributed systems”?
  • Monoliths and microservices
  • Common integration patterns
  • Principles of distributed architecture

  • Connecting Components using HTTP

  • HTTP architectural patterns – XMLRPC, REST, GraphQL
  • Designing HTTP APIs
  • HTTP frameworks: WebAPI, NancyFX, ServiceStack
  • Working with HTTP APIs: testing and tooling
  • Scaling HTTP APIs: caching strategies
  • Exercise: building an HTTP API client and server

  • Message queues and pub/sub

  • Principles of message queues
  • Message queueing in .NET – Redis, MSMQ, EasyNetQ
  • Queueing strategies and error handling
  • Advanced architectural patterns: CQRS, event sourcing
  • Exercise: building a pub/sub system using .NET

  • Protocol Buffers and gRPC

  • History of RPC on .NET – SOAP, DISCO, WSDL, WCF
  • Introduction to Protocol Buffers
  • Contract-first development
  • Architecture Patterns/Styles;
  • Advantages of gRPC
  • Exercise: high-performance architecture using gRPC

  • Connecting to the Web

  • Integrating browsers with distributed systems
  • The “Backends for Frontends” pattern
  • Working with SignalR
  • Exercise: real-time browser notifications using SignalR
  • Sign in
    Or by mail
    Sign in
    Or by mail
    Register with email
    Register with email
    Forgot password?