4 ms·
.NET 9 Is Out
- leosanchez 2y agoThey didn't add anything significant to the language this year. Maybe next year we will get new extensions feature.
- jf22 2y agoDid you mean C# the language?
- leosanchez 2y agoYes. Language and framework are released at the same time every year
- mihular 2y agoAre there others? Edit: include ;-) at the end. Client filtered it out...
- sedatk 2y agoYes, they also released F# 9.
- kogus 2y agoYes. There are three "official" .NET languages: C#, Visual Basic, and F#. https://dotnet.microsoft.com/en-us/languages https://dotnet.microsoft.com/en-us/languages
- BJones12 2y agoRIP J#
- vips7L 2y agoRIP Midori
- mikece 2y agoWow... I keep forgetting that VB.net is still a thing. Pretty much everyone who was writing ASP code before the switchover adopted VB.net and then flipped over to C# around 2005 (.NET version 2).
- _mlbt 2y agoIt’s a shame the “Iron” family of scripting language implementations seem to have stalled out. IronPython and IronRuby had a lot of potential.
- mihular 2y agoArgh, my client omitted a wink smiley I've included at the end . It was meant as a joke.
- aithrowawaycomm 2y agoDid you mean "are there other things called C# besides the language?" I think people missed the joke because they interpreted your comment as "are there other .NET languages?"
- qingcharles 2y agohttps://en.wikipedia.org/wiki/Q_Sharp https://en.wikipedia.org/wiki/Q_Sharp
- mihular 2y agoYep, nothing much for average applications. It's a pity that extension properties didn't make the cut.
- sebazzz 2y agoRather have it being designed carefully, than having a half baked feature like primary constructors.
- bob1029 2y agoI think the new locking abstraction could be considered somewhat significant. https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-13.0/lock-object https://learn.microsoft.com/en-us/dotnet/csharp/language-ref... https://github.com/dotnet/runtime/issues/34800 https://github.com/dotnet/runtime/issues/34800 https://github.com/dotnet/runtime/issues/34812 https://github.com/dotnet/runtime/issues/34812
- Dwedit 2y agoIs this the feature that would let you put extension properties on everything? The most obvious way to store backing fields for arbitrary objects is to have a global concurrent dictionary that stores weak keys, and a compiler-generated class to store the backing fields as the value. But then you have a performance problem of needing to do a lookup from a weak-concurrent-dictionary every time you access any extension backing field. The higher-performance alternative would be a second shadow variable in code that uses the extension backing fields. Do your dictionary lookup, then cache the backing-fields-object so you don't need to redo lookups for it. But that would be function-local. If the extension property doesn't need a new backing field, it's trivial, you're just making a new getter and setter function pair.
- qingcharles 2y agoThat was on purpose. There was a lot of issue-closing on GitHub. Especially MAUI which got a ton of bug fixes.
- _mlbt 2y agoMAUI looks really good in theory, I’m curious to hear about anyone’s experiences and thoughts about using it in production.
- leosanchez 2y agoBitwarden moved away from MAUI IIRC maybe you can search about that
- sebazzz 2y agoThe DigiD app in the Netherlands, used by almost every citizen to log into government and government-related services (taxes, social security stuff, message box, seeing your own data, portal of local municipality, etc etc etc) is written in Xamarin Forms and is now written in MAUI for a while. It even made Hacker News a while ago due to the progress indicator! https://news.ycombinator.com/item?id=34425614 https://news.ycombinator.com/item?id=34425614
- randyburden 2y agoI've written 3 apps in MAUI with 2 in production. The 2 apps in production are MAUI Blazor Hybrid apps. The learning curve was very small since I already was familiar with C# and Razor syntax after having built many C# server-side rendered web apps. Development is quite rapid since it's essentially using web technologies. For my use cases, the users do not care about the app looking native as these are B2B apps. Both apps are deployed in the 2 major mobile app stores and 1 app is also deployed in the Microsoft Store. The 3rd app was an internal-only Android app built with the UI written entirely in C# instead of XAML. I chose to write the UI in C# instead of XAML primarily just for fun and to see how that would work out. I ran into a lot more issues using native UI when it came to me wanting to customize things, such as removing an annoying bottom text underline/border that is added by default to Entry (textbox) controls. I'll probably never build another native UI app if I have the choice and will stick to MAUI Blazor Hybrid apps because it is so much faster to create the app using web technologies (HTML/CSS).
- llm_nerd 2y agohttps://devblogs.microsoft.com/dotnet/announcing-dotnet-9/ https://devblogs.microsoft.com/dotnet/announcing-dotnet-9/ Large performance improvements.
- edtech_dev 2y agoStephen Toub does an impressive performance deep dive blog post [0] every release. It's over 300 pages long! [0] - https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-9/ https://devblogs.microsoft.com/dotnet/performance-improvemen...
- qingcharles 2y agoYeah, these posts are totally wild. The amount of work that goes into them blows my mind.
- lakomen 2y agoI'd be interested in seeing .net9 vs Java 22 vs Go vs Rust. But this probably won't happen. Simple hello world, Graphql, Grpc, RESTful api with a simple model. And then spice up the concurrency and measure memory consumption as well, a 24h test.
- CharlieDigital 2y agoTechEmpower benchmarks and The Benchmark Game[0] are pretty comprehensive. The latter has not yet been updated for .NET 9. The former has been updated with .NET 9[1], but will have to wait for the next round of results. You can see the continuous results, though[2] I know that TechEmpower gets a lot of flak for being "unrealistic", but it's easy enough to filter out the pure middleware ones. But even those I feel are "fair game" because it shows that such optimizations are possible on the runtime if needed. The story behind one of the top entrants, Just(js) talks a bit about this[3] [0] https://benchmarksgame-team.pages.debian.net/benchmarksgame/index.html https://benchmarksgame-team.pages.debian.net/benchmarksgame/... [1] https://github.com/TechEmpower/FrameworkBenchmarks/blob/master/frameworks/CSharp/aspnetcore/src/Minimal/Minimal.csproj https://github.com/TechEmpower/FrameworkBenchmarks/blob/mast... [2] https://tfb-status.techempower.com/ https://tfb-status.techempower.com/ [2] https://just.billywhizz.io/blog/on-javascript-performance-01/ https://just.billywhizz.io/blog/on-javascript-performance-01...
- WillAdams 2y agoIs there a development environment for this which is graphical and interactive and as easy-to-use as say Visual Basic 1.0 or Livecode (formerly Runtime Revolution which was a HyperCard clone)?
- mmerlin 2y agoThe nearest thing is probably a Monaco based IDE that generates self-contained executables (like VB before .Net) with modernization for todays OS ecosystem. twinBasic https://twinbasic.com https://twinbasic.com
- deleted 2y ago[deleted]
- Joker_vD 2y agoIt's always a bit amusing to see comments like "ooh, large performance improvements, that's great" and "meh, no new shining language features, maybe next year" next to each other, but it does show that there is a healthy variety in the user base.
- balencpp 2y agoThey’re not mutually exclusive. Most of the large performance improvements are from .NET, the runtime and compilers. They’re not related to C#.
- mirages 2y agoI just want to point out that for years Microsoft told us to abandon WinForms and jump on WPF. Now we're years later and Winforms keeps getting new features.