Workshop: Introduction to Distributed Systems with .NET
The workshop will be held online in Zoom.Please install it on your device. Number of participants - 20.
Dylan Beattie's workshop for developers with some experience writing applications using C # and Microsoft .NET. The workshop will be in English.
Introductory course for developers who want to build distributed systems, APIs and microservices using Microsoft .NET. You'll learn how to create independent software components that interact with a variety of technologies, including HTTP APIs, gRPCs, and message queues, and how to create user interfaces using real-time technologies such as SignalR.
Structure
Introduction
- What are "distributed systems"?
- Monoliths and microservices
- General integration schemes
- Principles of distributed architecture
Connect components via HTTP
- Architectural templates TTP - XMLRPC, REST, GraphQL
- Designing HTTP API
- HTTP frameworks: WebAPI, NancyFX, ServiceStack
- Work with HTTP API: testing and tools
- Scaling HTTP API: caching strategies
- Exercise: client and server construction HTTP API
Message queues та pub/sub
- Principles of message queues
- Queue of messages in .NET - Redis, MSMQ, EasyNetQ
- Queuing strategies and error handling
- Extended architectural samples: CQRS, events search
- Exercise: building pub/sub with .NET
Protocol buffers and gRPC
- History of RPC in .NET - SOAP, DISCO, WSDL, WCF
- Access to protocol buffers
- The contract is the first development
- Advantages gRPC
-
Exercise: high-performance architecture using gRPC
Web connection
- Integration of browsers with distributed systems
- "Backendes for frontends" template
- Work with SignalR
Exercise:
real-time browser notification with SignalR
Requirements
Participants need to have a laptop with Windows, macOS or Linux, and ideally install Microsoft .NET SDK from here.
Exercises can be done in .NET Framework 4.6+ or .NET Core 2.0+