C# experience from a perspective of a Scala Developer.

This page summarizes the projects mentioned and recommended in the original post on reddit.com/r/csharp

Our great sponsors
  • Scout APM - Truly a developer’s best friend
  • talent.io - Download talent.io’s Tech Salary Report
  • SonarLint - Clean code begins in your IDE with SonarLint
  • InfluxDB - Build time-series-based applications quickly and at scale.
  • language-ext

    C# functional language extensions - a base class library for functional programming

    There's a better approach and it's types! Consider using Option from https://github.com/louthy/language-ext:

  • ASP.NET Core

    ASP.NET Core is a cross-platform .NET framework for building modern cloud-based web applications on Windows, Mac, or Linux.

    You probably know that ASP.NET Core has HttpContext. It contains RequestId which is added to every log record. But how is it acutally implemented? https://github.com/dotnet/aspnetcore/issues/31747 And what if I want to put some custom value to the context, is it possible? What if I have some extra logic associated with log context creation?

  • Scout APM

    Truly a developer’s best friend. Scout APM is great for developers who want to find and fix performance issues in their applications. With Scout, we'll take care of the bugs so you can focus on building great things 🚀.

  • Entity Framework

    EF Core is a modern object-database mapper for .NET. It supports LINQ queries, change tracking, updates, and schema migrations.

  • csharplang

    The official repo for the design of the C# programming language

    - Much ink has been spilled on HKT (https://github.com/dotnet/csharplang/issues/339).

  • Dapper

    Dapper - a simple object mapper for .Net

    Entity Framework is fundamentally a generic abstraction on top of sql, so if you love using Postgres specific features it's probably going to disappoint you. The Npgsql driver actual does make a lot of Postgres specific functionality available but I don't know if the specific operation you're looking for is included. If you like to write raw sql you probably want to use Dapper. It's very common to use both in the same code base.

  • Rx.NET

    The Reactive Extensions for .NET

    You're looking for the System.Linq.Async nuget package that's part of the reactive extensions for .Net. It provides async versions of all the standard linq operators. Yes, IAsyncEnumerable can be incredibly useful. It's still relatively new (added about 2 years ago) so some libraries just haven't added support for yet and some are probably hesitant because using it requires a new C# language version. Many (most?) newer features in C# are syntactic sugar, i.e. I can turn on the newest version of C# and use all the fancy things, but then you can consume my library while still using an older language version. IAsyncEnumerable is one where (AFAIK) a library using that feature requires anyone using the library to also use a recent language version that supports it.

  • Open.ChannelExtensions

    A set of extensions for optimizing/simplifying System.Threading.Channels usage.

    For streaming you should look into channels. The built in functionality is a bit too low level to be immediately useful, but if you use the ChannelExtensions library https://github.com/Open-NET-Libraries/Open.ChannelExtensions it's very easy to work with IAsynEnumerable and do things like batching, merging and transforming.

  • talent.io

    Download talent.io’s Tech Salary Report. Median salaries, most in-demand technologies, state of the remote work... all you need to know your worth on the market by tech recruitment platform talent.io

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts