Every article I've ever published, enjoy! 😁
2024
-
Finally! Improved Blazor Server reconnection UX
-
Better JavaScript module imports with .NET 9
-
Ensure users always get the latest version of your stylesheets with .NET 9
-
Prevent double clicks in Blazor components
-
Avoiding interactivity with Blazor?
-
How to upload a file with Blazor SSR in .NET 8?
-
3 simple design tips to improve your Web UI
-
The quickest way to integrate PayPal checkout with Blazor SSR in .NET 8
-
Interactive what now? Deciphering Blazor's web app project template options
-
Should I put my Blazor components in the server project, or the client project?
-
Share user authentication state with interactive WASM components
-
Simpler auth for Blazor Web Apps with Auth0?
-
Coravel - Easy task scheduling for your .NET web apps
2023
-
.NET 8 Blazor component visibly loading twice? Check your prerendering
-
Where to fetch data in your Blazor components
-
Do ASP.NET Web Applications play nice with Fly.io?
-
Configure Redis on Fly.io to handle your Anti-Forgery Tokens in .NET
-
When a form is actually... oh it's a form
-
How to accept Stripe payments via Blazor in .NET 8
-
How to migrate your Blazor Server app to .NET 8
-
-
Deploy your containerised Blazor app to Digital Ocean's App Platform
-
From Zero to Hero? Building a tiny app from scratch using Blazor and .NET 8
-
Don't rush to build that re-usable Blazor component
-
Exploring Blazor Changes in .NET 8 - Auto Render Mode
-
Exploring Blazor Changes in .NET 8 - Capture User Input with Forms
-
Exploring Blazor Changes in .NET 8 - Interactive Components using Blazor WASM
-
Exploring Blazor Changes in .NET 8 - Interactive Components using Blazor Server
-
Exploring Blazor Changes in .NET 8 - Server Side Rendering (SSR)
-
Good (Blazor) Components are...
-
What happens when you navigate to the same page in Blazor?
-
Need your Blazor sibling components to talk to each other?
-
State Hasn't Changed? Why and when Blazor components re-render
-
Your Blazor component needs data in a certain format, where to Map?
-
Are you sure you need that 'else'
-
Blazor Changes in .NET 8 - Solving Blazor's biggest challenges?
2022
-
Use a recursive Blazor component to render a TreeView
-
Inject content into your Blazor components with typed Render Fragments
-
Using .NET 7's Blazor Custom Elements to render dynamic content
-
Wait until the last responsible moment to add structure to your Blazor UI
-
Struggling to get going with a new feature? Start with the HTML
-
Use the Query String to pass an array of selected values between Blazor Pages
-
Conditional Blazor Styles (without the if statements)
-
Think big, start small
-
Go faster with mockups
-
Build, refactor, repeat
-
Use Tailwind's new JIT mode when developing Blazor applications
-
Missing Blazor intellisense in VS2022? You may be running into this problem
-
Double down on the fundamentals to unblock your projects (current and future)
2021
-
When to refactor a large Blazor component into separate, smaller ones?
-
How I organise my Blazor components
-
Three ways to hack your brain to notice the small details
-
Sure, you could write all those Blazor HTTP calls yourself...
-
With so many Blazor Component Libraries, which one is best for you?
-
Does .NET 6 fix Blazor Prerendering?
-
Razor Pages has Components too don't you know!
-
Persisting your users preferences using Blazor and Local Storage
2020
-
Dark mode for your web applications (using Blazor and Tailwind CSS)
-
Tests are hard, LightBDD can help
-
Is it possible to render components dynamically using Blazor?
-
Render Blazor WASM components in your existing MVC/Razor Pages applications
-
Prerendering your Blazor WASM application with .NET 5 (part 2 - solving the missing HttpClient problem)
-
Prerendering your Blazor WASM application with .NET 5 (part 1)
-
From site.css to component styles
-
Update the HTML head from your Blazor components
-
When does Blazor decide to render your UI?
-
Render diagrams on the fly in your Blazor apps
-
Making Scott Hanselman's Powerpoint Greenscreen trick work with RevealJS via Blazor Server
-
Edit and Replay your network requests, direct from the browser
-
Make a responsive Navbar with Blazor and Tailwind?
-
Pimp up your Blazor EditForms with Tailwind CSS!
-
Blazor EditForms, an essential tool or too much magic?
-
Custom validation logic on client AND server with Blazor?
-
Go faster with your own re-usable Blazor components
-
3+1 ways to manage state in your Blazor application
-
How easy is it to build a Marvel search engine with Blazor?
-
Quickly transform any mockup or design into a working Blazor prototype
-
CSS is hard, Blazor and Tailwind CSS makes it easier
-
Going virtual
-
Escaping WebForms is a tough gig, Blazor might have the solution
-
Blazor by Example - A dismissable banner
-
Blazor by Example - A spot of refactoring
-
Blazor by Example - Build a simple traffic light
-
Blazor by Example - Build a simple markdown editor
-
10 Blazor component libraries to speed up your development
2019
-
Use Blazor in your existing ASP.NET Core 3.x application
-
Is Blazor actually any good, beyond demo-ware
-
Blazor - Where to put your domain logic
-
How to learn Blazor when you don't use it for your day job
-
Shared models - Blazor's (not so) secret super power
-
But, which flavor of ASP.NET?
-
There's a buzz about Blazor - Here's why
-
Starting out with the ASP.NET Core React template (part 3 - Separating out the frontend)
-
Starting out with the ASP.NET Core React template (part 2 - Web API)
-
Starting out with the ASP.NET Core React template
-
MediatR and Blazor Server?
-
Building a like button using Blazor Server
-
A gentle introduction to Blazor Server
-
WTF is an Action Delegate?
-
WTF Is a Lambda?
-
The ASP.NET Core Form Tag Helpers Cheat Sheet
-
How to use Typescript with the ASP.NET Core 2.x React Project Template
2018
-
Simple Background Jobs With Hangfire and ASP.NET Core
-
Best way to spin up a React plus ASP.NET Core Web API Application?
-
Use Action Filters to cut down your context.SaveChanges calls
-
Typescript and React: Lambdas are forbidden?
-
Want to move to full-stack development but not sure where to start?
-
What to focus on when learning ASP.NET Core?
-
Check the versions of ASP.NET Core available to your Azure App Service
-
Different js scripts for different ASP.NET core environments
-
Add React.js to your existing asp.net application
-
Can't remember what CORS code to put in your startup.cs?
-
Cross-Origin Request Blocked
-
Stuck for inspiration with your .net projects?
-
Learning React - Exercise control over your component state with Typescript
-
From WebForms to MVC, the first 10 minutes
-
Learning React - How to connect React components to your ASP.NET Core Web API
-
Learning React - Building up the user interface using components and dummy data
-
Diary Of A Net Developer - Learning React
-
Separating concerns using Razor Pages
-
MVC vs Razor Pages - A quick comparison
-
Tackle more complex security policies for your ASP.NET Core app
-
Identify users and their permissions with JWTs and ASP.NET Core WebAPI
-
Pre-populate a textbox using ASP.NET Core MVC
-
8 practical tips for learning ASP.NET Core MVC
2017
-
Secure your ASP.NET Core 2.0 API (part 2 - restrict access to JWT bearers only)
-
Secure your ASP.NET Core 2.0 API (part 1 - issuing a JWT)
-
A simple way to secure your .NET Core 2.0 web app
-
How to get data from an HTML form to your ASP.NET MVC Core Controller
-
Keep your ASP.NET Core secrets safe in production using Azure Application Settings
-
Keep your ASP.NET Core application’s secrets safe during development
-
Secure your ASP.NET Core MVC and Web API app using Google
-
Login & Authentication for your ASP.NET Core Web API – The Big Picture
-
Making sense of the different versions of .NET Core (runtime and SDK)
-
Add MVC to your ASP.NET 1.1 application using the dotnet command line
-
Create a minimal ASP.NET Core 1.1 web application using the command line
-
Use ASP.NET Core 1.1 with .NET 4.6 (without Visual Studio)
-
Create an Angular 2 and .NET Core app that can be edited using Visual Studio 2017
-
Send form input via an Angular 2 component to ASP.NET Core Web API
-
Fetch the current weather using ASP.NET Core Web API and OpenWeather
-
Display the weather using Angular 2 and .NET Core Web API
-
Angular 2 and .NET Core – route directly to your components
2016
-
Angular 2 and .NET Core – your first component
-
Fast track your Angular 2 and .NET Core web app development
-
Not sure what to learn next?
-
Start using Dependency Injection with ASP.NET Core
-
Is Entity Framework Core Production Ready?
-
Learn .NET Core by example (or micro example) – Part II
-
Build your .NET Core app using Yeoman
-
Creating a new .NET Core web application, what are your options?
-
Learn .NET Core by example
-
Add Web API to your .NET Core application
-
Should I learn .NET Core?
-
How to log different levels of information in your ASP.NET Core app
-
Troubleshoot your ASP.NET Core web app using logging
-
Use ASP.NET Core against .NET 4.6
-
How to easily extend your app using MediatR notifications
-
How to serve static files for your Single Page Application from .NET Core
-
The basics of publishing your .NET Core web app
-
Compile your changes on the fly with .NET Core Watch
-
How to add MVC to your ASP.NET Core web application
-
Your first .NET Core web application using just the command line (in ten minutes or less)
-
Build your features
-
Use ASP.NET Core to cut the number of controllers in your web app
-
3 ways to spot if your controller is doing too much
-
Simplify your controllers with the Command Pattern and MediatR
-
3 ways to keep your asp.net mvc controllers thin
-
What should I learn in order to develop modern asp.net web projects?
-
Building Microservices using Azure Service Fabric 2.0
-
'Reduce coupling: Free your code and your tests'
-
Apply “Tell Don’t Ask” and reduce coupling
-
Why coupling will destroy your application and how to avoid it
-
'Azure Bites: Background tasks for your web site using Azure WebJobs'
-
How (not) to send emails from your web site – Topics and Subscriptions (Part 3)
-
How (not) to send emails from your web site – Service Bus Queues (Part 2)
-
How (not) to send emails from your web site – The Problem (Part 1)
-
'Azure Bites: Microservices in Azure'
-
'Azure Bites: Get your site hosted on Azure for free in 15 minutes or less'
-
'Azure Bites: Subscriptions'
-
AzureCon
-
'Azure Bites: API App'
2010
2009
-
BDD with MSpec and Rhino Auto Mocks (part 3)
-
BDD with MSpec and Rhino Auto Mocks (part 2)
-
BDD with MSpec and Rhino Auto Mocks (part 1)
-
Fluent NHibernate Gotcha
-
'S#arp Architecture WCF Gotcha'
-
ASP.NET and JQuery MVC Menu Part 2
-
ASP.NET and JQuery MVC Menu Part 1
-
'Domain Driven Design: Thought of the day'
2008
-
MVC LINQ and OOP
-
MVC and good software design
-
ASP.NET MVC Test Framework integration
-
ASP.NET MVC Custom Controls
-
Abstracting your Dependency Injection framework
-
'Model *View* Controller'
-
Code 39 Mod 43 Checksum
-
Log4Net Custom Appender
-
Shocking Gotcha – ASP.NET user controls not being referenced
-
Subsonic
-
Visual Studio Hotfix rollup
-
Nmock Gotcha about Reference Parameters
-
ASP.NET process identity does not have read permissions to the global assembly cache