htmx3 min read

New Release!! htmxRazor v2.1.0: Advanced Inputs

Forms are where server-rendered apps either feel sharp or feel clunky. A date field that drops you into a raw text box, a category selector that needs a client-side widget and three npm packages, a…

htmx3 min read

htmxRazor v2.0.0: Platform and DX

An interactive playground, a live theme builder, SignalR, and a Kanban board, all on .NET 10 with no breaking changes. htmxRazor v2.0.0 is out today. The six features in this release span three…

Rust2 min read

Performance Check: Does Rust Really Fly?

Welcome to Day 41, and we are almost done! Today, we are putting Rust’s performance reputation to the test. Rust has a reputation for being fast. But how fast? If you…

Rust2 min read

Packaging and Releasing a Rust CLI Tool

Day 40, and today we are looking at how to package and release your Rust CLI app. You have written the code, added argument parsing, handled the logic, and even written…

Rust1 min read

Writing Tests in Rust: Familiar and Fast

Onward to Day 39. Today, we're discussing testing in Rust. If you are a C developer, you have probably spent time with xUnit, NUnit, or MSTest. You know the usual…

Rust2 min read

Building a CLI App in Rust: My First Project

It's day 36, and today, we are shifting gears from theory to practice. It is time to roll up our sleeves and build something. If you have ever built a command-line tool…

Rust2 min read

Parsing Arguments and Writing Logic in Rust

We are up to Day 37, and today, we are continuing to build out our Rust CLI app. Last time, we set up a simple command-line tool using the clap crate. Now, it is time to…

Rust2 min read

Rust Iterators and Functional Combinators

Welcome to Day 34, and today we are taking a stroll through one of the most satisfying parts of Rust. If you're a C developer who loves LINQ, this will feel like home…

Rust2 min read

Lifetimes: Surviving the First Encounter

Day 32, and today we are stepping into one of Rust’s most talked-about features. If you have heard scary stories about lifetimes, do not worry. This is your first…

Rust2 min read

Generics in Rust vs Generics in C#

Welcome to Day 31. Today, we're diving into generics. If you are coming from C this is probably familiar ground. You know and love List , Dictionary , and all the…

Rust2 min read

Trait Objects: Goodbye virtual, Hello dyn

Welcome to Day 30 and today we are going to explore how Rust handles dynamic dispatch with trait objects. If you are used to the world of C this is the part where you…

Rust2 min read

Traits in Rust: Interfaces That Do More

Welcome to Day 29 where we are stepping into one of Rust’s most powerful features. If you are a C developer think of traits as interfaces but with some serious upgrades.…

Rust2 min read

Week 4: Reflecting on Errors and Structure

Day 28 marks the end of Week 4 and it is time to pause for a quick reflection. We have covered a lot of ground this week from organizing Rust code with modules and…

Rust2 min read

Custom Errors: From Display to thiserror

Look at this! Day 26, and today we’re talking about one of my favorite things to not ignore: error messages. Because when things go sideways (and they will), your future…

Rust2 min read

Error Propagation with ?: So Simple, So Smart

Day 24... today we’re digging into one of my favorite "why doesn’t every language have this?" features in Rust: the ? operator. If you've spent any time in C, you're no…

Rust2 min read

Crates and Dependencies: NuGet, Meet Cargo

Day 23... let’s talk about how Rust gets its packages! If you’re coming from the .NET world, you’re no stranger to NuGet. It’s been your trusty sidekick for pulling in…

Rust2 min read

Result<T,E>: A Better Way to Fail

Welcome to Day 20! Today we’re talking about failure, but in the best possible way. Because, let's be honest, things go wrong. Files go missing. Network calls timeout.…

Rust2 min read

Option<T>: Where Null Is Not an Option

Ah, nulls, the "billion-dollar mistake" that haunts just about every C developer. How many times have you chased down a NullReferenceException, muttering under your…

Rust2 min read

Match: Switch on Steroids

Welcome to Day 17! By now, we've covered some seriously cool Rust features, but today might be my favorite so far: the match expression. If you're coming from a C…

Rust2 min read

Enums: Discriminated Unions Done Right

Welcome to day 17! Today, we're diving into Rust's enums—and spoiler alert—they're not your typical enums from C. Rust enums are powerful, flexible, and genuinely fun.…

Rust2 min read

Rust Structs vs C# Classes: Less is More

Welcome back! After wrestling with Rust's strict ownership rules, let's ease into something a little more familiar (yet refreshingly different): structs. As a C…

Rust2 min read

Shadowing in Rust: Redeclaring with Style

We've all been there. You're coding away, and suddenly you reuse a variable name without realizing it. If you're a C developer, your brain probably triggers a warning…

Rust2 min read

Functions in Rust: Familiar Yet Different

Today’s Rust lesson hit a familiar note but with a twist. Writing functions in Rust feels almost like writing them in C. Until, of course, the compiler reminds you that…

Rust2 min read

Variables in Rust: Let Me Be Immutable

So today, I ran head-first into a Rust design decision that made me pause and go, “Wait… really?” In C, I can declare a variable with var and change it later. No fuss.…

Rust2 min read

Hello, Rust! Hello, World! Rust vs C# Syntax

Let’s be honest—every new language journey begins the same way: with a humble "Hello, World!" It’s the developer's rite of passage. So today, on Day 3 of my 42-day Rust…

Rust2 min read

Why Rust? A C# Developer’s Journey Begins

The daily list of topics for the series is here: From C to Rust: A 42-Day Developer Challenge Today marks Day 1 of my 42-day challenge to learn Rust—with a twist. I’m…

Rust3 min read

Rust's Superpower: Speed Meets Smarts

- Part 1: Why Every C Developer Should Explore Rust - Part 2: Exploring Programming Paradigms: C and Rust Side by Side - Part 3: Syntax Smackdown: Comparing Constructs…