Maarten Balliauw {blog}
RSS FeedRecent Posts
-
What is IdentityServer and When Do You Need it?
Earlier this week at Duende Software, we had a prospect reach out that wanted to implement IdentityServer in their solution. Their application consisted of one ASP.NET Core application with local users, no mobile applications or other clients, no API surface, and no plans in the roadmap to move towards an architecture with any of these. All they wanted was to add external authentication to Google.
-
Time for a change... Moving from JetBrains to Duende Software
At the start of 2025, I will be joining Duende Software to help drive customer success and advocate for IdentityServer and other tools and frameworks built by the company. For close to 12 years, I have been working at JetBrains as a Developer Advocate. Mainly for .NET, but also for other fantastic developer tools. In recent years, I have grown to lead the .NET Advocacy team, and later head the whole Developer Advocacy team at JetBrains.
-
Talk - Bringing C# nullability into existing code
The C# nullability features help you minimize the likelihood of encountering that dreaded System.NullReferenceException. Nullability syntax and annotations give hints as to whether a type can be nullable or not, and better static analysis is available to catch unhandled nulls while developing your code. What’s not to like? Introducing explicit nullability into an existing code bases is a Herculean effort. There’s much more to it than just sprinkling some ? and ! throughout your code. It’s not a silver bullet either: you’ll still need to check non-nullable variables for null.
-
Test-Driving Windows 11 Dev Drive for .NET
At Build 2023 back in June, Microsoft announced a new form of storage volume for Windows 11: Dev Drive. In October 2023, support for Dev Drive was shipped as a Windows Update and now available to anyone using the latest version of Windows 11.
-
Provide opt-in to experimental APIs using C#12 ExperimentalAttribute
When writing libraries and frameworks that others are using, it’s sometimes hard to convey that a given API is still considered “experimental”. For example, you may want to iterate on how to work with part of the code base with the freedom to break things, while still allowing others to consume that code if they are okay with that.
-
Discriminated Unions in C#
Discriminated unions have been a long-standing request for C#. While F# users have had discriminated unions for years, C# developers will have to wait a bit longer. What discriminated unions allow you to do is tell the compiler (and other tooling like your IDE) that data can be one of a range of pre-defined types.
-
Running Large Language Models locally – Your own ChatGPT-like AI in C#
For the past few months, a lot of news in tech as well as mainstream media has been around ChatGPT, an Artificial Intelligence (AI) product by the folks at OpenAI. ChatGPT is a Large Language Model (LLM) that is fine-tuned for conversation. While undervaluing the technology with this statement, it’s a smart-looking chat bot that you can ask questions about a variety of domains.
-
Getting rid of warnings with nullable reference types and JSON object models in C#
In my blog series, Nullable reference types in C# - Migrating to nullable reference types, we discussed the benefits of enabling nullable reference types in your C# code, and annotating your code so the compiler and IDE can give you more reliable hints about whether a particular variable or property may need to be checked for being null before using it. We ended the series with a curious case: how to annotate classes to deserialize JSON.
-
Mastodon on your own domain without hosting a server
Like many in the past week, I have been having a serious look at Mastodon as an alternative to Twitter. Mastodon is a social network that is distributed across many servers that have their own smaller communities, and federate with other servers to provide a more “global” social network. There are many servers out there that you can choose from. Alternatively, you can also self-host your Mastodon server, or use one of many hosted instances, “Mastodon as a service”.
-
Rate limiting in web applications - Concepts and approaches
Your web application is running fine, and your users are behaving as expected. Life is good! Is it, though…? Users are probably using your application in ways you did not expect. Crazy usage patterns resulting in more requests than expected, request bursts when users come back to the office after the weekend, and more!