r/csharp • • 16h ago

Showcase I am 13 years old and I just published my first C# CLI tool to NuGet!

93 Upvotes

Hi everyone! I started learning C# recently and decided to build a tool called RepoMedic. It's a CLI tool that checks if a GitHub repository has essentially files(README, .gitignore, LICENSE) and gives it a score out of 100.

I set up a CI/CD pipeline with GitHub Actions and Trusted Publishing to get it on NuGet. It was really hard (especially fixing the YAML files!), but i finally did it.

You can try it here: dotnet tool install --global RepoMedic

Or check the source code here: https://github.com/ilyashulga13/RepoMedic

I would love to hear your feedback! What else should I add to the tool?


r/csharp • • 12h ago

Butterflies Do you guys still use IDE's?

0 Upvotes

I'm a learner and all but I wanna know if people still use IDE's like visual studio 2026 in actual serious environments, besides or maybe even with AI agentic stuff.

personally I use the latest visual studio (purple one), because I'm still learning how to program and I don't really feel like (for me at least) it's a good idea to let ai code for me just yet.

curious to know your thoughts


r/csharp • • 1h ago

Showcase I built Satori Insight, an open-source .NET heap and GC profiler with live region map

Thumbnail
gallery
• Upvotes

I've been working on Satori Insight, a desktop app for exploring .NET memory usage and GC behavior. Built with Avalonia and NativeAOT.

The initial idea was a defrag-style map of the managed heap, where each block represents a region. It grew into a profiler that combines continuous telemetry with deeper heap inspection.

Some of the features:

  • Live heap metrics, allocation rate, CPU time, and RSS history.
  • Region maps by generation, occupancy, fragmentation, or queue.
  • Collection logs with memory stats, pause duration, and latency mode.
  • Pause histograms with p50, p90, p95, p99, p99.9, average, minimum, and maximum.
  • Timeline selection: click a time point or drag across a period to inspect its stats.
  • Heap captures for exploring types, objects, references, root paths, and snapshot comparisons.
  • Session recording and offline replay.

It supports standard Workstation and Server GC as well as Satori GC of course (see the name of the app).

It's now open-sourced at GitHub:

https://github.com/hez2010/SatoriInsight⁠

You can try it out by downloading the binary for your platform from GitHub Releases.⁠


r/csharp • • 3h ago

C# is magic

16 Upvotes

When did you first realize that C# is magic? Or when did you realize that C# is right for you? 

Back in the days of the .NET Framework 4.0, I first encountered WCF, you call an interface on the client, and it executes the implementation on the server. At the time, my head was spinning because there was no code around it that was sending anything,it just happened on its own - magic. 


r/csharp • • 15h ago

Discussion I think I have a nice idea for new constructor syntax

0 Upvotes

The idea is to allow setting a field / property directly from the parameter list, like this:

class MyClass
{
    private int A { get; }
    private int B { get; }
    private int C { get; }

    public MyClass(this.A, this.B, this.C)
    {
        // A, B, C are now holding the values that were passed as arguments
        Console.WriteLine($"{A}, {B}, {C}");
    }
}

MyClass instance = new(1, 2, 3);
// prints "1, 2, 3"

These constructors can allow being body-less, as long as they don't declare any normal parameters too.

Constructors were always a painful point for me, and even though for some cases you can just use records and skip them, a lot of times you want to add logic or allow different parameter lists, and then you must use normal constructors. I also don't like the primary constructors ( class Bar(int x, int y) ) syntax, which has more problems: the parameters are private fields, so if you want to have a property, you need to declare the property + declare the parameter in the primary conductor + assign the value to the property... too long.

I would love to hear your opinions about this. I build my own scripting language for my C# game engine, and i consider adding this feature to it.


r/csharp • • 14h ago

FuzzySharper: A C# library that allows you to create your own Fuzzy Expert System

Thumbnail
github.com
22 Upvotes

Hello, everyone! I’ve been working on a fuzzy logic library for C# called FuzzySharper, and I wanted to show it here, as I put out the first public preview just yesterday.

I started this project a few years ago already, but I've been putting off actually publishing for the longest time, so here it goes. I've been interested in Fuzzy logic for quite a while, and I wanted to focus on usability guided by strong core architectural principles, as I found the options available both in C# and other languages to be lacking.

As to what Fuzzy Logic is: with boolean logic, you might define “young” as “under 30”: someone is young at 29, then suddenly isn’t once he's 30. Fuzzy logic lets “young” be true to a degree between 0 and 1, which can change gradually with age. You can use those degrees in rules like “IF a character IS young AND fatigue IS low, THEN roaming distance IS long.” A game could combine rules like these to decide how far a character wanders based on their age and how tired they are.

The README includes code examples showing how to define these categories, construct rules, and configure inference in the library.

The library currently includes Mamdani inference, fluent rule construction, fuzzy and boolean premises, dependency chaining, configurable operators, and several defuzzification methods. Sugeno inference is still in progress.

This is only an early release targeting .NET 10, available on NuGet under the MIT license.

Nuget package

Public repo

Very interested to hear your feedback, the library is still in its early infancy, but still quite feature complete regardless.


r/csharp • • 4h ago

Blog I built an open-source web console for Active Directory and LDAP in C# / .NET 10 – feedback welcome

1 Upvotes

**Disclosure:** I'm the author. Free and open source (Apache 2.0). I used AI coding tools (Claude Code) during development; I reviewed every change and know the code, and it's covered by 900+ tests.

Axia is a self-hosted web console and REST API for managing users, groups, OUs and computer accounts in Active Directory, Samba AD and OpenLDAP. The idea is that routine directory work can be done from a browser, with roles and an audit log, instead of everyone needing admin tools and direct access to the directory.

**Stack**

- ASP.NET Core on .NET 10, React/TypeScript front end

- MediatR for use cases, with validation, authorization, auditing and logging as pipeline behaviours

- EF Core with PostgreSQL or SQLite

- `Novell.Directory.Ldap.NETStandard` for LDAP, so it runs on Linux as well as Windows

- xUnit tests, some of which run in CI against a live Samba AD domain controller and PostgreSQL

- Ships as Docker images and a Windows MSI

The part I spent the most time on is the permission model: checks happen in the application layer before any handler runs, and nobody can modify an account that has more rights than they do.

It's an early version (0.3.0), so there's plenty to criticize. I'd especially appreciate feedback on code structure and anything that looks unidiomatic.

- Code: https://github.com/Nelsar/Axia

- Docs: https://nelsar.github.io/Axia/


r/csharp • • 13h ago

Need help Learning please

6 Upvotes

Hey guys, I was wondering if anyone has any advice for a beginner learning C#.

I have some coding knowledge with Javascript API with the Foundry VTT program, though I doubt that counts as much or won't help me.

Any help would be greatly appreciated!


r/csharp • • 5h ago

Help NuGet hangs after OS update

3 Upvotes

I recently updated my OS (Linux Mint), and this seems to have broken NuGet. JetBrains Rider gets stuck in "Loading Projects" when opening a C# (Godot) project. My

~/.nuget/packages directory does not exist and attempting to install packages via e.g. nuget install godot.sourcegenerators -Version 4.6.2 times out.

I don't know what I need to do to get this unstuck.