Open-sourced a .NET diff/patch engine for AI code edits (V4A + str_replace)
If you're building AI app in .NET, there isn't a good option for applying V4A patches or Anthropic-style str_replace operations. So I extracted the patching engine from [my product](https://instructui.com), a Blazor code generation tool, and open-sourced it.
**PatchSharp** supports two formats:
- **V4A patches** — same format OpenAI's Codex CLI uses in `apply-patch`
- **str_replace** — the Anthropic-style find-and-replace that Claude Code uses
It also has fuzzy matching when applying patch. When exact match fails, it will try other strategies — trim trailing whitespace -> trim both sides -> Unicode normalization (smart quotes -> ASCII, em-dashes -> hyphens). Lowest fuzz level that works wins.
```csharp
using PatchSharp;
var result = ApplyPatch.Apply(original, diff);
var result = ApplyPatch.StrReplace(input, oldStr, newStr);
```
On failure it throws `PatchApplyException` with line number, fuzz level, and surrounding context similar to codex-cli, so that AI can understand where it fails.
GitHub: https://github.com/bharathm03/PatchSharp
Would love feedback.
https://redd.it/1rytpq6
@r_dotnet
If you're building AI app in .NET, there isn't a good option for applying V4A patches or Anthropic-style str_replace operations. So I extracted the patching engine from [my product](https://instructui.com), a Blazor code generation tool, and open-sourced it.
**PatchSharp** supports two formats:
- **V4A patches** — same format OpenAI's Codex CLI uses in `apply-patch`
- **str_replace** — the Anthropic-style find-and-replace that Claude Code uses
It also has fuzzy matching when applying patch. When exact match fails, it will try other strategies — trim trailing whitespace -> trim both sides -> Unicode normalization (smart quotes -> ASCII, em-dashes -> hyphens). Lowest fuzz level that works wins.
```csharp
using PatchSharp;
var result = ApplyPatch.Apply(original, diff);
var result = ApplyPatch.StrReplace(input, oldStr, newStr);
```
On failure it throws `PatchApplyException` with line number, fuzz level, and surrounding context similar to codex-cli, so that AI can understand where it fails.
GitHub: https://github.com/bharathm03/PatchSharp
Would love feedback.
https://redd.it/1rytpq6
@r_dotnet
Instruct UI by Radha AI
AI for ASP.NET Core Blazor UI Generation | Instruct UI
AI for ASP.NET Core Blazor UI Generation with support for MudBlazor, Tailwind CSS, and Bootstrap
[Release] Polars.NET v0.4.0 - Bringing Polars to .NET: Query DataFrames with C# LINQ, F# CE, and Strong Typed DataReader
https://github.com/ErrorLSC/Polars.NET/
https://redd.it/1ryvvnp
@r_dotnet
https://github.com/ErrorLSC/Polars.NET/
https://redd.it/1ryvvnp
@r_dotnet
GitHub
GitHub - ErrorLSC/Polars.NET: .NET DataFrame Engine
.NET DataFrame Engine. Contribute to ErrorLSC/Polars.NET development by creating an account on GitHub.
.NET has no good UI framework (rant, prove me wrong)
So, the only good UI that can be made with .NET is web UI. ASP.NET was/is great, and Blazor rocks too. Sorry, Blazor Server does. WASM is slow as hell. There's basically no.NET-based UI framework that is fast and usable. I think the best one is WinForms, but that's windows only and not properly supported anymore. We keep it because we like vintage stuff whoever is into that.
WPF's fate is unclear, and considering cross-platform is a thing, it's not entirely suitable. I know there's Avalonia, but that also feels like I'm switching from broadband to dial-up. It can theoretically do 60 fps, but in reality feels slow.
WinUI is... I understand why even parts of Windows 11 UI are now WebView2 wrappers. It's slow, hard or impossible to distribute, with a dead slow development cycle. Downvote me, I don't care. It's clearly my "skill issue".
https://redd.it/1rxzn6j
@r_dotnet
So, the only good UI that can be made with .NET is web UI. ASP.NET was/is great, and Blazor rocks too. Sorry, Blazor Server does. WASM is slow as hell. There's basically no.NET-based UI framework that is fast and usable. I think the best one is WinForms, but that's windows only and not properly supported anymore. We keep it because we like vintage stuff whoever is into that.
WPF's fate is unclear, and considering cross-platform is a thing, it's not entirely suitable. I know there's Avalonia, but that also feels like I'm switching from broadband to dial-up. It can theoretically do 60 fps, but in reality feels slow.
WinUI is... I understand why even parts of Windows 11 UI are now WebView2 wrappers. It's slow, hard or impossible to distribute, with a dead slow development cycle. Downvote me, I don't care. It's clearly my "skill issue".
https://redd.it/1rxzn6j
@r_dotnet
Microsoft
ASP.NET Core, an open-source web development framework | .NET
Build web apps and services that run on Windows, Linux, and macOS using C#, HTML, CSS, and JavaScript. Get started for free on Windows, Linux, or macOS.
Integrating native Android SDK to MAUI
I’m trying to integrate a native Android SDK into a .NET MAUI app (targeting net9.0-android) using native library interop/android binding, and I feel like I’m hitting a wall with dependency management.
I have a native Android SDK (distributed via private Maven repo, with multiple modules and transitive dependencies). I created a wrapper library on the Android side (Kotlin/Java) to simplify the API surface. Then I’m consuming that through a MAUI binding / interop approach (AndroidLibrary, AndroidGradleProject, etc.).
The goal is to call a few high-level methods from MAUI (init, start flow, handle result).
Wrapper builds fine in Android (Gradle) and binding generates usable C# types, so MAUI can actually call into the native layer. The issue is that the moment I try to actually run it, I get missing classes (NoClassDefFoundError), missing resources (AAPT errors like themes, attrs, etc.), version conflicts between dependencies
In a pure Android app, everything works out of the box since Gradle resolves all transitive dependencies, but in MAUI I have to manually add AARs/JARs, transitive dependencies are not automatically resolved, AARs don’t carry dependency metadata
And I’m afraid that I basically have to reconstruct the dependency graph manually - which, according to gradlew :dependencies is more than 1000 packages.
I’ve already tried adding dependencies via AndroidLibrary tag, also using AndroidMavenLibrary, then manually downloading AARs and adding them (from private Maven repo).
Is this just the expected reality when doing native Android SDK integration in MAUI? Is there a recommended production approach I’m missing? Should I bundle everything into a single “fat” AAR on the Android side? Or keep manually adding dependencies in MAUI?
Has anyone successfully integrated a complex Android SDK (with UI + transitive deps) into MAUI without going insane?
https://redd.it/1ryypuc
@r_dotnet
I’m trying to integrate a native Android SDK into a .NET MAUI app (targeting net9.0-android) using native library interop/android binding, and I feel like I’m hitting a wall with dependency management.
I have a native Android SDK (distributed via private Maven repo, with multiple modules and transitive dependencies). I created a wrapper library on the Android side (Kotlin/Java) to simplify the API surface. Then I’m consuming that through a MAUI binding / interop approach (AndroidLibrary, AndroidGradleProject, etc.).
The goal is to call a few high-level methods from MAUI (init, start flow, handle result).
Wrapper builds fine in Android (Gradle) and binding generates usable C# types, so MAUI can actually call into the native layer. The issue is that the moment I try to actually run it, I get missing classes (NoClassDefFoundError), missing resources (AAPT errors like themes, attrs, etc.), version conflicts between dependencies
In a pure Android app, everything works out of the box since Gradle resolves all transitive dependencies, but in MAUI I have to manually add AARs/JARs, transitive dependencies are not automatically resolved, AARs don’t carry dependency metadata
And I’m afraid that I basically have to reconstruct the dependency graph manually - which, according to gradlew :dependencies is more than 1000 packages.
I’ve already tried adding dependencies via AndroidLibrary tag, also using AndroidMavenLibrary, then manually downloading AARs and adding them (from private Maven repo).
Is this just the expected reality when doing native Android SDK integration in MAUI? Is there a recommended production approach I’m missing? Should I bundle everything into a single “fat” AAR on the Android side? Or keep manually adding dependencies in MAUI?
Has anyone successfully integrated a complex Android SDK (with UI + transitive deps) into MAUI without going insane?
https://redd.it/1ryypuc
@r_dotnet
Reddit
From the dotnet community on Reddit
Explore this post and more from the dotnet community
I spent 2 years getting our tests in shape and found out today nobody actually looks at them anymore. Feeling pretty defeated ngl.
So this is kind of embarrassing to admit but I’ll have to admit it anyways so here it goes.I pushed really hard to get proper testing in place at my company, convinced my boss, stayed late setting everything up and genuinely felt like we were finally doing things right for once.
I had this casual conversation with one of the devs today and he basically laughed and said
"oh I stopped checking those results months ago, it's always the same broken tests."
I just sat with that for a minute and thought that he was not completely wrong and the more painful part is that most failures are literally the same broken tests every time but buried in there are also real problems that we're shipping to the real users.
Because at some point we all quietly agreed that a failing build is just... normal (period)
And it doesn't stop there we also have pages that break on certain phones that nobody catches until a user complains the app has been getting noticeably slower for weeks and every morning someone says
"yeah we should look at that" and then the day happens and nobody does.
I don't even know what I'm asking at this moment. I just want to have that clarity about the set up that was it wrong from the beginning? or Is this just what happens at every company and nobody talks about it? Has anyone actually fixed this or do you just eventually stop caring?
Feeling a bit stupid for taking it this personally if I'm honest. Would really love to know about other people's experiences…..
https://redd.it/1rz2nw8
@r_dotnet
So this is kind of embarrassing to admit but I’ll have to admit it anyways so here it goes.I pushed really hard to get proper testing in place at my company, convinced my boss, stayed late setting everything up and genuinely felt like we were finally doing things right for once.
I had this casual conversation with one of the devs today and he basically laughed and said
"oh I stopped checking those results months ago, it's always the same broken tests."
I just sat with that for a minute and thought that he was not completely wrong and the more painful part is that most failures are literally the same broken tests every time but buried in there are also real problems that we're shipping to the real users.
Because at some point we all quietly agreed that a failing build is just... normal (period)
And it doesn't stop there we also have pages that break on certain phones that nobody catches until a user complains the app has been getting noticeably slower for weeks and every morning someone says
"yeah we should look at that" and then the day happens and nobody does.
I don't even know what I'm asking at this moment. I just want to have that clarity about the set up that was it wrong from the beginning? or Is this just what happens at every company and nobody talks about it? Has anyone actually fixed this or do you just eventually stop caring?
Feeling a bit stupid for taking it this personally if I'm honest. Would really love to know about other people's experiences…..
https://redd.it/1rz2nw8
@r_dotnet
Reddit
From the dotnet community on Reddit
Explore this post and more from the dotnet community
Release BLite 3.7 - Fast and Light Embedded Document Database for .NET
Negli ultimi mesi ho lavorato a un database documentale embedded alternativo a LiteDb, che fosse pronto per AOT e che si basasse sui source generators per togliere qualsiasi frizione tra dati e materializzazione. In particolare pensando agli sviluppatori .net che hanno bisogno che un dato si materializzi in una classe con il minor numero di passaggi possibili.
Con la fortuna di avere progetti su cui provarlo sono riuscito a mettere a punto molte funzionalità tra cui ottime performance OLTP e OLAP, compliance ACID e qualche utile feature come Vector Search, Geospatial Indexes, BTree. Allo stesso tempo ho limitato al minimo le allocazioni e la reflection (se non quelle compilate) per tenere un impatto minimo su CPU e RAM.
Vado particolarmente fiero della persistenza basata su C-BSON un'alternativa Compressa di BSON che permette di mantenere le chiavi dei campi su un dizionario risparmiando un sacco di spazio su disco (ho scritto un'articolo critico sul mio Blog C-BSON: The Compressed Document Format I Built Into BLite · MrDevRobot mi farebbe davvero piacere sentire le vostre opinioni su questa scelta).
Ci sono tanti altri dettagli che potete trovare sul sito web che ho dedicato a questa tecnologia BLite – Embedded NoSQL Database for .NET | BSON Document Store dove ho pubblicato i benchmark con altre tecnologie, spero che possiate metterle in discussione per darmi la possibilità di migliorare questo piccolo database dal cuore grande.
Ovviamente tutti i sorgenti sono su GitHub EntglDb/BLite: Embedded Document Database e la licenza MIT può dare a ciascuno la possibilità di usarlo come meglio crede e, mi auguro, possa stimolare molti di voi a partecipare a questo progetto.
Con questa versione 3.7.0 mi sento pronto a invitarvi a provarlo nei vostri progetti, su github trovate tutte le informazioni per aprire Issue e per fare domande!
Nuget: NuGet Gallery | BLite 3.7.0
https://redd.it/1rz31n8
@r_dotnet
Negli ultimi mesi ho lavorato a un database documentale embedded alternativo a LiteDb, che fosse pronto per AOT e che si basasse sui source generators per togliere qualsiasi frizione tra dati e materializzazione. In particolare pensando agli sviluppatori .net che hanno bisogno che un dato si materializzi in una classe con il minor numero di passaggi possibili.
Con la fortuna di avere progetti su cui provarlo sono riuscito a mettere a punto molte funzionalità tra cui ottime performance OLTP e OLAP, compliance ACID e qualche utile feature come Vector Search, Geospatial Indexes, BTree. Allo stesso tempo ho limitato al minimo le allocazioni e la reflection (se non quelle compilate) per tenere un impatto minimo su CPU e RAM.
Vado particolarmente fiero della persistenza basata su C-BSON un'alternativa Compressa di BSON che permette di mantenere le chiavi dei campi su un dizionario risparmiando un sacco di spazio su disco (ho scritto un'articolo critico sul mio Blog C-BSON: The Compressed Document Format I Built Into BLite · MrDevRobot mi farebbe davvero piacere sentire le vostre opinioni su questa scelta).
Ci sono tanti altri dettagli che potete trovare sul sito web che ho dedicato a questa tecnologia BLite – Embedded NoSQL Database for .NET | BSON Document Store dove ho pubblicato i benchmark con altre tecnologie, spero che possiate metterle in discussione per darmi la possibilità di migliorare questo piccolo database dal cuore grande.
Ovviamente tutti i sorgenti sono su GitHub EntglDb/BLite: Embedded Document Database e la licenza MIT può dare a ciascuno la possibilità di usarlo come meglio crede e, mi auguro, possa stimolare molti di voi a partecipare a questo progetto.
Con questa versione 3.7.0 mi sento pronto a invitarvi a provarlo nei vostri progetti, su github trovate tutte le informazioni per aprire Issue e per fare domande!
Nuget: NuGet Gallery | BLite 3.7.0
https://redd.it/1rz31n8
@r_dotnet
MrDevRobot
C-BSON: The Compressed Document Format I Built Into BLite · MrDevRobot
Why I replaced BSON's null-terminated field names with 2-byte integer IDs, how the dictionary system works, and an honest critique of the trade-offs I made.
Aspnetzero ai configuration
Does anyone have access to aspnetzero ai tool configuration especially for github copilot. Im working on an v14 project and dont have access to v15. If anyone could just share the copilot-instructions.md + prompts would be really appreciated.
https://redd.it/1rz2ra0
@r_dotnet
Does anyone have access to aspnetzero ai tool configuration especially for github copilot. Im working on an v14 project and dont have access to v15. If anyone could just share the copilot-instructions.md + prompts would be really appreciated.
https://redd.it/1rz2ra0
@r_dotnet
Reddit
From the dotnet community on Reddit
Explore this post and more from the dotnet community
My Source Generated Mediator / CQRS library (v1.2.2)
Hey all,
I’ve been building a Mediator/CQRS library for .NET called Axent and wanted to share it here for feedback or even get some adoption :)
The focus is on keeping things lightweight and explicit while still supporting:
- source-generated dispatch
- typed pipelines (behaviours)
- command/query separation
- ASP.NET Core integration
- extensions for things like validation, authorization, caching, and transactions
The goal was basically, a modern .NET CQRS library with less runtime overhead and minimal boilerplate.
Repository: https://github.com/magmablinker/Axent/tree/main
I’d love to get some feedback on a few things:
1. Is the API shape clear?
2. Do the pipelines feel useful?
3. Is there anything that would stop you from trying it?
4. What would make a library like this compelling enough to adopt?
Happy to hear both positive and negative feedback.
I would also love to know if someone actually starts using it and how it feels to use it :)
https://redd.it/1rz857g
@r_dotnet
Hey all,
I’ve been building a Mediator/CQRS library for .NET called Axent and wanted to share it here for feedback or even get some adoption :)
The focus is on keeping things lightweight and explicit while still supporting:
- source-generated dispatch
- typed pipelines (behaviours)
- command/query separation
- ASP.NET Core integration
- extensions for things like validation, authorization, caching, and transactions
The goal was basically, a modern .NET CQRS library with less runtime overhead and minimal boilerplate.
Repository: https://github.com/magmablinker/Axent/tree/main
I’d love to get some feedback on a few things:
1. Is the API shape clear?
2. Do the pipelines feel useful?
3. Is there anything that would stop you from trying it?
4. What would make a library like this compelling enough to adopt?
Happy to hear both positive and negative feedback.
I would also love to know if someone actually starts using it and how it feels to use it :)
https://redd.it/1rz857g
@r_dotnet
GitHub
GitHub - magmablinker/Axent: Axent is a source-generated CQRS library for modern .NET with typed pipelines and ASP.NET Core integration.
Axent is a source-generated CQRS library for modern .NET with typed pipelines and ASP.NET Core integration. - magmablinker/Axent
Advice: Best books for SQL Server? Not just SQL
Hi everyone, I'm looking for a book with probably the best information and explanations about SQL Server. Hopefully you can help me with this. I'm looking for something else than just SQL standard. Thank you.
https://redd.it/1rz9lmi
@r_dotnet
Hi everyone, I'm looking for a book with probably the best information and explanations about SQL Server. Hopefully you can help me with this. I'm looking for something else than just SQL standard. Thank you.
https://redd.it/1rz9lmi
@r_dotnet
Reddit
From the dotnet community on Reddit
Explore this post and more from the dotnet community
In desperate need of a .Net position
Hi everyone , I recently moved to the United States and the markets has been really difficult in terms of finding intermediate to senior roles .
I have over 5 year’s experience in .Net and previously worked as backend engineer in fintech . My responsibilities were building and maintaining the CBA( core banking application) that basically the kernel of the business.
If any one has any advice or roles please dm .
Here is one of my personal project.
https://detailsync.co
https://redd.it/1rzcjbi
@r_dotnet
Hi everyone , I recently moved to the United States and the markets has been really difficult in terms of finding intermediate to senior roles .
I have over 5 year’s experience in .Net and previously worked as backend engineer in fintech . My responsibilities were building and maintaining the CBA( core banking application) that basically the kernel of the business.
If any one has any advice or roles please dm .
Here is one of my personal project.
https://detailsync.co
https://redd.it/1rzcjbi
@r_dotnet
detailsync.co
DetailSync - Premium Car Detailing SaaS
Professional car detailing management platform for modern businesses
BackgroundService with Clean Architecture
Hi!
Someone could give me an advice? I’m using Clean architecture, and I want to create an background service to do something in background each 20 minutes.
public class SomeLogicService : BackgroundService
Ok. The class “SomeLogicService” should be implemented on infrastructure layer or directly in presentation layer?
In presentation layer I know that I have to register the service with .AddHosted or something like that, but i’m not sure if in “clean” terms the class itself should be on presentation layer or infra layer?
https://redd.it/1rzf9sv
@r_dotnet
Hi!
Someone could give me an advice? I’m using Clean architecture, and I want to create an background service to do something in background each 20 minutes.
public class SomeLogicService : BackgroundService
Ok. The class “SomeLogicService” should be implemented on infrastructure layer or directly in presentation layer?
In presentation layer I know that I have to register the service with .AddHosted or something like that, but i’m not sure if in “clean” terms the class itself should be on presentation layer or infra layer?
https://redd.it/1rzf9sv
@r_dotnet
Reddit
From the dotnet community on Reddit
Explore this post and more from the dotnet community
Have created a FluentValidation alternative which source generates the validation logic
I've created a new project named ValiCraft, which started out as a project to really learn the depths of source generation and also from the annoyance that FluentValidation allocates too much memory for what it does (I know it's small in comparison to other aspects of an application). I've gotten it to a state, after much trial and error, where I feel comfortable with general release.
Here's what it will look like:
GenerateValidator
public partial class UsersValidator : Validator<User>
{
protected override void DefineRules(IValidationRuleBuilder<User> builder)
{
builder.Ensure(x => x.Username)
.IsNotNullOrWhiteSpace()
.HasMinLength(3)
.HasMaxLength(50);
}
}
Which generates validation code like:
public partial class UserValidator : IValidator<User>
{
public ValidationErrors? Validate(User request)
{
// Ommitted
}
private List<ValidationError>? RunValidationLogic(User request, string? inheritedTargetPath)
{
List<ValidationError>? errors = null;
if (!Rules.NotNullOrWhiteSpace(request.Username))
{
errors ??= new(3);
errors.Add(new ValidationError
{
Code = nameof(Rules.NotNullOrWhiteSpace),
Message = $"Username must not be null or contain only whitespace.",
Severity = ErrorSeverity.Error,
TargetName = "Username",
TargetPath = $"{inheritedTargetPath}Username",
AttemptedValue = request.Username,
});
}
if (!Rules.MinLength(request.Username, 3))
{
errors ??= new(2);
errors.Add(new ValidationError
{
Code = nameof(Rules.MinLength),
Message = $"Username must have a minimum length of 3",
Severity = ErrorSeverity.Error,
TargetName = "Username",
TargetPath = $"{inheritedTargetPath}Username",
AttemptedValue = request.Username,
});
}
if (!Rules.MaxLength(request.Username, 50))
{
errors ??= new(1);
errors.Add(new ValidationError
{
Code = nameof(Rules.MaxLength),
Message = $"Username must have a maximum length of 50",
Severity = ErrorSeverity.Error,
TargetName = "Username",
TargetPath = $"{inheritedTargetPath}Username",
AttemptedValue = request.Username,
});
}
return errors;
}
}
Usage would look like:
var validator = new UserValidator();
var user = new User { Username = "john" };
ValidationErrors? result = validator.Validate(user);
if (result is null)
{
Console.WriteLine("User is valid!");
}
else
{
Console.WriteLine($"Validation failed: {result.iss.onessage}");
}
Would love to get feedback on this library.
GitHub: https://github.com/hquinn/ValiCraft
NuGet: https://www.nuget.org/packages/ValiCraft/
https://redd.it/1rzfjzp
@r_dotnet
I've created a new project named ValiCraft, which started out as a project to really learn the depths of source generation and also from the annoyance that FluentValidation allocates too much memory for what it does (I know it's small in comparison to other aspects of an application). I've gotten it to a state, after much trial and error, where I feel comfortable with general release.
Here's what it will look like:
GenerateValidator
public partial class UsersValidator : Validator<User>
{
protected override void DefineRules(IValidationRuleBuilder<User> builder)
{
builder.Ensure(x => x.Username)
.IsNotNullOrWhiteSpace()
.HasMinLength(3)
.HasMaxLength(50);
}
}
Which generates validation code like:
public partial class UserValidator : IValidator<User>
{
public ValidationErrors? Validate(User request)
{
// Ommitted
}
private List<ValidationError>? RunValidationLogic(User request, string? inheritedTargetPath)
{
List<ValidationError>? errors = null;
if (!Rules.NotNullOrWhiteSpace(request.Username))
{
errors ??= new(3);
errors.Add(new ValidationError
{
Code = nameof(Rules.NotNullOrWhiteSpace),
Message = $"Username must not be null or contain only whitespace.",
Severity = ErrorSeverity.Error,
TargetName = "Username",
TargetPath = $"{inheritedTargetPath}Username",
AttemptedValue = request.Username,
});
}
if (!Rules.MinLength(request.Username, 3))
{
errors ??= new(2);
errors.Add(new ValidationError
{
Code = nameof(Rules.MinLength),
Message = $"Username must have a minimum length of 3",
Severity = ErrorSeverity.Error,
TargetName = "Username",
TargetPath = $"{inheritedTargetPath}Username",
AttemptedValue = request.Username,
});
}
if (!Rules.MaxLength(request.Username, 50))
{
errors ??= new(1);
errors.Add(new ValidationError
{
Code = nameof(Rules.MaxLength),
Message = $"Username must have a maximum length of 50",
Severity = ErrorSeverity.Error,
TargetName = "Username",
TargetPath = $"{inheritedTargetPath}Username",
AttemptedValue = request.Username,
});
}
return errors;
}
}
Usage would look like:
var validator = new UserValidator();
var user = new User { Username = "john" };
ValidationErrors? result = validator.Validate(user);
if (result is null)
{
Console.WriteLine("User is valid!");
}
else
{
Console.WriteLine($"Validation failed: {result.iss.onessage}");
}
Would love to get feedback on this library.
GitHub: https://github.com/hquinn/ValiCraft
NuGet: https://www.nuget.org/packages/ValiCraft/
https://redd.it/1rzfjzp
@r_dotnet
GitHub
GitHub - hquinn/ValiCraft: A powerful, compile-time validation framework for .NET that crafts fast and boilerplate-free validation…
A powerful, compile-time validation framework for .NET that crafts fast and boilerplate-free validation logic. - hquinn/ValiCraft
What message broker would you choose today and why
# I am building a backend system and trying to pick a message broker but the choices are overwhelming NATS Kafka RabbitMQ etc. My main needs are service to service communication async processing and some level of reliability but I am not sure if I should go with something simple like NATS or pick something heavier like Kafka from the start
# Looking for real experience and suggestions
https://redd.it/1rzhro4
@r_dotnet
# I am building a backend system and trying to pick a message broker but the choices are overwhelming NATS Kafka RabbitMQ etc. My main needs are service to service communication async processing and some level of reliability but I am not sure if I should go with something simple like NATS or pick something heavier like Kafka from the start
# Looking for real experience and suggestions
https://redd.it/1rzhro4
@r_dotnet
Reddit
From the dotnet community on Reddit
Explore this post and more from the dotnet community
Win ui for the win. Seems ms rebuilt the search in windows 11 in ui.
https://www.windowslatest.com/2026/03/21/microsoft-confirms-windows-11-start-menu-performance-boost-shift-to-winui-from-web-based-components/
Great to see this happen to be honest, and glad win hi finally getting the recognition it deserves.
https://redd.it/1rzk4my
@r_dotnet
https://www.windowslatest.com/2026/03/21/microsoft-confirms-windows-11-start-menu-performance-boost-shift-to-winui-from-web-based-components/
Great to see this happen to be honest, and glad win hi finally getting the recognition it deserves.
https://redd.it/1rzk4my
@r_dotnet
Windows Latest
Microsoft confirms Windows 11 Start menu performance boost, shift to WinUI from web-based components
Microsoft confirms Windows 11 Start menu will shift from React to WinUI, reducing latency and improving performance as part of 2026 updates.
NuGet vs Git Submodules
Which should be used for internal dependencies? My team wants a discussion on it...
I myself lean heavily to NuGet, but maybe there are things submodules are better for? To me it just seems like advanced spaghetti...
https://redd.it/1rzogkn
@r_dotnet
Which should be used for internal dependencies? My team wants a discussion on it...
I myself lean heavily to NuGet, but maybe there are things submodules are better for? To me it just seems like advanced spaghetti...
https://redd.it/1rzogkn
@r_dotnet
Reddit
From the dotnet community on Reddit
Explore this post and more from the dotnet community
Messentra - free, open-source cross-platform desktop GUI for Azure Service Bus v0.1.3
Hey,
I've been working with Azure Service Bus a lot on macOS and got tired of jumping back and forth to the Azure Portal just to peek at messages or check dead-letter queues. Most of the existing tools are Windows-only, so I built Messentra - a free, open-source azure service bus explorer that works on macOS, Windows, and Linux.
What it does:
* Browse queues, topics, and subscriptions in a collapsible tree with live message counts
* Fetch messages in Peek (non-destructive) or Receive mode (PeekLock / ReceiveAndDelete)
* Inspect message body (syntax-highlighted) + all broker & custom application properties
* Resend, Complete, Abandon, or Dead-Letter messages directly from the UI
* Send messages with full control over broker properties and custom app properties
* Smart search - filter by name, namespace:prod, or has:dlq to find resources with dead-letter messages instantly
* Supports both Connection String and Entra ID auth
* Runs on macOS, Windows, and Linux. Built with Blazor + Electron.NET fully open-source under GPL-3.0.
\> Early release - the app is still actively being developed and there's a lot more planned. Expect rough edges.
Site: https://www.messentra.com
GitHub: https://github.com/kamil-czarnecki/Messentra
If you try it out, I'd love to hear your feedback - feature ideas, pain points, anything. Feel free to drop a comment here or open a GitHub issue!
https://redd.it/1rzs59z
@r_dotnet
Hey,
I've been working with Azure Service Bus a lot on macOS and got tired of jumping back and forth to the Azure Portal just to peek at messages or check dead-letter queues. Most of the existing tools are Windows-only, so I built Messentra - a free, open-source azure service bus explorer that works on macOS, Windows, and Linux.
What it does:
* Browse queues, topics, and subscriptions in a collapsible tree with live message counts
* Fetch messages in Peek (non-destructive) or Receive mode (PeekLock / ReceiveAndDelete)
* Inspect message body (syntax-highlighted) + all broker & custom application properties
* Resend, Complete, Abandon, or Dead-Letter messages directly from the UI
* Send messages with full control over broker properties and custom app properties
* Smart search - filter by name, namespace:prod, or has:dlq to find resources with dead-letter messages instantly
* Supports both Connection String and Entra ID auth
* Runs on macOS, Windows, and Linux. Built with Blazor + Electron.NET fully open-source under GPL-3.0.
\> Early release - the app is still actively being developed and there's a lot more planned. Expect rough edges.
Site: https://www.messentra.com
GitHub: https://github.com/kamil-czarnecki/Messentra
If you try it out, I'd love to hear your feedback - feature ideas, pain points, anything. Feel free to drop a comment here or open a GitHub issue!
https://redd.it/1rzs59z
@r_dotnet
Messentra
Messentra - Azure Service Bus Desktop Explorer
A cross-platform desktop GUI for Azure Service Bus - browse resources, inspect and send messages, manage dead-letter queues.
RomCrate - Community and Gaming Collection Tracking
Hey!
I'd like to share with you the project I'm currently working - Using .NET MAUI and Blazor.
**RomCrate** is an ecosystem focused on managing game collections. Organize your backlog, track your journey, and share reviews with friends across all your devices.
**Check it out here:** [https://www.romcrate.com/](https://www.romcrate.com/)
**The Stack:**
* **Web:** Blazor (Server/WebAssembly)
* **Database:** PostgreSQL
* **Mobile:** .NET MAUI *(Pure, not Hybrid or anything else)*
* **Hosting:** IIS on a private VPS
* **Infrastructure:** Cloudflare for DNS & Hostgator for SMTP
* **Auth:** Microsoft Identity / [ASP.NET](https://asp.net/) Core Identity
* **Moderator:** OpenAI Free Moderator *(Detects hate speech and offenses)*
* **Gaming API:** IGDB
* **.NET Version:** .NET 10
* **Languages:** English and Portuguese (I'll add more in the future)
* **Platforms:** Web, MacOS, iPadOS, iOS, Android and Windows
Here's some content about my project:
**- Main Page/Home:**
This page, you have some of the **latest games from your collection** *(Games with PLAYING status and latest added into collection)*, some **games from our catalogue** *(Trending Now, New Releases and Coming Soon)* and the **latest 5 global reviews**.
https://preview.redd.it/uogwn7bixfqg1.png?width=2738&format=png&auto=webp&s=ccfd9255bd0156eb1507b6de38b0f64d5367d503
The same content from Web is also available on MAUI.
https://preview.redd.it/mu7kg0eoyfqg1.png?width=1206&format=png&auto=webp&s=6ae5cae677a123c9d59ef854975f22f9ecf24850
**- Game Details:**
This is the hub for every title on the site - Currently tracking over **350k+ games**.
From here, you can jump straight into the action: add games to your library or throw them into a custom list. I’ve also pulled in **Metacritic scores**, community ratings, and a feed of who else is playing. Plus, I made sure to include screenshots, trailers, and user reviews so you have the full picture before adding anything to your vault.
https://preview.redd.it/9c04ohv6zfqg1.png?width=3024&format=png&auto=webp&s=850421020cdfd28fc9297a9e684e111c392c0f78
https://preview.redd.it/19opfhf9zfqg1.png?width=1206&format=png&auto=webp&s=b7a6157313c8c7f04046167e946e8ee2347cf0c8
\- **User Profiles:**
Every user gets their own space to showcase their collection. I’ve added a privacy toggle, so you can keep your profile **public or private** *(where only you and your followers can see your activity)*.
The profile tracks everything: **badges, total games, and completion stats** *(both for the current year and all-time)*. One of my favorite features is the total playtime counter, which aggregates data from **manual entries** and automated **Steam/PSN/Xbox/RetroAchievements integrations**.
There’s a lot more under the hood - like detailed playthrough histories, playtime rankings, and custom lists *(but I’m only showing the* ***Timeline*** *here to keep this post from becoming a book!)*
You can also pin your **Top 5 All-Time favorites**, manage your linked accounts, and see your recent reviews.
**Checkout my profile:** [https://www.romcrate.com/Profile/RaphaelFrei](https://www.romcrate.com/Profile/RaphaelFrei)
https://preview.redd.it/o3xjstamzfqg1.png?width=2933&format=png&auto=webp&s=d9fb65fe7c2bbc47c6d8c435ba9691eb2669a0c5
https://preview.redd.it/5g31f3j20gqg1.png?width=1206&format=png&auto=webp&s=37ff9cc7c040b14c10a62b6b651f25a03d7af516
**- Timeline (Year Overview):**
This page breaks down every game you've cleared, organized by year. Personally, I think this is one of the coolest parts of the site.
https://preview.redd.it/lx9w01i80gqg1.png?width=3024&format=png&auto=webp&s=c59c50d6ca38071874480537fa89ad8588833785
https://preview.redd.it/kgj141ea0gqg1.png?width=1206&format=png&auto=webp&s=788d64cab0065bb6453068e4c2adbb1d88fb7016
**There's a lot more to explore on the site - feel free to check it out! It’s free to use and will stay that way.**
[https://www.romcrate.com/](https://www.romcrate.com/)
https://redd.it/1rzz89d
@r_dotnet
Hey!
I'd like to share with you the project I'm currently working - Using .NET MAUI and Blazor.
**RomCrate** is an ecosystem focused on managing game collections. Organize your backlog, track your journey, and share reviews with friends across all your devices.
**Check it out here:** [https://www.romcrate.com/](https://www.romcrate.com/)
**The Stack:**
* **Web:** Blazor (Server/WebAssembly)
* **Database:** PostgreSQL
* **Mobile:** .NET MAUI *(Pure, not Hybrid or anything else)*
* **Hosting:** IIS on a private VPS
* **Infrastructure:** Cloudflare for DNS & Hostgator for SMTP
* **Auth:** Microsoft Identity / [ASP.NET](https://asp.net/) Core Identity
* **Moderator:** OpenAI Free Moderator *(Detects hate speech and offenses)*
* **Gaming API:** IGDB
* **.NET Version:** .NET 10
* **Languages:** English and Portuguese (I'll add more in the future)
* **Platforms:** Web, MacOS, iPadOS, iOS, Android and Windows
Here's some content about my project:
**- Main Page/Home:**
This page, you have some of the **latest games from your collection** *(Games with PLAYING status and latest added into collection)*, some **games from our catalogue** *(Trending Now, New Releases and Coming Soon)* and the **latest 5 global reviews**.
https://preview.redd.it/uogwn7bixfqg1.png?width=2738&format=png&auto=webp&s=ccfd9255bd0156eb1507b6de38b0f64d5367d503
The same content from Web is also available on MAUI.
https://preview.redd.it/mu7kg0eoyfqg1.png?width=1206&format=png&auto=webp&s=6ae5cae677a123c9d59ef854975f22f9ecf24850
**- Game Details:**
This is the hub for every title on the site - Currently tracking over **350k+ games**.
From here, you can jump straight into the action: add games to your library or throw them into a custom list. I’ve also pulled in **Metacritic scores**, community ratings, and a feed of who else is playing. Plus, I made sure to include screenshots, trailers, and user reviews so you have the full picture before adding anything to your vault.
https://preview.redd.it/9c04ohv6zfqg1.png?width=3024&format=png&auto=webp&s=850421020cdfd28fc9297a9e684e111c392c0f78
https://preview.redd.it/19opfhf9zfqg1.png?width=1206&format=png&auto=webp&s=b7a6157313c8c7f04046167e946e8ee2347cf0c8
\- **User Profiles:**
Every user gets their own space to showcase their collection. I’ve added a privacy toggle, so you can keep your profile **public or private** *(where only you and your followers can see your activity)*.
The profile tracks everything: **badges, total games, and completion stats** *(both for the current year and all-time)*. One of my favorite features is the total playtime counter, which aggregates data from **manual entries** and automated **Steam/PSN/Xbox/RetroAchievements integrations**.
There’s a lot more under the hood - like detailed playthrough histories, playtime rankings, and custom lists *(but I’m only showing the* ***Timeline*** *here to keep this post from becoming a book!)*
You can also pin your **Top 5 All-Time favorites**, manage your linked accounts, and see your recent reviews.
**Checkout my profile:** [https://www.romcrate.com/Profile/RaphaelFrei](https://www.romcrate.com/Profile/RaphaelFrei)
https://preview.redd.it/o3xjstamzfqg1.png?width=2933&format=png&auto=webp&s=d9fb65fe7c2bbc47c6d8c435ba9691eb2669a0c5
https://preview.redd.it/5g31f3j20gqg1.png?width=1206&format=png&auto=webp&s=37ff9cc7c040b14c10a62b6b651f25a03d7af516
**- Timeline (Year Overview):**
This page breaks down every game you've cleared, organized by year. Personally, I think this is one of the coolest parts of the site.
https://preview.redd.it/lx9w01i80gqg1.png?width=3024&format=png&auto=webp&s=c59c50d6ca38071874480537fa89ad8588833785
https://preview.redd.it/kgj141ea0gqg1.png?width=1206&format=png&auto=webp&s=788d64cab0065bb6453068e4c2adbb1d88fb7016
**There's a lot more to explore on the site - feel free to check it out! It’s free to use and will stay that way.**
[https://www.romcrate.com/](https://www.romcrate.com/)
https://redd.it/1rzz89d
@r_dotnet
Romcrate
RomCrate - Elevate Your Game Collection 🎮
Your global gaming library in one place. Join the Beta.
GoToRef v1.0
Hey guys,
I built a reference explorer from nugget package site, I hope this can help.
Soon, it will allows reference from other languages and sources
https://gotoref.dev
https://redd.it/1s05uap
@r_dotnet
Hey guys,
I built a reference explorer from nugget package site, I hope this can help.
Soon, it will allows reference from other languages and sources
https://gotoref.dev
https://redd.it/1s05uap
@r_dotnet
gotoref.dev
GoToRef.dev — Type Reference for Developers
Explore classes, interfaces, methods and properties of NuGet packages instantly.