

Johan Smarius
Microsoft MVP on .NET and DevOps, MCT, Coach/Trainer @ JMAC Software Solutions & Lead Microsoft Development Consultant @ Bergler
Tilburg, The Netherlands
Actions
Johan has been developing software since 1996 and has worked with .NET since version 1.0. With extensive experience as a lead developer and architect for .NET solutions, he is deeply passionate about clean coding and test-driven development. At JMAC Software Solutions and Bergler, he designs architectures for .NET solutions and coaches and trains developers in the domain of software engineering in general and Microsoft technologies in particular.
Links
Area of Expertise
Topics
Workshop getting started with .NET Maui
If you want to build a cross-platform application, .NET MAUI is a great technology to use. However, getting started with a new technology can be challenging—especially when it comes to cross-platform development.
During this workshop, you will install all the necessary components for .NET MAUI development on your own laptop and learn how to use .NET MAUI to build a cross-platform application. Depending on your operating system, you will focus on building either iOS and Android apps or Android and Windows apps.
By the end of this workshop, you will have built a cross-platform application yourself and leave feeling confident that you can use .NET MAUI in your day-to-day work. During the workshop, you can use Visual Studio, Visual Studio Code, or JetBrains Rider.
What's new in Entity Framework Core 9.0
Entity Framework improves with every version. Some great improvements have been made in .NET 9.0. In this talk, I will show you these changes and how you can use them in your projects.
What's new in C#
It is often hard to keep up with all the language updates in C# when developing software. In this session, we review the most important language enhancements from the last few versions of C#.
What’s New in C#: getting up-to-date again
C# continues to evolve at a rapid pace, introducing powerful new features that can make your code more concise, expressive, and robust. But keeping up with all these changes while managing day-to-day development work can be a challenge.
In this hands-on workshop, you'll get up to speed with the most important language features introduced in recent C# versions—such as pattern matching enhancements, records, top-level statements, nullable reference types, required members, primary constructors, and more. You’ll not only learn what’s new, but also why it matters and how to apply it effectively in real-world scenarios.
This session is designed for developers with prior C# experience who want to modernise their coding style and take full advantage of the latest improvements in the language.
By the end of the workshop, you’ll have practical experience using modern C# features and the confidence to apply them in your projects. You’ll also walk away with tips, sample code, and resources to continue your journey with up-to-date C# development
Using Playwright to test your Blazor App
We all (should) use unit testing to test our code. But if we build a front-end application with Blazor, we also need to test the code running in the browser. We can of course do this by hand, but that is boring. And as a software developer, I like writing software more that I like clicking on buttons and links. Well fortunately there is a tool to help us accomplice this: Playwright. In this talk I will show you what Playwright is and how you can use it to automatically test your Blazor front-end.
Modern monolith in .NET
Many systems are built nowadays using microservices. But microservice do come with a cost of complexity. Some companies are already moving away from microservices. But what to choose instead of microservices then? One of the options is a modern monolith. In this talk, I will show you what the pattern is all about and of course we will build a small system based on this architecture together, so that you can get a good understanding of how to build a modern monolith in .NET.
How to stay up-to-date as a working software developer
In the fast-paced world of software development, staying current with the latest technologies, tools, and best practices is essential for continued success and career growth. This informative session will explore effective strategies and practical tips for keeping up-to-date as a working software developer. Whether you're a seasoned professional or just starting your career, this session will provide valuable insights to help you stay ahead of the curve.
Design patterns to make building Blazor and Maui application easier
Creating SPA and mobile applications by simply putting the logic in the code behind can help you build an initial version of an app quite fast. But in the long run, this architecture will hinder future development. In this talk, I will show you three different software design patterns to provide a better separation of concern: Model-View-ViewModel, Onion Architecture and Clean Architecture. And of course I will not explain this by showing you slides, but we will dive into code to really show you how these patterns work.
Cosmos DB and Azure Functions
Cosmos DB is a great storage solution and Azure Functions are a great way to build serverless functions. But how can they use each other? In this talk, we will investigate the possibilities of integrating Azure Functions written in C# and CosmosDB and of course cover the pros and cons of each option. At the end of the talk, you will have a good understanding of the available options and when to use each option.
Azure Entra ID for user authentication in Blazor and Maui applications
Building a login system yourself is considered bad practice. But what to use instead? There are a lot of options available in the market to choose from. If you use Azure, there is a very good option built-in for this: Entra ID. In this talk, I will explain what Entra ID is all about and of course I will show you how you can use it to authenticate your users in Blazor and Maui.
.NET MAUI and . NET Aspire: a beautful combination
.NET MAUI is great for building cross-platform applications. .NET Aspire is great for supporting the development of distributed applications. But what would the combination look like? Well in this talk I will show you how you can use them together to achieve great solutions.
In this talk, you will learn how to integrate .NET Maui and .NET Aspire and what the benefits of the integration are for you as a developer. For this talk, you do not have to be an expert in both technologies. Do not expect a lot of slides in this talk. We will spend most of our time in code.
.NET Community Toolkits
Next to the official codebase of .NET, there are some great unofficial packages developed by Microsoft developers and the community to make developing .NET systems a lot easier: the .NET community toolkits. In this talk I will show you what great things are available in the .NET Community toolkit, but also in the .NET Maui Community Toolkit.
Workshop building a GraphQL Server in .NET
With .NET we often use WebAPI services. These services are most of the time based on the Restful principle. However, for a few years, GraphQL has been gaining popularity. Listening to talks about a topic can give you a good overview of what a technology stack can do. But playing with new technology will help you gain far better insights. So in this workshop, you are going to build your own GraphQL Service in .NET using Visual Studio or Jetbrains Rider. Because of the code, you will have to write, some basic understanding of .NET is required and of course, you do need your laptop with Visual Studio or Jetbrains Rider installed with of course the latest version of .NET.
At the end of this workshop, you will have enough knowledge to start building your own GraphQL service in .NET.
Will AI tools make you a better .NET developer?
ChatGPT caused a lot of motion around AI tools supporting the work process. Of cause developers is no exception in this. During this session, we will explore the AI tools available for .NET developers and answer the question of whether using these tools will make you a better .NET developer.
Kan ik met AI-tools betere .NET code te schrijven?
Met de komst van ChatGPT is er veel commotie losgebarsten rondom AI-tools om mensen te ondersteunen bij het uitvoeren van hun werk. Natuurlijk was voor ontwikkelaars bijvoorbeeld GitHub CoPilot al beschikbaar. In deze sessie gaan we samen op zoek of we met AI-tools betere .NET code kunnen schrijven. Aan het eind van de sessie heb je dan ook een idee of en hoe deze tools je werk eventueel eenvoudiger kunnen maken.
Clean architecture for a Blazor Application
Blazor is a great technology. Microsoft does not enforce any design principles for Blazor. When building a more extensive app some design approaches can be useful, however. In this talk, I will show you can apply clean architecture to a Blazor app.
Practical Design Patterns for everyday development
Design patterns have been around for many years. In many projects, they are still used sparingly. In this talk, I will show you some practical design patterns in .NET you can easily use in your day-to-day development. Using these design patterns will give you the knowledge to write more solid code.
How to apply Test Driven Development in .NET
Test-driven development has been around for some time now. Many organizations still do not use the test-driven development approach. In this talk, we will discuss how you can get started with test-driven development in green field and legacy projects. Prior experience with test driven development is not required.
Managing state in Blazor Applications
You have experimented with Blazor and now you are ready to build a real app with it. In a real complex app, you have to consider how you can manage state within your app. In this talk, I will cover some of the options you have and the advantages and disadvantages of every choice.
Introduction into Blazor
Blazor is an experimental technology to run C# in the browser. In this session, I will show what you can do with Blazor today. In this talk, I will build a small application to demo the different features of Blazor. I will also cover the differences between Blazor and Razor Components. After this session, you will have enough knowledge to start experimenting with Blazor on your own.
gRPC voor .NET ontwikkelaars
In .NET Framework 4 hadden we WCF en WebAPI. .NET Core bood alleen maar ondersteuning voor WebAPI. Sinds .NET Core 3 en met de verbeteringen in .NET 5 hebben we hier ook een goede extra variant bij gekregen: gRPC. In deze sessie laat ik zien wat gRPC is en hoe je hier gebruik van kunt maken in .NET 5. Natuurlijk ga ik ook in op keuze tussen WebAPI en gRPC.
State management in Blazor
Je hebt al wat gehoord en misschien zelfs al wat gespeeld met Blazor. Nu zou je Blazor WebAssembly graag toe gaan passen in een echt project. Binnen een SPA zul je een keuze moeten maken op welke manier je lokaal state bij wilt houden. In deze sessie behandel ik een aantal opties hiervoor met daarbij ook de voors en tegens van elke keuze.
Using gRPC and Blazor WebAssembly together
Both gRPC and Blazor are relatively new to the .NET ecosystem. In this talk, I will show you how you can use these technologies together. You do not need any prior knowledge of gRPC for this talk. I will cover the basics first before diving into the integration of these technologies.
gRPC gebruiken in een Blazor WebAssembly applicatie
Binnen Blazor WebAssembly kunnen we makkelijk gebruik maken van WebApi services. Nu heeft WebApi wel wat overhead wat niet altijd wenselijk is. In deze sessie laat ik je zien hoe je Blazor kunt combineren met gRPC.
GraphQL in .NET
Binnen .NET maken we vaak gebruik van WebApi koppelingen. Vaak baseren we deze api's op het RestFul principe. Steeds meer wordt tussen systemen geen gebruik meer gemaakt van Rest, maar van GraphQL. In deze sessie laat ik je zien wat GraphQL nu is en natuurlijk hoe je een GraphQL service kunt maken en consumeren met .NET.
gRPC in .NET
In .NET Framework 4 we could choose from WCF and WebAPI. In the beginning .NET Core only supported WebAPI. But in the new versions of .NET, we have a new player on the block: gRPC. In this talk I will show you what gRPC is and of course how you can build and consume a gRPC service in .NET.
GraphQL in .NET
With .NET we often use WebAPI services. These services are most of the time based on the Restful principle. However, for a few years, GraphQL has been gaining popularity. In this talk, I will show you what GraphQL is and how you can build and consume a GraphQL service in .NET.
Building cloud apps with .NET Aspire
Building cloud-native apps on your local machine is very hard and error-prone. Fortunately, there is a technology from Microsoft that can help you with this: .NET Aspire. In this talk, I will show you what .NET Aspire is and what it can do for your development experience. Of course, we are not going to cover this using a PowerPoint slide deck, but most of the time we will spend in code showing you all the good parts of .NET Aspire, so that you can go home with a good overview of what Aspire is and how you as a developer can use it.
Blazor WASM and Azure Static Web Apps a great combination
Blazor keeps getting better and better. But where will you host the great new app we have built with it? You could use an Azure App Service for this, but there is another great option in Azure: Static web apps. In this session, I will show you what Azure Static Web Apps are all about and how to combine these with Blazor WebAssembly. The better part of this talk will be spent in Azure and code, so don't expect a lot of slides.
Refactoring a .NET Maui app with MVVM to a clean architecture
Using the MVVM pattern is quite common in .NET Maui applications. This pattern does not ensure full separation of concerns and testability. We will refactor an existing Maui app with MVVM into a clean architecture in this workshop.
Green software development for .NET and Azure developers
Sustainability is very important for most individuals and companies. But how can you contribute to more sustainable software development? In this talk, I will show you what green software development is all about and how you can apply it as a .NET and Azure developer.
Blazor WASM and Azure Static Web Apps a great combination for building a competition application
For our sports club, we need a new competition application. Blazor keeps getting better and better, so why not build this application in Blazor? But where will you host this new app once we have built it? You could use an Azure App Service for this, but another great option in Azure is Static web apps. In this session, I will show you what Azure Static Web Apps are all about and how to combine these with a Blazor WebAssembly application for managing our competition. The better part of this talk will be spent in Azure and code, so don't expect a lot of slides.
Azure Functions for .NET Developers
A lot of .NET applications are written using WebAPI backend services. These services can be hosted using an AppService on Azure. The code in these WebAPIs is typically not very large and tends to go towards a microservice. But do I need a complete AppService in this case? In this talk, I show you a viable alternative: Azure Functions. We will cover what Azure Functions is all about, and of course, we will write some functions together to show you what you can do with Azure Functions.
At the end of the session, you will understand what Azure Functions are all about and how to build them.
Workshop building a GraphQL Server in .NET (full-day)
With .NET we often use WebAPI services. These services are most of the time based on the RESTful principle. However, for a few years, GraphQL has been gaining popularity. Listening to talks about a topic can give you a good overview of what a technology stack can do. But playing with new technology will help you gain far better insights. So in this workshop, you will build your own GraphQL Service with query and mutation support in .NET using Visual Studio, Visual Studio Code or Jetbrains Rider. Because of the code you will have to write, some basic understanding of .NET is required, and of course, you do need your laptop with Visual Studio, Visual Studio Code, or Jetbrains Rider installed, with of course the latest version of NET.
At the end of this workshop, you will have enough knowledge to start building your own GraphQL service in .NET and consuming this service in Blazor and .NET Maui.
Building a MicroService with an Onion architecture
Building a web service in .NET is easy. Most of us are familiar with a layering architecture to split the code into service and data layers. In this session, I will present a different approach in which the domain objects are really at the center of your microservice,
Applying Domain Driven Development in .NET
As a .NET developer, you are used to working with objects and layers. On the internet you read and more about the (not so) new kid on the block: Domain Driven Development. In this session, I will talk you through the most important aspects of Domain Driven Development and I will show you a sample implementation in a .NET solution.
Defensive Coding in C#
In this session, I will show you have you can write better code that is easier to maintain and more resilient against unexpected situations.
Docker for .NET Developers
You have been developing in .NET for some time now and you have heard some stories about containerization and Docker. In this session, I will show you what Docker can do to help you build better software in both greenfield and brownfield applications.
Hands-on Test Driven Development in .NET
Test-driven development has been around for some time now. Many organisations still do not use the test-driven development approach. In this workshop, we practice test-driven development in a hands-on scenario. During this workshop, you can practice the techniques on your own laptop. A .NET solution will be provided. The workshop will support VIsual Studio, Visual Studio Code and JetBrains Rider.
Using Playwright as a MCP server to test your web application
Playwright is a great tool for testing web applications. But what happens if you use the MCP server of Playwright and GitHub Copilot together. In this session, I will show you what great things you can do as a developer to speed up the testing of your web applications using this combination in the different stages of the development workflow. At the end of the session, you have gained insights into the power of the combination, and you know how to set this up on your machine. Do not expect a lot of PowerPoint slides. We will spend most of our time in code.
Is solid knowledge of software engineer no longer needed?
In the media, there is a lot of attention on Generative AI. Many companies seem to embrace vibe coding to generate the code. Developers only need to specify the functionality they want and let the AI write all the code for them. This could give the impression that solid knowledge of good software engineering practices is no longer needed. In this talk, I will challenge this thought by showing you that solid knowledge of software engineering practices is really needed to generate code that is maintainable, secure and extensible. By the end of the talk, I hope you have gained enough reasons to keep learning new software engineering concepts and deepen the knowledge of existing ones.
The impact of AI on the professional life of a developer
AI is changing how software gets built. This talk examines what’s shifting, what isn’t, and how developers can stay valuable as code generation accelerates. You’ll leave with practical strategies for using AI well, sharpening the skills that matter, and planning your next steps.
Does GenAI mean the death of Test-driven Development (TDD)
Many developers use Gen AI a lot for creating code. Generating unit tests is quite popular. But there is also a thing called test-driven development. And the major benefit of adopting this approach is not 100% code coverage, but rather a clean design. But can these approaches be applied together? During this session, we will dive into applying the combination for writing a piece of software. So at the end of this talk, you can make an informed decision whether TDD is useless if you use GenAI. Do not expect a lot of slides. We will spend most of our time in Rider en AI Assistant.
Global Azure Greece 2024 User group Sessionize Event Upcoming
AI Dev Tools Today User group Sessionize Event
Update Conference Krakow 2025 Sessionize Event
NDC Oslo 2025 Sessionize Event
DOTNED SATURDAY 2025 Sessionize Event
Festive Tech Calendar 2024 Sessionize Event
Azure Back to School 2024 Sessionize Event
Azure & AI Lowlands 2024 Sessionize Event
ABP Dotnet Conference 2024 Sessionize Event
Festive Tech Calendar 2023 Sessionize Event
DOTNED SATURDAY 2023 Sessionize Event
DOTNED SATURDAY 2022 Sessionize Event
DOTNED SATURDAY 2020 Sessionize Event
Bergler Event
Domain Driven Design en (micro)services in de praktijk
SDN Event
Hands On Getting Started with Docker Container
DotNet Saturday
Writing beter code with Visual Studio 2017
Bergler Event
Coding styles in Visual Studio
Bergler Event
Workshop Test Driven Development

Johan Smarius
Microsoft MVP on .NET and DevOps, MCT, Coach/Trainer @ JMAC Software Solutions & Lead Microsoft Development Consultant @ Bergler
Tilburg, The Netherlands
Links
Actions
Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.
Jump to top