Alex Thissen

Alex Thissen

Cloud buster

Alex is an application development enthusiast since the late nineties and works as an architect, lead developer and mentor at large enterprises and small companies. He spends his time teaching other developers the details of the Microsoft development platform and frameworks, and coaches architects to design and build modern distributed applications at cloud scale. He has received the Microsoft Most Valuable Professional award for Visual Studio and Development Technologies 15 times. In his spare time Alex likes to participate in all kinds of sport, and loves playing and programming new and retro video games.

Current sessions

Building intuitive command-line interfaces in .NET

The cross-platform story for .NET continues. More and more tooling uses a command-line interface to make it easy to execute complex tasks from a script or console. Microsoft has invested in this area for their own tooling, such as the dotnet CLI or project Tye. You can benefit from their efforts by using System.CommandLine to build your own CLI or parametrize your application startup with arguments and options.
The Microsoft .NET libraries hold a number of great packages to create intuitive CLIs, with commands that have features such as suggestions with tab-completion and typocorrections.
In this session you will learn how to implement commands, with arguments and options, and leverage the build-in functionality such as binding, validation, middle-ware, command-hierarchies, parsing and much more. We are going to cover practical examples and use-cases, plus tips and tricks for efficient development and debugging.
After this session you can are ready to go and build CLIs for your own .NET applications and tooling with minimal effort.

Coding 4 Fun: 8-bit game emulation in .NET

Retro gaming is coming to .NET. Did you know that it is really possible to emulate the game consoles from the eighties and nineties using the .NET Framework and cross-platform? You can use .NET Standard Libraries and MonoGame to develop an emulator to make your childhood computer games come to life on Windows 10, Linux and MacOS. This session will show you how game emulation works, how to program it in C# with Visual Studio 2017 or Visual Studio Code and create apps using MonoGame. With plenty of demos and nostalgia this session is a welcome break even if you do not intend to write an emulator of your own.

Workshop: Doing Docker DevOps Style - Part 2/2

This training introduces you to Docker and container technology for DevOps teams. We will show you how to apply DevOps practices to cloud-based container solutions, complete with hands-on exercises. The training uses Microsoft tooling and technology, but the skills you will learn can be applied in any technology stack. After the workshop you will be able to do Docker DevOps style.

Big picture: DevOps with cloud-based container clusters
Accelerating your inner development loop
From development to production in record-time with confidence
Monitoring and feedback while running in production
Automated provisioning of infrastructure

Understand the implications for DevOps teams to build, deploy and run container based solutions in a cloud environment.
Automate everything from infrastructure to deployment
Achieve full traceability from source code to production incidents
Practice finding and fixing a bug without downtime
Get hands-on experience supporting DevOps practices with available tools
Target audience

This training is intended for developers and architects that want to learn about the new DevOps practices and tooling for a cloud-based Microsoft solution.

Get a running start with the labs!
This workshop is specific towards Windows as the operating system for your machine. (The labs can also be done on Linux, although this can be a bit more challenging.)

You will need to have a development IDE installed. The preferred IDE is Visual Studio 2017. Alternatively, you can use Visual Studio Code, but keep in mind that the labs are tailored to Visual Studio 2017.
You are also going to need Docker Desktop and git.
For some labs, you'll need an Azure subscription. If you do not have one, you can create a free trial account at Microsoft Azure. It will require a credit card, but it will not be charged.

Dapr for building distributed .NET Core applications

Modern distributed applications require much more than just application logic. Features such as state management for services, communication using publish/subscribe messaging and event driven binding to cloud resources might be needed. Dapr introduces a runtime to offer such building blocks, and is less invasive in your application, allowing you to
pick-and-choose what you need. In this session we will look at the approach that the Dapr runtime takes with a sidecar architecture, separating application logic from the Dapr runtime components. You will also see what it takes to develop distributed applications in .NET Core using Dapr's features and how to bind to messaging infrastructure, cloud resources and use the actor programming model and client proxies. At the end you know what it takes to combine Dapr in your ASP.NET Core applications using routing, controllers or using gRPC clients.

Architecting .NET solutions in a Docker ecosystem

You must have noticed how Docker and containers is playing a more and more important part in .NET development. Docker support is everywhere, so it should be easy to build solutions based on container technology, right? But, it takes a bit more to architect and create a .NET solution that use Docker at its core. Many questions arise: How do you design a solution architecture that fits well with containers? Would I use .NET or .NET Core? What is a proper way to migrate to such an architecture? What changes in the .NET implementation from pre-Docker solutions with micro-services? Where do container orchestrators fit in and how do I build and deploy my solutions on a Docker container cluster, such as Azure Kubernetes Service?
These and many other questions will be answered in this session. You will learn how to design and architect your .NET solutions and get a flying start to create, build and run Docker-based containerized applications.

Building real world production-ready Web API's with .NET Core

You might have started building your microservices-based Web APIs using .NET Core. And you are ready to go into production. Did you think about hosting, scaling, monitoring, versioning, documentation, resiliency and logging? Because going into production with just your business logic is not enough. In this session you will learn how you have to build your evolving Web APIs using .NET Core and the Microsoft platform and run in a robust, hyper-scale production environment.

Doing Kubernetes DevOps style

This training introduces you to Docker and container technology for DevOps teams. We will show you how to apply DevOps practices to cloud-based container solutions, complete with hands-on exercises using Kubernetes. The training uses Microsoft tooling and technology, but the skills you will learn can be applied in any technology stack.

This workshop contains hands-on labs to help you gain practical experience with the following topics:
- Getting started with containers and Docker
- Working with Kubernetes
- Azure DevOps pipelines
- Canary releases and A/B testing using Istio service mesh

- Get hands-on experience supporting DevOps practices with available tools.
- Understand the implications for DevOps teams to build, deploy and run container based solutions in a cloud environment.
- Practice finding and fixing bugs without downtime

Target audience:
This training is intended for developers and architects that want to learn about DevOps practices and tooling for a cloud-based Kubernetes solution.

This workshop is divided in two parts with separate labs and allows you to start at any point given your experience. The first part introduces you to container technology and tooling with .NET Core. The second part covers container clusters and meshes using Kubernetes and Istio. Throughout the workshop you will gradually improve your DevOps skills for container based solutions.

All courseware is on Github, so you can both prepare for the workshop ahead of time and finish the workshop from home if you are unable to finish the labs during the workshop.

Server-less compute with .NET based Azure Functions

Azure Functions offer server-less cloud services and are the next evolution in distributed computing and hosting after containers. Join this session to learn how to develop Azure Functions using C# and .NET, and how to test, build and deploy to Azure. We will cover .NET programming details, architecture, internals and hosting. Also, you will learn how to set up a local development environment to build and host locally. After this session you are ready to design and create state of the art Azure Functions using .NET

Logging, tracing and metrics: instrumentation in .NET Core and Azure

Ever had production problems and found that you cannot debug to find the problem? Or that you need to find out where potential issues are coming from in your Azure cloud solution and you have no idea what is happening?
Your applications need to be instrumented with logging, tracing and metrics, so you can see what is going on where. In .NET Core logging and tracing are built into the framework. We will have a look at the differences between logging, tracing and instrumentation in general. You will learn how to use .NET Core to implement logging and tracing with best practices, do semantic logging, work with logging factories, trace providers. Also, you will learn how to instrument using Application Insights and add W3C compliant tracing for correlation across cloud resources in a distributed application. Finally, we will put everything together to see how your logs and traces can give a rich way to get insights into your applications and services running in the Azure cloud or container based solutions.

It depends: loving .NET Core dependency injection or not

.NET Core comes with its own dependency injection system, that you probably know from ASP.NET Core. In this session we will have a detailed look at all of the specifics of Microsoft's default DI system for .NET Core applications. You will learn how to properly use the Inversion of Control features, such as registering services, scopes, lifetimes, and how to resolve instances.
Armed with this DI knowledge, we will revisit ASP.NET Core and investigate bootstrapping and typical scenarios for middleware, background processes and resolving objects from MVC and Razor.
At the end there will be a deep dive into topics with service descriptors, implementation factories, do's and don'ts and pitfalls to avoid memory leaks in your implementation.

I don't feel so well… Integrating health checks in your .NET Core solutions

Do you have any idea how your ASP.NET Web Apps and APIs are functioning? Are they behaving healthily or in a degraded state? You might be able to tell from log information and telemetry data, but why not have them tell you how healthy they are themselves? ASP.NET Core 2.2 introduces health endpoints that let your apps and APIs do just that. In this session you will learn how to make health checks an integral part of your solution. We will cover various types of health checks ranging from internal status, such as memory thresholds, to health based on external dependencies, such as databases and HTTP endpoints. Finally, you are going to see how this all can be used in a Docker container cluster to allow the orchestrator to check for liveliness and readiness based on your health endpoints.

From .NET to .NET Core for cloud solutions

This workshop will focus on migrating your .NET Framework based solutions to .NET Core and designed to run in the cloud. During the workshop you are going to learn what:
- .NET Core 3.0 platform is all about
- Understand .NET Standard 1.0 to 2.1
- Changes required to migrate your .NET FX solution to .NET Core
- Apply cloud patterns in ASP.NET Core 3.0 web applications and APIs for resiliency and
- Apply container technology to implement cloud and container hosted .NET Core applications
- Use tooling and patterns to develop containers for Azure cloud

Getting your head around .NET Standard 2.1

The .NET Standard introduced a new way of creating highly portable .NET assemblies. The .NET Standard was mainly targeted at library developers. Now, .NET Standard 2.1 has much more impact on .NET developers of all platforms. And as it turns out, the .NET Standard is not trivial to understand. In this session you will learn what the .NET Standard is and how it is used to allow you to create cross-platform .NET applications. You are going to see how version 2.1 is a big step forwards for creating and migrating existing apps to new platforms such as .NET Core and the key differences with 2.0. You will get practical guidance to start migrating existing libraries and applications to .NET Standard 2.1, but also get to understand the internals. You are going to see how .NET Standard 2.1 works under the covers during build time and runtime, and how the standard is incorporated into the existing .NET platforms. At the end of the session, you've got your head around .NET Standard 2.1 and you are ready to use it in your .NET development with confidence and proper understanding.

Serverless .NET Solutions using Azure Functions

This workshop will start with the basics of server-less architectures and explain how Azure Functions play a part in building server-less solutions. You will learn how to develop Azure Functions using .NET Core and Visual Studio 2019. Next, you are going to build and deploy these with Azure DevOps using CI/CD. Also covered is the lifecycle management and operations of server-less solutions, with proxies, monitoring and zero-downtime deployments. Among the topics we will cover:
• Getting started with server-less event-driven architectures and Azure Functions
• Anatomy of an Azure Function: creating and dissecting your first functions
• Knowing your triggers and how to binding your inputs and outputs
• Long-running flows with Durable Extensions Framework
• Build and release of Azure Functions with Azure Pipelines
• Securing your solutions
• Automated provisioning of Azure Functions with Azure Resource Management templates
• Going to production: proxies, deployment slots
• Monitoring server-less solutions: Integrating Application Insights in Azure Functions and using Azure Monitor

Past and future events

.NET DeveloperDays 2021

18 Oct - 19 Oct 2021
Warsaw, Mazovia, Poland

Developer Week Swiss

6 Dec - 8 Dec 2020
Zürich, Zurich, Switzerland


23 Nov - 25 Nov 2020

.NET DeveloperDays 2020

19 Oct - 20 Oct 2020
Warsaw, Mazovia, Poland

Cloud DeveloperDays 2020

25 May - 26 May 2020

dotnetdays 2020

29 Feb 2020
Iaşi, Romania

Live! 360 Orlando 2019

17 Nov - 22 Nov 2019
Orlando, Florida, United States

Techorama Netherlands 2019

30 Sep - 1 Oct 2019
Ede, Gelderland, Netherlands

KCDC 2019

17 Jul - 19 Jul 2019
Kansas City, Missouri, United States

NDC Oslo 2019

16 Jun - 20 Jun 2019
Oslo, Norway

Techorama Belgium 2019

19 May - 21 May 2019
Antwerpen, Flanders, Belgium

Techorama NL 2018

30 Sep - 2 Oct 2018
Ede, Gelderland, Netherlands

NDC Minnesota 2018

7 May - 10 May 2018