
Navigating the Web of HATEOAS and HTMX: Unleashing the Power of Hypermedia and Simplified Front-End Wizardry with Sander ten Brinke
03/08/24 • 60 min
This episode of The Modern .NET Show is supported, in part, by Avalonia XPF, a binary-compatible cross-platform fork of WPF, enables WPF apps to run on new platforms with minimal effort and maximum compatibility.
Show NotesHateos allows you to add links to the actions you can perform with the data you're returning. So imagine a tweet and imagine, for example, just a links. It's just an object with some arrays. And one of the links could be a retweet link or like a favourite link or like a delete link. And each link contains a type, which is like the HTTP type, it contains the URL to where you perform this action, and it also contains like a name. So kind of human readable kind of name. So like like retweet, delete, stuff like that.
—Sander ten BrinkeWelcome to The Modern .NET Show! Formerly known as The .NET Core Podcast, we are the go-to podcast for all .NET developers worldwide and I am your host Jamie "GaProgMan" Taylor.
In this episode, I spoke with Sander ten Brinke about HATEOAS and HTMX. These are two separate but complementary technologies which help to build reactive web applications. In fact, as Irina pointed out back in episode 2 of the current season (released on Sept 22nd, 2023), you're likely not building RESTful services if you're not doing HATEOAS.
And HTMX is something, as you'll find out, which aims to simplify building HTML-based apps that utilise web-based APIs by taking care of the boilerplate JavaScript code that you might need to include, using a series of attributes that you can place on elements.
So HTMX is in the principle, it's a JavaScript library, which you can use. So you can use it in your application to write a whole lot less JavaScript.
Let's think back to the good old days, right, where we were writing, like, Web 1.0 applications and our servers were simply like, we're using HTML templating engines, which they still do.
It worked and it worked fine, but it wasn't very interactive because then we kind of got to the point where we were like, we want to do some cool clients application, but we don't want to reload the page the entire time. And that is kind of where the SPA movement came along. We want to be able to have a rich interactive application where clicking a button or clicking multiple buttons, just a bit of the page refreshes, right? That's kind of the Web 2.0, I suppose.
—Sander ten BrinkeSo let's sit back, open up a terminal, type in dotnet new podcast and we'll dive into the core of Modern .NET.
Supporting the ShowIf you find this episode useful in any way, please consider supporting the show by either leaving a review (check our review page for ways to do that), sharing the episode with a friend or colleague, buying the host a coffee, or considering becoming a Patron of the show.
Full Show NotesThe full show notes, including links to some of the things we discussed and a full transcription of this episode, can be found at: https://dotnetcore.show/season-6/navigating-the-web-of-hateoas-and-htmx-unleashing-the-power-of-hypermedia-and-simplified-front-end-wizardry-with-sander-ten-brinke/
Useful Links- HATEOS
- Chapter 5 Representational State Transfer (REST) of Roy Thomas Fielding's paper which introduced REST in 2000
- HTMX
- munisio - Sander's HATEOS NuGet library
- riskfirst.hateoas
- Sander's blog post introducing munisio
- HTMX.NET
- HTMX for ASP.NET Core Developers
- Getting in touch with Sander:
- on Twitter: @SanderTenBrinke
- on LinkedIn
- his website
This episode of The Modern .NET Show is supported, in part, by Avalonia XPF, a binary-compatible cross-platform fork of WPF, enables WPF apps to run on new platforms with minimal effort and maximum compatibility.
Show NotesHateos allows you to add links to the actions you can perform with the data you're returning. So imagine a tweet and imagine, for example, just a links. It's just an object with some arrays. And one of the links could be a retweet link or like a favourite link or like a delete link. And each link contains a type, which is like the HTTP type, it contains the URL to where you perform this action, and it also contains like a name. So kind of human readable kind of name. So like like retweet, delete, stuff like that.
—Sander ten BrinkeWelcome to The Modern .NET Show! Formerly known as The .NET Core Podcast, we are the go-to podcast for all .NET developers worldwide and I am your host Jamie "GaProgMan" Taylor.
In this episode, I spoke with Sander ten Brinke about HATEOAS and HTMX. These are two separate but complementary technologies which help to build reactive web applications. In fact, as Irina pointed out back in episode 2 of the current season (released on Sept 22nd, 2023), you're likely not building RESTful services if you're not doing HATEOAS.
And HTMX is something, as you'll find out, which aims to simplify building HTML-based apps that utilise web-based APIs by taking care of the boilerplate JavaScript code that you might need to include, using a series of attributes that you can place on elements.
So HTMX is in the principle, it's a JavaScript library, which you can use. So you can use it in your application to write a whole lot less JavaScript.
Let's think back to the good old days, right, where we were writing, like, Web 1.0 applications and our servers were simply like, we're using HTML templating engines, which they still do.
It worked and it worked fine, but it wasn't very interactive because then we kind of got to the point where we were like, we want to do some cool clients application, but we don't want to reload the page the entire time. And that is kind of where the SPA movement came along. We want to be able to have a rich interactive application where clicking a button or clicking multiple buttons, just a bit of the page refreshes, right? That's kind of the Web 2.0, I suppose.
—Sander ten BrinkeSo let's sit back, open up a terminal, type in dotnet new podcast and we'll dive into the core of Modern .NET.
Supporting the ShowIf you find this episode useful in any way, please consider supporting the show by either leaving a review (check our review page for ways to do that), sharing the episode with a friend or colleague, buying the host a coffee, or considering becoming a Patron of the show.
Full Show NotesThe full show notes, including links to some of the things we discussed and a full transcription of this episode, can be found at: https://dotnetcore.show/season-6/navigating-the-web-of-hateoas-and-htmx-unleashing-the-power-of-hypermedia-and-simplified-front-end-wizardry-with-sander-ten-brinke/
Useful Links- HATEOS
- Chapter 5 Representational State Transfer (REST) of Roy Thomas Fielding's paper which introduced REST in 2000
- HTMX
- munisio - Sander's HATEOS NuGet library
- riskfirst.hateoas
- Sander's blog post introducing munisio
- HTMX.NET
- HTMX for ASP.NET Core Developers
- Getting in touch with Sander:
- on Twitter: @SanderTenBrinke
- on LinkedIn
- his website
Previous Episode

nanoFramework: Unleashing the Power of C# in Embedded Systems and IoT with José Simões
Avalonia XPF
This episode of The Modern .NET Show is supported, in part, by Avalonia XPF, a binary-compatible cross-platform fork of WPF, enables WPF apps to run on new platforms with minimal effort and maximum compatibility.
Show NotesWelcome to The Modern .NET Show! Formerly known as The .NET Core Podcast, we are the go-to podcast for all .NET developers worldwide and I am your host Jamie "GaProgMan" Taylor.
In this episode, I spoke with José Simões about the .NET nanoFramework, a powerful platform for embedded systems and IoT development. I was incredibly impressed when José spoke about just how quickly you can get started with .NET nanoFramework and an ESP32:
You grab a breadboard, you stick an ESP 32 module onto it, and you plug an Led or a sensor or wherever, and in half an hour, you have a proof of concept of something that you are building or just having fun with. And this is great not only for learning to code, but to come up with a proof of concept that you want to show to a customer If you want to do that in C, I dare you to do that. On the same time, you won't be able to. Meaning that with that code and that proof of concept, then you can evolve, you can keep working on it, and then you can easily migrate that to a production grade system because you will be using the same code. You don't have to change much to get it working.
—José SimõesSo let's sit back, open up a terminal, type in dotnet new podcast and we'll dive into the core of Modern .NET.
Supporting the ShowIf you find this episode useful in any way, please consider supporting the show by either leaving a review (check our review page for ways to do that), sharing the episode with a friend or colleague, buying the host a coffee, or considering becoming a Patron of the show.
Full Show NotesThe full show notes, including links to some of the things we discussed and a full transcription of this episode, can be found at: https://dotnetcore.show/season-6/nano-framework-unleashing-the-power-of-c-sharp-in-embedded-systems-and-iot-with-jos%C3%A9-sim%C3%B5es/
Useful Links- .NET nanoFramework
- Eclo Solutions
- Zoom H4N
- HD60s+
- IoT Hub
- ESP32
- STM32
- GitHub Copilot
- Microsoft Learn Portal
- SPI (serial peripheral interface) bus
- .NET nanoFramework Visual Studio extension
- nanoFramework Flasher
- nanoFramework discord community
- Supporting the show:
- Getting in touch:
- Music created by Mono Memory Music, licensed to RJJ Software for use in The Modern .NET Show
Remember to rate and review the show on Apple Podcasts, Podchaser, or wherever you find your podcasts, this will help the show's audience grow. Or you can just share the show ...
Next Episode

From .NET to DuckDB: Unleashing the Database Evolution with Giorgi Dalakishvili
NService Bus
This episode of The Modern .NET Show is supported, in part, by NServiceBus, the ultimate tool to build robust and reliable systems that can handle failures gracefully, maintain high availability, and scale to meet growing demand.
Make sure you click the link in the show notes to learn more about NServiceBus.
Show NotesYeah. So what I was thinking the other day is that what we want is to concentrate on the business logic that we need to implement and spend as small as little time as possible configuring, installing and figuring out the tools and libraries that we are using for this specific task. Like our mission is to produce the business logic and we should try to minimize the time that we spend on the tools and libraries that enable us to build the software.
—Giorgi DalakishviliWelcome to The Modern .NET Show! Formerly known as The .NET Core Podcast, we are the go-to podcast for all .NET developers worldwide and I am your host Jamie "GaProgMan" Taylor.
In this episode, I spoke with Giorgi Dalakishvili about Postgresql, DuckDB, and where you might use either of them in your applications. As Giorgi points out, .NET has support for SQL Server baked in, but there's also support for other database technologies too:
Yes, there are many database technologies and just like you, for me, SQL Server was the default go to database for quite a long time because it's from Microsoft. All the frameworks and libraries work with SQL Server out of the box, and have usually better support for SQL Server than for other databases.
But recently I have been diving into Postgresql, which is a free database and I discovered that it has many interesting features and I think that many .NET developers will be quite excited about these features. The are very useful in some very specific scenarios. And it also has a very good support for .NET. Nowadays there is a .NET driver for Postgres, there is a .NET driver for Entity Framework core. So I would say it's not behind SQL server in terms of .NET support or feature wise.
—Giorgi DalakishviliHe also points out that our specialist skill as developers is not to focus on the tools, libraries, and frameworks, but to use what we have in our collective toolboxes to build the business logic that our customers, clients, and users desire of us. And along the way, he drops some knowledge on an essential NuGet package for those of us who are using Entity Framework..
So let's sit back, open up a terminal, type in dotnet new podcast and we'll dive into the core of Modern .NET.
Supporting the ShowIf you find this episode useful in any way, please consider supporting the show by either leaving a review (check our review page for ways to do that), sharing the episode with a friend or colleague, buying the host a coffee, or considering becoming a Patron of the show.
Full Show NotesThe full show notes, including links to some of the things we discussed and a full transcription of this episode, can be found at: https://dotnetcore.show/season-6/from-net-to-DuckDB-unleashing-the-database-evolution-with-giorgi-dalakishvili/
Useful LinksIf you like this episode you’ll love
Episode Comments
Generate a badge
Get a badge for your website that links back to this episode
<a href="https://goodpods.com/podcasts/the-modern-net-show-60989/navigating-the-web-of-hateoas-and-htmx-unleashing-the-power-of-hyperme-46325123"> <img src="https://storage.googleapis.com/goodpods-images-bucket/badges/generic-badge-1.svg" alt="listen to navigating the web of hateoas and htmx: unleashing the power of hypermedia and simplified front-end wizardry with sander ten brinke on goodpods" style="width: 225px" /> </a>
Copy