.NET 6

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • SonarQube - Static code analysis for 29 languages.
  • OPS - Build and Run Open Source Unikernels
  • Scout APM - Less time debugging, more time building
  • GitHub repo Introducing .NET Multi-platform App UI (MAUI)

    .NET MAUI is the .NET Multi-platform App UI, a framework for building native device applications spanning mobile, tablet, and desktop.

  • GitHub repo FrameworkBenchmarks

    Source for the TechEmpower Framework Benchmarks project

    * Runs great on Linux in my experience & others

    * Great performance - https://www.techempower.com/benchmarks/#section=data-r20&hw=...

    * Open source - Microsoft has made a lot of missteps but they have came a very long way. The bright side is both how far they've came & the outcomes of the recent missteps.

    * Very productive toolset imo. I focus mostly on web based tech though. I really like the syntax & type system.

    * Swiss Army Knife in that you can use .NET to do just about any type of project - Web, mobile, games, IoT, desktop, machine learning, etc.

    * You can use C# & F# syntax, both very popular (though let's all be honest, F# is a 2nd class citizen in .NET but it's got a great fan base)

  • SonarQube

    Static code analysis for 29 languages.. Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.

  • GitHub repo csharplang

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

  • GitHub repo sdk

    Core functionality needed to create .NET Core projects, that is shared between Visual Studio and CLI (by dotnet)

    One reason might be an awareness that Microsoft will be Microsoft and they tend to do things like putting "telemetry" in the CLI tools: https://github.com/dotnet/sdk/issues/6145

  • GitHub repo WebViewFeedback

    Feedback repo for Microsoft Edge WebView2

    If it is cross-platform it doesn't seem to be very mature cross-platform: https://github.com/MicrosoftEdge/WebView2Feedback/issues/645.

  • GitHub repo cosmopolitan

    build-once run-anywhere c library

    > You of course have to choose your target platform for this (...)

    https://github.com/jart/cosmopolitan

    (but, yeah, you probably want one version per target, even if hacks are cool)

  • GitHub repo maui-linux

    .NET MAUI is the .NET Multi-platform App UI, a framework for building native device applications spanning mobile, tablet, and desktop.

    AIUI, MAUI does not include Linux support. There is a community effort to get that going, but it's not part of MAUI proper.

    https://github.com/jsuarezruiz/maui-linux

  • OPS

    OPS - Build and Run Open Source Unikernels. Quickly and easily build and deploy open source unikernels in tens of seconds. Deploy in any language to any cloud.

  • GitHub repo MaterialDesignInXamlToolkit

    Google's Material Design in XAML & WPF, for C# & VB.Net.

    I've been using MahApps.Metro[1] and MaterialDesignXAML[2]. Those two libraries have made me feel like sticking with WPF until I retire in 5 to 10 years. I'm constantly getting feedback from clients that the applications (boring business applications) look so modern. It's been a nice selling point as my niche is rewriting VBA/VB6 engineering software.

    [1]https://mahapps.com/

    [2]http://materialdesigninxaml.net/

  • GitHub repo MahApps.Metro

    A framework that allows developers to cobble together a better UI for their own WPF applications with minimal effort.

    I've been using MahApps.Metro[1] and MaterialDesignXAML[2]. Those two libraries have made me feel like sticking with WPF until I retire in 5 to 10 years. I'm constantly getting feedback from clients that the applications (boring business applications) look so modern. It's been a nice selling point as my niche is rewriting VBA/VB6 engineering software.

    [1]https://mahapps.com/

    [2]http://materialdesigninxaml.net/

  • GitHub repo Nuget Package Manager

    Repo for NuGet Client issues (by NuGet)

    … huh? Visual Studio is extremely not dead, they are literally about to release a 64-bit version after a massive rework. VS Code is a text editor which you can extend into being an IDE. Visual Studio is an IDE.

    There are many reasons why one might be unable to upgrade to the latest version of any given thing. For an example close to my heart of why one might be unable to upgrade to .NET 6 (or indeed to later versions of the .NET 5 SDK), there's the showstopping https://github.com/NuGet/Home/issues/10389.

  • GitHub repo runtimelab

    This repo is for experimentation and exploring new ideas that may or may not make it into the main dotnet/runtime repo.

    You can, as sbelskie mentioned below. In .Net 6, it's available as a Preview [1]. But it's going to ship with the main framework in 7.0 [2].

    The preview works quite well. You can build self-contained, smaller executables, and shared libraries callable from say, C code.

    [1]: https://github.com/dotnet/runtimelab/blob/feature/NativeAOT/...

    [2]: https://github.com/dotnet/runtime/issues/61231

  • GitHub repo .NET Runtime

    .NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.

    You can, as sbelskie mentioned below. In .Net 6, it's available as a Preview [1]. But it's going to ship with the main framework in 7.0 [2].

    The preview works quite well. You can build self-contained, smaller executables, and shared libraries callable from say, C code.

    [1]: https://github.com/dotnet/runtimelab/blob/feature/NativeAOT/...

    [2]: https://github.com/dotnet/runtime/issues/61231

  • GitHub repo Home

    This is the landing repository for the .NET foundation efforts. Start here! (by dotnet-foundation)

    Saying that outcry was about one tiny decision is like saying WW1 was because an Archduke got assassinated.

    Microsoft's handling of .NET 's OSS community has been haphazard at best. Just a week or two prior to the 'dotnet watch' debacle, there were issues and concerns with the .NET Foundation that led to the Executive Director stepping down [0].

    I bring this up, because in many cases the perception is that there is -still- lock in, just in a different fashion.

    By that, I mean, if you Ask a typical .NET developer what they use, they'll probably say ASPNETCORE, EF Core, maybe you'll hear Hangfire, MediatR, RestSharp, or Dapper.

    So, you've got a bunch of .NET devs that -only- know Microsoft technologies for the most part. Yeah there's some other stuff like MongoDb, Kafka, Redis, stuff like that, but It's not very frequent you hear about teams reaching out to other technologies.

    It's very rare I hear people bring up Linq2Db, a beautiful* Micro-ORM that is best described as a type-safe, extensible SQL DSL. Or Websharper, a really-freaking-cool library that basically lets you transpile your C#/F# code into Javascript and/or Reactive HTML, complete with seamless server calls if you'd like.

    You might run into some interesting things at different places. One shop I was at used MassTransit, which was kinda cool. I've wound up using Akka.NET a few times in the past, which has always been super fun.

    The end result of this though, is the -perception- of what .NET Developers are like. And sometimes those perceptions are real. I remember the dev that felt Dapper was some sort of 'black magic' and would stick to writing DataReaders and or datatables by hand, and another that was so against the idea including Non-MS tech in a project that it wound up costing him his job; he insisted there was a way to get EF to do things in a performant way (answer: not sanely, and not easily the way the app was built on an arch level,) and refused to accept a PR that solved the problem with Dapper.

    He wound up doing the thing I've seen a -lot- of .NET developers do; fight the Framework.

    To be clear here, I'm not referring to the BCL. It's not always perfect (I'd love for an analogue to SSLEngine, please?), but it's -fine-. I'm referring to bits like ASPNETCORE, EFCore, SignalR, and Microsoft.Extensions.(DependencyInjection/Logging) where developers wind up getting in awkward tarpits around some weird edge case because of a business requirement or some other decision that, unfortunately, can't be undone.

    Or are just plain 'well, that sounds sensible in theory' like "I would like to update N rows in an new status that are older than 1 month and set to overdue, and not have it be N update statements." Maybe EF does that now, but last I knew the answer was not really.

    At my first 'Real' Dev job, we were a .NET shop, that often had to 'fight the framework' (it didn't help that we were on an Oracle Backend, which made -everything- more of a PITA before we discovered Dapper.) When the .NET guys hit one of these roadblocks, it would often take sprint after sprint of fighting to either have no solution, or have a solution that would render the app hard to maintain. The newer teams using Java? They didn't have those problems. We later heard they had 5 different ORM-ish libraries in use over there. At the time, a lot of the .NET devs kinda treated it as a sort of derision. 'hows somebody gonna understand it?'... But the Java teams delivered. It is also worth considering, maybe those were the best libraries to solve the problems that the app in question needed to deal with.

    And that's kinda the 'mindset' that is a set of .NET developers that fit the stereotype; if it's not an app that fits their cookie-cutter world, they break down and can't understand it. In other words, they're afraid to step outside the box, which means they're less likely to think outside the box.

    The typical 'litmus-test' of this type for me is a sliding scale based on their past/current experience with other languages and willingness to work with them.

    * - I do some contribution work to Linq2Db, so my opinion may be a little biased.

    [0] - https://github.com/dotnet-foundation/Home/discussions/39#

  • GitHub repo Pixelorama

    A free & open-source 2D sprite editor, made with the Godot Engine! Available on Windows, Linux, macOS and the Web!

    There seems to be some people writing UI applications with the Godot game engine. Given the dismal state of desktop UI frameworks, this seem to make more and more sense (very light binaries, solid cross-platform support, a WYSIWYG toolkit with good scripting functionality, access to C/C++ if you wan to go low-level, you name it.)

    Examples:

    https://www.wonderdraft.net/

    https://github.com/Orama-Interactive/Pixelorama

  • GitHub repo v

    Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. https://vlang.io

    Yeah, nim ticks all the boxes, but the ecosystem around it should grow a bit more until I can develop comfortably with it.

    vlang[0] also seems like a nice golang "fork" that I'd be willing to spend time on.

    [0]: https://github.com/vlang/v/blob/master/doc/docs.md

  • GitHub repo EdgeSharp

    Build .NET Win32/WinForms/WPF WebView2 HTML5 Desktop Apps

  • GitHub repo zerosharp

    Demo of the potential of C# for systems programming with the .NET native ahead-of-time compilation technology.

    You can get C# to run without the stdlib, and use it as a native language with some effort. Here's an example running Hello World as a C# EFI boot program: https://github.com/MichalStrehovsky/zerosharp/tree/master/ef...

  • GitHub repo MoreLINQ

    Extensions to LINQ to Objects

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