ASP.NET Core API Versioning
IntroductionWhen you have an existing deployed REST API that you want to change, you generally need to be very careful. Why would you want to change it? There can be a number of reasons:Changes to the...
View ArticleEF Core Performance Optimisations
IntroductionWe all know O/RMs aren't the fastest tools when it comes to loading data, and Entity Framework Core is surely no exception. After all, they need to do a lot of operations, such as...
View ArticleOn Architecture – Part 2: Data Storage and Access
IntroductionSecond post on a new series on software architecture. First one here, on high-level system communication. This time I’m going to talk a bit about data storage and how to access the...
View ArticleSoft Deletes with Entity Framework Core - Part 3
IntroductionLong ago, I wrote two posts on how to do soft deletes with EF Core. Back then, it was with version 2. Well, something (a lot!) has changed in the meantime, namely:Custom conventionsEventsSo...
View ArticleRead-Only Entities in EF Core
IntroductionOne feature that has been conspicuously missing from EF Core is read-only entities, meaning, the possibility to mark an entity type as read-only, in which case, no changes to its instances...
View ArticleSoft Deletes with Entity Framework Core – Bulk Deletes
IntroductionThis is post 4 on a series of posts on soft deletes with EF Core. On none of my posts on this series did I mention that these solutions do not work with bulk deletes, introduced in EF Core...
View ArticleSoft Deletes with Entity Framework Core – Wrap Up
Those that follow this blog probably know about my series of posts on soft-deletes with EF Core, which you can find here:Global query filtersSaving changesConventions and EventsBulk DeletesI decided to...
View ArticleEF Core Entity Validation
IntroductionAs you guys may know, Entity Framework "classic" used to do entity validation before saving changes. By default, it used the Data Annotations validator, but you could plug your own...
View Article.NET 8 Data Annotations Validation
IntroductionI wrote about entity validation in the past, the reason I'm coming back to it is that there are some changes in .NET 8, that I haven't revisited. Time for a refresher!.NET has featured a...
View ArticleCaching HttpClient Requests
IntroductionThe HttpClient class is Microsoft’s recommended approach for making raw HTTP calls in .NET. It allows you to send arbitrary HTTP requests (including headers) through a request/response...
View ArticleGetting Location and Weather from an IP Address
IntroductionThe concept of getting the location for a given IP address is not exactly new, and some posts have been written about it already. Still, I wanted to write about it because I will need it...
View ArticleChecking the Heath of an ASP.NET Core Application
IntroductionHaving a way to evaluate the health status of our system has been around since ASP.NET Core 2.2. In a nutshell, the idea is, you register a number of health checks, and you run them all at...
View ArticleBlog Maintenance
I updated some of the links in my blog, removed outdated/broken links, added a few others (friends, links collections). This will be the last thing I'll do before going on annual leave, be back by the...
View ArticleUsing MongoDB with Entity Framework Core Session
Yesterday I did a talk on a joint Porto.DATA and Azure & AI User Group Portugal event (thanks, Ivan Campos and Pedro Sousa, for inviting me!) on using MongoDB with EF Core. The slides are here...
View ArticleRate Limiting in ASP.NET Core
IntroductionRate limiting is sometimes known as throttling, even though they're not quite the same - rate limiting is more about fairness, making sure everyone gets a fair share (number of requests),...
View ArticleASP.NET Core Features
IntroductionRequest Features, or feature interfaces, offer a centralised way to access functionality that is commonly added by middleware in the pipeline. Features allow us to access information, or,...
View ArticleService Discovery in .NET
IntroductionService Discovery is a common pattern in distributed systems, like microservices, where one does not need to know the exact address of a resource, instead we ask some kind of...
View ArticleNew Blog
As some of you may have noticed, I've been having several issues with the weblogs.asp.net hosting platform. I've been using it since 2009, but, in the last months, it has become increasingly unstable....
View ArticleASP.NET Core Pitfalls – Returning a Custom Service Provider
Update: This post is meant to replace https://weblogs.asp.net/ricardoperes/asp-net-core-pitfalls-returning-a-custom-service-provider-from-configureservices. Please have a look at...
View Article