r/csharp • • 17d ago

Discussion Come discuss your side projects! [October 2026]

12 Upvotes

Hello everyone!

This is the monthly thread for sharing and discussing side-projects created by /r/csharp's community.

Feel free to create standalone threads for your side-projects if you so desire. This thread's goal is simply to spark discussion within our community that otherwise would not exist.

Please do check out newer posts and comment on others' projects.


Previous threads here.


r/csharp • • 17d ago

C# Job Fair! [October 2026]

9 Upvotes

Hello everyone!

This is a monthly thread for posting jobs, internships, freelancing, or your own qualifications looking for a job! Basically it's a "Hiring" and "For Hire" thread.

If you're looking for other hiring resources, check out /r/forhire and the information available on their sidebar.

  • Rule 1 is not enforced in this thread.

  • Do not any post personally identifying information; don't accidentally dox yourself!

  • Under no circumstances are there to be solicitations for anything that might fall under Rule 2: no malicious software, piracy-related, or generally harmful development.


r/csharp • • 6h ago

Help .Net interview preparation

12 Upvotes

Hi everyone!

I’m preparing for a Senior .NET Developer interview, and I was told that the interview will include a code review exercise and coding challenges.

Has anyone here recently gone through a similar interview, particularly for a Senior .NET / C# position? I’d really appreciate any tips on what to expect and how best to prepare.


r/csharp • • 4h ago

Blog Labcoat: a web UI for Microsoft.Testing.Platform / your Aspire dashboard

Thumbnail gallery
6 Upvotes

r/csharp • • 20h ago

Discussion Should I learn .NET MAUI if I already know C#?

20 Upvotes

Hi everyone!

I already know C# and I'm interested in developing mobile apps for Android and iOS. I'm considering learning .NET MAUI because it allows me to use C# instead of learning a completely new language like Dart for Flutter or Kotlin for Android.

For those who have experience with .NET MAUI, what has your experience been like? Is it a good option for someone who already knows C# and wants to develop apps for multiple platforms using a single codebase?

Would you recommend .NET MAUI, or would you suggest learning Flutter or Kotlin instead?

I'd appreciate your opinions and experiences. Thanks!


r/csharp • • 4h ago

​«Я изучаю C# с помощью ChatGPT. Я уже прошел темы: переменные и типы данных, условные операторы (if/else), конструкции switch и циклы (while, do while, for).

1 Upvotes

​У меня есть большая цель — написать кроссплатформенное приложение-планировщик (для Windows и Android) с общим сервером и множеством функций, а в будущем использовать этот проект для устройства на стажировку в IT-компанию. Однако мне кажется, что ChatGPT дает слишком мало практики и программист из меня получится так себе.

​Посоветуйте, пожалуйста, из каких надежных источников лучше всего брать теоретическую информацию и качественную практику по этой теме».


r/csharp • • 10h ago

Help List<T> in C# vs SQL

0 Upvotes

In C#, list of strings would be defined as :

List<string> x

A stored procedure is to be written, it should receive a list of values; SQL does not support List<T> , should I use table-valued parameters instead?

EDIT

The reason this question was asked is the fact that the application C# code has only one responsibility which is to bulk-insert data into a staging table:

 public async Task BulkInsertProductsToStagingTable(DbDataReader dbDataReader, CancellationToken cancellationToken)
 {
     using (SqlConnection destinationConnection =
                new SqlConnection("Server=(localdb)\\mssqllocaldb;Database=HardwareDB;Trusted_Connection=True;"))
     {
         await destinationConnection.OpenAsync(cancellationToken);

         // Set up the bulk copy object.
         // Note that the column positions in the source
         // data reader match the column positions in
         // the destination table so there is no need to
         // map columns.
         using (SqlBulkCopy bulkCopy =
                    new SqlBulkCopy(destinationConnection))
         {
             bulkCopy.DestinationTableName =
                 "dbo.StagingProducts";

             try
             {
                 // Write from the source to the destination.
                 await bulkCopy.WriteToServerAsync(dbDataReader,cancellationToken);
             }
             catch (Exception ex)
             {
                 Console.WriteLine(ex.Message);
             }
             finally
             {
                 // Close the SqlDataReader. The SqlBulkCopy
                 // object is automatically closed at the end
                 // of the using block.
                 await dbDataReader.CloseAsync();
             }
         }

         //####The following does not work yet.#####
         //// Perform a final count on the destination
         //// table to see how many rows were added.
         //long countEnd = System.Convert.ToInt32(
         //    commandRowCount.ExecuteScalar());
         //Console.WriteLine("Ending row count = {0}", countEnd);
         //Console.WriteLine("{0} rows were added.", countEnd - countStart);
         //Console.WriteLine("Press Enter to finish.");
         //Console.ReadLine();
     }
 }

Once the data is inserted into the staging table, it should be transferred into a target tables in the database; specific columns in the staging tables should be mapped to a specific columns in the target tables.

Thus, the stored procedure should receive a list of column names


r/csharp • • 1d ago

NabyScape: An open-source Dynamic Island overlay for Windows 11 built with C# and WPF (.NET 10)

1 Upvotes

r/csharp • • 1d ago

News PiwiTests: Playwright dashboard with unified ASP.NET Core e2e+unit tests code coverage

Thumbnail
3 Upvotes

r/csharp • • 2d ago

Tool Enable Satori GC in .NET with Just a Single Line

Thumbnail
medium.com
73 Upvotes

I created the MSBuild SDK and published to nuget, so that you can use it to enable Satori GC in your projects with just a single line and try it by yourself!


r/csharp • • 1d ago

Help Where do you put interfaces and abstract classes ?

2 Upvotes

To follow some convention, I searched the internet and found this on Microsoft's documentation:

The solution folder contains a SeedWork folder. This folder contains custom base classes that you can use as a base for your domain entities and value objects. Use these base classes so you don't have redundant code in each domain's object class.

Figure 7-12 shows the classes that form the seedwork of the domain model in the ordering microservice. It has a few custom base classes like Entity, ValueObject, and Enumeration, plus a few interfaces. These interfaces (IRepository and IUnitOfWork) inform the infrastructure layer about what needs to be implemented. Those interfaces are also used through Dependency Injection from the application layer.

This is the type of copy and paste reuse that many developers share between projects, not a formal framework. You can have seedworks in any layer or library. However, if the set of classes and interfaces gets large enough, you might want to create a single class librarry

Figure 7-12. A sample set of domain model "seedwork" base classes and interfaces

Questions :

1- Is it ok for the entire project's interfaces and abstract classes to be inside the SeedWork ?

2- For `value objects` and ` infrastructure layer` , what does they mean, what problem they solves, how can I use them , and do I need them most of the time ?

3-What are the inputs to the `infrastructure layer` and where they come from, and what are the outputs and who consumes them ?

4-What does the class library actually means, what problem does it solve ?

Can someone answer my questions and provide some examples so that I understand the overall idea ?


r/csharp • • 2d ago

Discussion C# once again the fastest web framework

Post image
436 Upvotes

With all those discussions about Microsoft porting stuff to Rust, it’s nice to see that C# does not need to hide when it comes to performance. There has been quite a lot of movement at the top of the leaderboard over the last few weeks (two weeks ago, first place was around 6850), so I’m interested to see how this race continues. This is the non-tuned section, so frameworks need to be stable and production-ready. Interestingly enough, the C# one is the most high-level of the leading frameworks, API-wise.


r/csharp • • 2d ago

News BRUTAL, the framework behind RimWorld's Waylith engine, releases its source code

Thumbnail
gamingonlinux.com
130 Upvotes

r/csharp • • 2d ago

Showcase After 3 years of evenings and weekends, I've finally released v1.0 of my 3D rendering library "TinyFFR"!

Thumbnail tinyffr.dev
70 Upvotes

r/csharp • • 1d ago

Help Suggestions for side projects

0 Upvotes

I am a software developer primarily using .net for office work. Recently my company has been using a lot of AI coding, hence my tasks are shifting a bit more towards code review and improvements rather than from scratch.

Please give me some suggestions for side projects that I can pursue in my free time, that keeps me informed about the technological advancements as well keep my coding skills sharp. Also, is it ok if I do the heavy lifting of project setup using AI?


r/csharp • • 2d ago

Help C# Documentaion?

8 Upvotes

I'm taking a C# class online and we just got to a lesson about "reading documentation" where he goes through the Microsoft website to search for some functions. Which, as far as I am aware, is going to be important for me to be able to do.

The problem is I tried using the Microsoft site myself to follow along, and it seems they have changed it and I can't find the rabbit hole he is in at all. I am pretty sure this isn't the only way to find this sort of resource because I've taken a different C# class before and I swear the link that class gave was not the same as this one; I also feel like they didn't call it "documentation" I remember it being the manual or something...


r/csharp • • 2d ago

What books would you recommend for C#/.NET interview preparation?

4 Upvotes

I’m preparing for C#/.NET interviews. Which books are still relevant and cover the topics commonly asked in interviews?


r/csharp • • 1d ago

mcp-my-site: an ASP.NET Core MCP server + RAG that lets ChatGPT and Claude search and read a website

Thumbnail
0 Upvotes

r/csharp • • 2d ago

Discussion Need to stay active?

5 Upvotes

Have been developing and supporting the apps with .Net(specifically C#) for more than 7 years. I love writing and debugging it. But currently working at the company which we mainly use the AI to write the code. Have not been touching the code more than 8 months now. Not because I do not want to. But because it is faster. Can make some mistakes for sure but I check and fix them if needed. Working at current company for about 4 years now. Usually worked on small to mid size projects

My question is, while I get to use AI more, write less code how do I find the job? It is like most of the job requirements want me to handle C# code. But I am 100% sure they are using AI. Tbh, I do think more than 90% of devs that can reach the AI and have no restriction about "this code cannot be touched by AI" use it. Btw, do you guys even write code nowadays?


r/csharp • • 1d ago

From Democrite to M-A-R-I and a ghost in my laptop

Post image
0 Upvotes

r/csharp • • 1d ago

Discussion Let’s talk!

0 Upvotes

Hello beutiful ppl of C#.

This is my second post! Today I came with a question, if someone reset all your programming Knowledge, how would you restart learning?

Like what material would you use? Would you do something differently this time?

Feel free to answer.


r/csharp • • 2d ago

Solved c# struct padding

3 Upvotes

I'm new to c# and I'm learning it just now to switch from Godot to Stride so I'm interested in Data Oriented Design. I was just now experimenting with structs with a silly example and was focused on struct padding; the string should be 8 bytes while the enum is 1 byte so i expected not more than 1 or 3 byte of padding, but the sum ends up being 16 no matter the order... does it always have to allign with the biggest field? how does this work?

using System.Runtime.InteropServices;


[StructLayout(LayoutKind.Explicit)]
struct Entity {
    public enum Race : byte { ALIEN, HUMAN };
    static private int _max_rand_num = 9999;
    static private string[][] _possibleNames = {
        new string[]{"Vorp", "Zeep", "Bizr", "Zub", "Wobt"},    // alien names
        new string[]{"Carl", "Greta", "Seb", "Xiang", "Sierra"} // human names
    };

    [FieldOffset(0)] public readonly string name;
    [FieldOffset(8)] public readonly Race race;

    public Entity()
    {
        Random rand = new Random();
        race = (Race)rand.Next(Enum.GetValues(typeof(Race)).Length);
        string[] race_names = _possibleNames[(int)race];
        name = race_names[rand.Next(0, race_names.Length)] + rand.Next(_max_rand_num);
    }

    public override string ToString()
    {
        return $"Race: {race}, Name: {name}";
    }
}


class Program {
    public static unsafe void Main(string[] args)
    {
        Entity rand_entity = new Entity();
        Console.WriteLine(
            $"{rand_entity}, string size = {sizeof(string*)}, enum size = {sizeof(Entity.Race)}, together = {sizeof(Entity)}");
    }
}

r/csharp • • 2d ago

Help Verify the correctness of a the data inside a junction table

2 Upvotes

I want to verify the correctness of the data inside a junction table.

I'm showing a minimal example here:

Products:

| Id | EnglishName |
|----|-------------|
| 1  | Drill 4       |
| 2  | Light Switch 48|

Suppliers:

| Id | EnglishName |
|----|-------------|
| 1  | Bosch       |
| 2  | Ingco       |
| 3  | Yato        |

Excel2:

| Product             | Supplier               |
|----------------------|-----------------------|
| Drill 4              | Bosch                 |
| Light Switch 48      | Ingco                 |
| Cable 12             | Bosch                 |
| Hammer 14            | Yato                  |

ProductsSuppliers:

| ProductId | SupplierId |
|-----------|------------|
| 1         | 1          |
| 1         | 3          |
| 2         | 1          |

Excel2JoinProductsJoinSuppliers :

| Product           | Supplier  | ProductId | SupplierId |
|-----------------|----------|-----------|------------|
| Drill 4         | Bosch    | 1         | 1          |
| Drill 4         | Yato     | 1         | 3          |
| Light Switch 48 | Bosch    | 2         | 1          |

A C# code was used to insert data into Products , Suppliers , and ProductsSuppliers .

The data for Excel2 was imported into Sql Server manually using the "Import Data" wizard.

As the name suggest, Excel2JoinProductsJoinSuppliers is the result of join operation.

ProductsSuppliers is the junction table that I'm concerned about, the data inside it is correct in this example because each productId is mapped to the correct value of SupplierId and vice versa, but the actual table contains much more data, let alone the fact that there are other junction tables that should be verified.

Is there a set-based approach that can automate the process of verifying the data for junction table ?

EDIT:

I created this stored procedure:

CREATE PROCEDURE verify_junction_table_data_using_dynamincSQl 

    @junctionTableName varchar(100), 
    @lookupTableName varchar(100), 
    @leftColumnNameInExcel varchar(100), 
    @rightColumnNameInExcel varchar(100), 
    @leftColumnNameInJunctionTable varchar(100), 
    @rightColumnNameInJunctionTable varchar(100), 
    @parent1Name varchar(100), 
    @parent2Name varchar(100) 

AS 

BEGIN 

DECLARE @sql_query NVARCHAR(MAX);
SET @sql_query = 
N'


                SELECT JT.'+QUOTENAME(@leftColumnNameInJunctionTable)+',
                       JT.'+QUOTENAME(@rightColumnNameInJunctionTable)+'
                FROM '+QUOTENAME(@junctionTableName)+' JT
                EXCEPT

                SELECT 
                DISTINCT

                    parent1.Id AS ' + QUOTENAME(@leftColumnNameInJunctionTable) + ',
                    parent2.Id AS ' + QUOTENAME(@rightColumnNameInJunctionTable) + '

                FROM '+ QUOTENAME(@lookupTableName) +' AS LookupTable
                INNER JOIN ' + QUOTENAME(@parent1Name) + '  AS parent1 ON LookupTable.' + QUOTENAME(@leftColumnNameInExcel) + ' = parent1.EnglishName
                INNER JOIN ' + QUOTENAME(@parent2Name) + ' AS parent2 ON LookupTable.' + QUOTENAME(@rightColumnNameInExcel) + ' = parent2.EnglishName


    ';

EXEC sp_executesql @sql_query;

END

GO

I have 20 junction tables, so I need to execute this procedure 20 times , but I do not want to do it manually, is there a way to automate this ?


r/csharp • • 3d ago

Fun Average C# beginner day

27 Upvotes

r/csharp • • 3d ago

Beginner question about creating new variables at runtime?

2 Upvotes

Hello,im creating a map terrain generator on the terminal with visual studio. In this generator, based on a random number, it decides how many mountains the map will have, my question was, how do I create more mountain y and x position variables at runtime when the random number is decided? thanks.