How are things these days with .NET 10! Jesus, 10!
Dudes who use it daily, what is your favorite feature you think?
How are things these days with .NET 10! Jesus, 10!
Dudes who use it daily, what is your favorite feature you think?
Favorite recent runtime feature is all the cool low level stuff opened up by Span<T> (and Memory<T>). It has a similarity to Rust borrowing, but well integrated into the CLR's existing type system. It has opened all sorts of performance code possibilities that is still memory-safe/type-safe with fewer needs for falling back to "unsafe" operations. This is not just exciting because it is an interesting playground if you like low-level programming, but also because it has been a performance flood lifting all boats in the .NET ecosystem. A lot of code over the last few years has gotten easy performance boosts by just recompiling (because the compilers were taught to prefer Span/Memory overloads when they get added; no change to C# or F# code, just the compiler picking a new performance path).
WinForms app development hasn't changed one bit in 25 years.
If you code in C# then they've added some nice new language features every year to make your code a little tidier.
And the whole framework is totally open source now, which is a bonus.
There's nothing I'm really asking for. It does pretty much everything I need these days.
My fav feature is honestly how little boilerplate I need compared to Spring Boot and the syntax sugar is honestly really nice.
I also really like that its development is fairly open (it's on github). From a more technical point of view, I think C# is a slightly better Java. A pretty nice language overall. It's not gui-or-nothing with dotnet core so it's not too difficult to create workflows for ci/cd pipelines, although the .net framework solutions we still have aren't too much harder to script: msbuild is pretty capable.
The last 5 version have been released a year apart, in Novembers.
The question, of course, becomes: when does that matter? For a lot of people who are in to .NET, they see that as a benefit. Look at Go through this lens, and it's similar; the go CLI is the compiler, linker, package manager etc. I suppose the biggest difference is that it doesn't prescribe solutions and projects and file formats to go with them, which enables you to put this in any existing CI, make or other system.
.NET 9 (and VS2022) added support for the SLNX replacement format to replace the old weird solution format:
https://devblogs.microsoft.com/visualstudio/new-simpler-solu...
You don't have to use a Solution at all with the CLI, you can do everything in a single Project and one full tree glob. (Technically you haven't need a Solution with Visual Studio for a long while either, if you don't mind it sometimes auto-creating them at compile time, and even then you can just .gitignore .sln and not care. But even that random auto-.sln file thing has disappeared in recent years and Visual Studio has learned more auto-workspace tricks from VS Code.)
I have started projects that just did that, started with a simple glob-only project and no prescribed file layout.
Yeah, dotnet doesn't let you micro-manage the linker specifically, but few languages since C++ do and arguably the C/C++ linker sometimes seems as much a bug of C/C++ as a feature in modern times.
Additionally, blazingly fast, especially as they continue to use stronger memory-aware primitives like Span<T> under the hood, and back that work with code in System.Numerics that continues to lean into hardware intrinsics.
C# itself is also an incredible language, much maturing since .NET 4. Things like Source Generators, record types, collection expressions... you can be _nearly_ as terse as something like python but with all the added benefit of C#'s type system (AND you get LINQ!).
People act like C# is some weird hanger-on dinosaur of a previous age of "tech" that people hang on to out of stubbornness, but IMO it's one of the most forward thinking languages today with an incredibly powerful runtime to boot.
Well, spiritually this is the 13th(?) major version of .NET (possibly more if we count Silverlight's runtime). You missed the part when there was .NET Core 1-3 alongside the old .NET Framework 4.8., and then they skipped Core 4 and stopped supporting Framework so they could finally fix their naming scheme.