Building cloud-ready, resilient systems in .NET
You may think that your application is already cloud-ready, it’s deployed in the cloud isn’t it?!
But in truth, if your application is hard to monitor/scale/release/maintain, lacks resiliency, and is poorly structured, then it’s not “cloud-ready”.
So what does “cloud-ready” actually mean?
A “cloud ready” application is a legacy software application that has been modified to run on cloud computing infrastructure.
Whether you are looking at a modular monolith or a full-blown distributed system, building a cloud-ready, resilient application is a must.
In this workshop, we will look at the requirements for Tacky Tacos. A fictional taco business that’s thriving and wishes to expand.
We’ll look at all the different requirements that need to be met, starting with a code kata and how we can apply various design patterns to our way of thinking.
We’ll then move on to actually building out a functioning, all-be-it, contrived application in .NET 7 and C#, learning as we go.
## Topics we’ll cover:
Architecture and Methodology
Modular monolith vs microservices vs SOA
Distribution and Modularization
Common design patterns
Modelling requirements
## Implementations
.NET 7 application development recap
Databases
Synchronous communication
Asynchronous communication
API gateways and BFF
Service discovery
Resiliency
## Who is this workshop aimed at
This workshop is aimed at backend developers with some experience writing web applications using C# and .NET.
The workshop will not cover .NET Framework.
## Equipment and software
A computer – either Windows PC or macOS (I have no experience with Linux so if you bring a Linux machine my problem-solving will be limited)
Visual Studio 2022 or JetBrains Rider
VS Code
.NET 7
Docker Desktop
Postman or similar
AzuriteNOT ANNOUNCED YETNOT ANNOUNCED YETFrom Zero to Hero: Effective testing in C#
Testing is an absolute must when building reliable software. It allows us to make code changes with minimal amount of risk and it ensures that bugs or problems within our codebase are caught early, before they can even have any customer impact. It can also let us know how our application performs under pressure and we can use that information to optimize what really matters.
This workshop will get you started on the right track and teach you all the best practices you need to know to write clean and effective unit and integration tests in .NET with C#.
Topics
– Understanding the different types of testing
– Introduction to Unit testing
– Mocking
– Assertions
– Creating realistic test data
– Testing “untestable” code
– Unit testing best practices
– Introduction to Integration testing
– Understanding the WebApplicationFactory
– Dealing with Databases
– Dealing with APIs
– Building test-specific environments using Docker
Target audience and prerequisites
This workshop is aimed at backend developers with some experience writing applications using C# and .NET.
The workshop will not focus on .NET Framework at all.
Equipment needed
– Visual Studio 2022 or JetBrains Rider or VS Code
– .NET 7
– Docker Desktop (no need for Kubernetes to be installed)NOT ANNOUNCED YETNOT ANNOUNCED YETHands-On building cloud native applications using Microsoft Orleans and AKS
Building cloud-native scalable applications is hard! What architecture will you use? Are you going for a microservices architecture? Will you use pub-sub to allow for scalable and reliable communication between application components? How should you store your data? Is your storage layer scalable or will it become the bottleneck for your distributed system? What about caching? Are containers going to help you in your development journey?
Microsoft Orleans provides you with the toolset to make your life easier while building these kinds of applications and is a cross-platform framework from the Microsoft Research team. It helps you to build robust and scalable distributed cloud-native applications and will abstract away some of these complex methods to work with inter-service communication and cloud scalability. Orleans has been around for many years and is battle-tested by a number of internal Microsoft products and teams.
In this hands-on workshop, we will build a simple, but representative, cloud native, distributed .NET application using the Microsoft Orleans framework and test it locally on our machine. Eventually, we will deploy this application to the Azure cloud using ACA (Azure Container Apps) with the help of ACR (Azure Container Registry) to host our container images.
Questions answered:
* What is the actor model and what is Microsoft Orleans?
* How does Orleans allow you to make your application scalable?
* How is Orleans hosted inside a .NET process?
* How to write and manage business logic using the actor model?
* How to work with storing your application state and data?
* How to deploy an Orleans application to the cloud?
* How to use Azure Container Apps to easily host your Orleans applications?
* How to link multiple Orleans host applications using an Azure Container App Environment?
Intended audience:
.NET developers looking to build scalable and cloud native applications, hosted in an Azure cloud environment using containers.
Required software:
* Visual Studio/Rider/VS Code
* VS Code extensions for .NET, C# and Docker/Podman
* Docker Desktop/Podman Desktop
Required subscriptions:
* Azure subscription (using a Visual Studio Dev Essentials account that provides you with free credits, an active MSDN subscription that provides you with free credits, or a pay-as-you-go subscription using a credit-card).
Workshop type:
Lecture with hands-on labs.NOT ANNOUNCED YETNOT ANNOUNCED YETReliable Messaging with Azure
In this workshop, attendees will learn the fundamentals of reliable messaging with Azure using examples in C# .NET.
We will start from using Queue Storage as a simple, cost-effective and durable message queue to effectively decouple components and increase the resilience as well as scalability.
Once familiar with the simple queuing technology, we will dive deep into the feature rich Service Bus that provides all the bells and whistles for building robust and reliable applications leveraging the publish/subscribe pattern.
We will end the day with a sneak peek at Event Hubs that allows streaming millions of events per second to build real-time data ingestion services.
Armed with the knowledge of these three reliable messaging services in Azure, you’ll have a good understanding of the benefits and usage scenarios to clearly distinguish when to use what. Furthermore, you will have had the first practical experience in writing reliable code against those services, giving you a head-start for your career building reliable messaging solutions in Azure.
This is a Bring Your Own Device (BYOD) course. At BYOD courses, delegates are required to bring their own laptop with the necessary software installed. To use Azure services, including Service Bus, you’ll need a subscription. If you do not have an existing Azure account, you may sign up for a free trial (https://azure.microsoft.com/free/dotnet/) or use your Visual Studio Subscription (https://visualstudio.microsoft.com/subscriptions/) benefits when you create an account (https://azure.microsoft.com/account).NOT ANNOUNCED YETNOT ANNOUNCED YET