Our great sponsors
-
Specifically, comparing Responses per second between C# and javascript web frameworks:
https://www.techempower.com/benchmarks/#section=data-r21&tes...
One JS framework smokes, but most of the C# ones are above the JS ones. I don't know what's that "just-js" thing at the top though, I suspect it's not really a framework.
-
Stripe.Net
Stripe.net is a sync/async .NET 4.6.1+ client, and a portable class library for stripe.com.
I like the Stripe API design, and as a follow-on, I tend to like their coding styles and structures. Here's their official Stripe dotnet library - https://github.com/stripe/stripe-dotnet. It's well organized and the code coverage looks good.
-
SonarLint
Clean code begins in your IDE with SonarLint. Up your coding game and discover issues early. SonarLint is a free plugin that helps you find & fix bugs and security issues from the moment you start writing code. Install from your favorite IDE marketplace today.
-
-
IdentityServer
The most flexible and standards-compliant OpenID Connect and OAuth 2.x framework for ASP.NET Core
-
-
Roslyn
The Roslyn .NET compiler provides C# and Visual Basic languages with rich code analysis APIs.
-
referencesource
Source from the Microsoft .NET Reference Source that represent a subset of the .NET Framework
-
InfluxDB
Build time-series-based applications quickly and at scale.. InfluxDB is the Time Series Platform where developers build real-time applications for analytics, IoT and cloud-native services. Easy to start, it is available in the cloud or on-premises.
-
dotnet
This repo is the official home of .NET on GitHub. It's a great starting point to find many .NET OSS projects from Microsoft and the community, including many that are part of the .NET Foundation.
-
-
-
In my personal opinion, the rhythm game osu! [1] and the related osu!framework [2] are great examples of C# code.
-
-
Not a .NET developer, but even as such, the Bitwarden code was very readable to me https://github.com/bitwarden/server
-
CleanArchitecture
Clean Architecture Solution Template: A starting point for Clean Architecture with ASP.NET Core
This repository is a good place to start with modern c# code, specifically ASP.NET
-
I have had the pleasure of contributing to a couple different networked drivers with very talented maintainers that I like to use as references.
One supports a wide array of Framework versions and has both Sync and Async I/O, as it must to implement the ADO.NET database driver interfaces. Reading the internals really highlight the way that .NET has evolved over the years and what must be done in each target version to maximize performance:
https://github.com/mysql-net/MySqlConnector
The other supports .NET 6 only with Async I/O only. This support policy seems to be the way that "modern" .NET development is headed, as .NET 6 will be the floor for LTS .NET (formerly .NET Core) releases in a few months. Async APIs only greatly simplify development, and make it simpler to remain performant when targeting WASM.
https://github.com/Cysharp/AlterNats
As a library maintainer, one thing I often wonder about is how to indicate .NET version support. One option would be for the major version of the library to track the major version of .NET, so if I were to publish a new library today then start with .NET 6 support and start with version number 6.0.0 instead of 1.0.0. This would limit the library to only making breaking changes when the .NET version changes though.
-
I have had the pleasure of contributing to a couple different networked drivers with very talented maintainers that I like to use as references.
One supports a wide array of Framework versions and has both Sync and Async I/O, as it must to implement the ADO.NET database driver interfaces. Reading the internals really highlight the way that .NET has evolved over the years and what must be done in each target version to maximize performance:
https://github.com/mysql-net/MySqlConnector
The other supports .NET 6 only with Async I/O only. This support policy seems to be the way that "modern" .NET development is headed, as .NET 6 will be the floor for LTS .NET (formerly .NET Core) releases in a few months. Async APIs only greatly simplify development, and make it simpler to remain performant when targeting WASM.
https://github.com/Cysharp/AlterNats
As a library maintainer, one thing I often wonder about is how to indicate .NET version support. One option would be for the major version of the library to track the major version of .NET, so if I were to publish a new library today then start with .NET 6 support and start with version number 6.0.0 instead of 1.0.0. This would limit the library to only making breaking changes when the .NET version changes though.
-
I was looking at the CSV parser Cursively recently, and I think it is a good simple example of a high performance C# parser and API design.
-
Might enjoy taking a look at Classic UO. It's UO, written in .NET, to run in the browser...
-
"DotNEXT" is a repo that enhances the code from .NET core, and has examples of using new API's that you can't even find tutorials for on the internet/examples from in public code.
For instance, there's been a class since .NET 6, "RandomAccess", for high-performance random-access file I/O (potentially async), and I couldn't find a single damn use of it on the internet.
But then this repo had a whole utility class for it, and it's chock full of similar things:
https://github.com/dotnet/dotNext/blob/d4111528297ff3b6567b9...
Similarly, I would recommend stuff by the .NET core team.
I'm particular biased towards the low-level/interop team. Anything by Tanner Gooding is great, stuff by Michal Strehovský, Aaron Robinson, Elinor Fung.
-
-
Solutions to Advent of Code problems that people publish on github tend to be fairly short but readable, and most show off the language.
This is not "real" production C# code. Real production code would have a lot more checks for edge conditions and error handling that would obfuscate the meaning. But it's good in order to get a feel for the capabilities of the language and its ecosystem, imo.
There are a couple of repos you can browse, I recommend this one, but only if you have some basic knowledge of LINQ and/or functional programming in general, else this might scare you off. But even if you don't, you could try to figure out how the solution to the first couple of problems in each year work, and learn through that. This guy tries to use the newest features of the language so it can confusing at time. He includes the full text of the problems in the repo so you can try to understand what's he's trying to do.
https://github.com/encse/adventofcode
Also solving AOC with C# has its own github topic:
-
js-ts-csharp
A repository demonstrating functional techniques with C# 10 and the similarities between JavaScript, TypeScript, and C#.
> C# is VERY different from even just what things were 2 years ago
C# and TypeScript are converging (both from Anders Hjelsberg).
Small repo here showing just how similar they are syntactically: https://github.com/CharlieDigital/js-ts-csharp
I'm surprised we don't see a bigger uptick in C# usage given the growth of TypeScript and how similar the two languages are. If you know C#, it's pretty easy to pick up TypeScript and vice versa.
-
Also worth checking out the gRPC benchmarks: https://github.com/LesnyRumcajs/grpc_bench/discussions/284
dotnet is up there with Rust.
-
eShopOnWeb
Sample ASP.NET Core 6.0 reference application, powered by Microsoft, demonstrating a layered application architecture with monolithic deployment model. Download the eBook PDF from docs folder.
-
NancyFx
Lightweight, low-ceremony, framework for building HTTP based services on .Net and Mono. Note: This project is no longer maintained and has been archived.
Nancyfx - sadly dead in the water now but well worth a read of both the code and docs https://github.com/NancyFx/Nancy/tree/master/
-
ReferenceSource is the code from the Windows framework and I'm pretty sure it should be considered deprecated at this point. The runtime and core libraries are now at https://github.com/dotnet/runtime, kinda weird that this is not directly linked in the home page repo.
-
A basic example looks like: https://github.com/davidfowl/CommunityStandUpMinimalAPI/blob...
Some more documentation on integration tests: https://learn.microsoft.com/en-us/aspnet/core/test/integrati...
-
It looks promising
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives