Hello! This is the online handbook for Dylan Beattie’s workshop Distributed Systems with .NET.
- Getting Started
All the examples in this workshop are based on Autobarn, a fictional website for listing used cars for sale. In this module, we'll get the Autobarn project running locally, and take a look at the project structure to see how it all fits together.
- 1.1: Getting started with HTTP APIs
In this module, we'll create a set of simple HTTP API endpoints so we can work with vehicle data without having to go via the web interface.
- 2.1: Introducing REST
Autobarn includes a simple HTTP API. In this module, we'll look at the difference between HTTP and REST, and introduce some RESTful principles to improve the design and behaviour of our API.
- 2.2: Hypermedia Resources
In this module, we'll see how to convert plain old C# / JSON objects into rich hypermedia resources.
- 2.3: Hypermedia Actions
In this module, we'll go beyond simple HTTP GET and look at how to implement support for hypermedia actions.
- 2.4: REST Review and Recap
Review, recap, and further reading about designing REST APIs and hypermedia formats.
- 3: Introducing GraphQL
GraphQL is a data query and manipulation language for APIs that runs over HTTP. In this module we'll implement a simple GraphQL API based on the Autobarn data model.
- 4: Message Queues and Pub/Sub
In this module, we'll look at message queues and the publish/subscribe pattern, and add a simple message queue and handler to Autobarn.
- 5: Remote Procedure Calls with gRPC
In this module, we'll add a gRPC client and server to our application, and see how we can use Protocol Buffers to implement high-performance remote procedure calls.
- 6: Browser Notifications with SignalR
In this module, we'll use SignalR to add real-time browser notifications to our application.
- 7: Putting it All Together
In this module, we'll combine everything we've looked at in previous modules to build a real-time notification system that uses HTTP, gRPC, message queues and SignalR notifications.
- 8.1: Hosting Dependencies with Docker
In this module, we'll look at Docker, and how you can use it to host dependencies for your .NET applications and microservices
- 8.2: Using Docker to build and host .NET applications
In this module, we'll look at Docker, and how you can use it to build and run your .NET applications and microservices
- 9: Autobarn Exercises
Extra exercises and services you can add to the Autobarn application to get further experience of working with distributed applications
- Appendix A: Creating a Self-Signed SSL Certificate for localhost
How to use OpenSSL to create a self-signed certificate so you can run servers on localhost using https
- Appendix B: Creating a gRPC Server in Python
Building a gRPC server using Python and grpcio-tools that can communicate with the .NET PricingClient.