Announcing .NET 10
Posted by Atulin@reddit | programming | View on Reddit | 186 comments
Full release of .NET 10 (LTS) is here
Posted by Atulin@reddit | programming | View on Reddit | 186 comments
Full release of .NET 10 (LTS) is here
ShepardRTC@reddit
Missed opportunity for .NET X
deadman87@reddit
What's next? .net X Pro and .net X Pro Max?
Don't give them ideas 🤣
tijR@reddit
.net 365
skibidi_shingles@reddit
with Copilot™
masiuspt@reddit
Don't let them hear you or they'll change the naming again!!!
equeim@reddit
.NET X 10. The next version will be .NET X 11
DeveloperAnon@reddit
I could be wrong, but C# and .NET would be insanely popular if it wasn’t tied to Microsoft (which isn’t entirely fair in modern times, but I digress).
It’s a fantastic language and the move off of .NET Framework has been incredible.
Academic_East8298@reddit
I think part of C# popularity came from Unity, since for a long time it was the main indie dev engine.
Overall I think it is an alright language. My only problem is, that it still supports a lot of legacy stuff, that shouldn't be used in modern applications.
Plank_With_A_Nail_In@reddit
Can you give an example?
Academic_East8298@reddit
Just from my head - SqlQuery, Semaphore and event. Why are these classes still supported?
KevinCarbonara@reddit
One of the reasons C# is so popular is that it's backed by Microsoft. Look at how terribly fragmented the Java and Python communities became when they upgraded to newer versions. C# has always had an easy migration path.
vinciblechunk@reddit
Oh, so that's why C# is so much more popular than Java and Python
KevinCarbonara@reddit
It's a large part of it, yeah. It's also just a legitimately better language. Java is very dated, and Python has never been a good choice for enterprise software.
andree182@reddit
I think your sarcasm detector may have malfunctioned.
KevinCarbonara@reddit
Why would that be sarcasm?
andree182@reddit
You will not find any global statistics, where C# is more popular than python/java these days. Maybe in some niche usages, like enterprise server apps, or Unity.
There are many legitimely better languages than Java/Python. Hell, almost any language is better than javascript - yet here we are, whole internet is built on it :)
KevinCarbonara@reddit
You will find that C# is more popular than Java most everywhere, and more popular than Python everywhere except universities.
Not by any realistic metric. Javascript may be all over the internet, but it's not what the internet is built on.
Devatator_@reddit
In general Java is more popular but it's the other way around in a few countries. No idea which but I know they exist
Mysterious-Rent7233@reddit
Not sure how to reconcile your comment with this one.
Kissaki0@reddit
Microsoft is a champion of long term support, compatibility, and migration paths. .NET Framework is not actively developed, but still supported. Windows Forms, the "pre-pre-previous" UI technology still receives functionality updates, because there's significant users.
.NET Framework to .NET Core has a technological shift. Yes, some things are not compatible. But the blockers and outside of that the migration paths are well defined.
KevinCarbonara@reddit
Backwards compatibility is not the same as a migration path.
admalledd@reddit
And for ref, there have been many migration paths made available over the past years. Are they still some work? Sure, but really nothing insurmountable. There are many MANY ways to incrementally move to being net-core compatible (move libraries to use NetStandard2.0, or use multi-targeting) and even a few auto-conversion tools.
Outside a handful of COM libraries that do evil things to Framework's application domain (which no longer exists in net-core as such), which we just... sandboxed and use IPC to broker/wrap and hide away.
The two remaining "big challenge paths" are giant winforms apps, and monolithic aspnet-mvc 5. Both have the strangler pattern and other well documented paths to migrate that teams can take their time on. We are nearing year three of our MVC 5 to MVCCore UI migration for example, everything else has been net-core-ized in less than a month on their own. Our UI has ~20K+ screens, some 800+ Controllers. Yea, its a problem, but we are down to a team of three of us, and we expect to plausibly be done by end of next year. Three people, four years, while maintaining the rest of the application as clients demand us, so not really four-years of direct work.
Even being someone with some stuff on Framework, I have little sympathies for people who didn't get the memo ten years ago when MSFT said "This is the last Framework update, move to net-core".
KevinCarbonara@reddit
The switch from Framework to Core was probably the roughest transition within C# over its entire lifespan, and it was still nothing compared to Java 8 or especially Python 3. I don't know why some people are resistant to this idea - corporations are not choosing Microsoft because they just love the idea of a corporation owning a language. They love the support.
TwatWaffleInParadise@reddit
The language didn't change. .NET did. .NET was rewritten from the ground up to extract it from Windows and to make it cross-platform, among other goals such as improving performance.
tanner-gooding@reddit
It was not rewritten from the ground up.
Most of the code is and remains fairly identical to the original .NET Framework code (whether VM, JIT, GC, core libraries, tools, etc). It simply was edited and refactored to include support for other platforms.
It’s also worth noting that a large amount of the xplat support wasn’t itself “new”. Much of it was a continuation of the silverlight code, which was a continuation of various prior xplat logic like you can find in sscli/rotor.
It’s just an evolution of the same 25+ year old codebase. Some parts saw bigger refactorings, especially over the many years since .NET Core was first introduced. However, that’s just normal codebase evolution
tankerkiller125real@reddit
.net 2.0 support interoperability between .NET Framework and .NET, it's one of the foundational pieces during a migration of large projects to .NET. Turn core logic into .net 2.0 libraries, use said libraries across .NET Framework and .NET, when things are ready flip the switch to .NET, drop Framework.
If back backwards compatible they mean old Operating Systems... Stop... If the OS is EOL according to Microsoft then it should be EOL to you too, stop letting shitty business people penny pinch when it comes to OS upgrades.
nemec@reddit
I'd bet they mean "I write a library which is used by many shops unwilling to move on from .NET framework"
tankerkiller125real@reddit
Personally, if I were a library maintainer, at some point I would just say "this will be the last major release that supports .NET Framework" and call it a day. Maybe throw in security updates for the next three years or something as a bone, call it a day. Not my problem if someone's shop refuses to upgrade to .NET. and if it's an open source library someone can always fork and keep maintaining it for the legacy stuff if they want.
kiteboarderni@reddit
I mean that's just blatantly incorrect about Java.
KevinCarbonara@reddit
I was a Java dev for years. I can assure you, it's not. I still know of teams struggling to update to Java 8.
maxhaton@reddit
dotnet ecosystem has less fragmentation mainly because it barely exists compared to that of python - there is basically no organic library development going on for code that actually does anything beyond shunting data around
KevinCarbonara@reddit
I don't know if you're trolling or if you legitimately don't know anything about the C# ecosystem.
First-Mix-3548@reddit
Can't tell if sarcasm
tankerkiller125real@reddit
Even migrating from .NET Framework to .NET takes a few weeks with even the largest of projects (once it's planned out), and upgrades from older .NET releases to newer .NET releases maybe an hour or two.
First-Mix-3548@reddit
I didn't think there was much Python 2 legacy code left. It's not that hard to update the syntax, especially with modern tools
Is there really so much much Python 2 legacy crap than .Net or any other flavour of legacy crap?
KevinCarbonara@reddit
You, uh... don't have any industry experience, do you?
Ok-Scheme-913@reddit
What did you smoke? Where is this fragmentation you talk about in case of Java? I can literally run a Java 1.1 jar right now on Java 25.
Matt3k@reddit
I manage close to 350 linux servers running a .net modular monolith backed by a mariadb backend and have no regrets. I am never CPU bound by the language. C# is perfect.
matthieum@reddit
How expensive are those services?
2.5 M transactions/day on 350 servers is a measly 7.5K transactions/day/server or 5 transactions/minute/server.
This would mean each transaction requires ~10s of processing, so they clearly must be pretty expensive, OR the numbers posted are misleading.
kur0saki@reddit
yea, 2.5mio db transactions per day is not much. but it totally depends on the transaction size. also the amount of reads and the amount of inserts/updates per transaction would be interesting.
psycketom@reddit
I already feel like C# and .NET are highly popular, what level of popularity are you thinking of?
And what do you mean about the move off of .NET? Guess I haven't followed that closely.
gartenriese@reddit
He meant the move off of .NET Framework to .NET Standard and then just .NET
ts1234666@reddit
Best language worst fucking naming ever
Robot_Graffiti@reddit
MS have never been good at names
Dom1252@reddit
I wanted to say - still better than IBM, but then I remembered Xbox...
But then I remember what I work with, how they just renamed SMU for mainframe SA, how many times OPC renamed...
Some companies just suck with this
ForeverAlot@reddit
I especially like https://en.wikipedia.org/wiki/IBM_i
redfournine@reddit
Is there companies great at naming things?
Robot_Graffiti@reddit
Sony made the Walkman, the Discman, the PlayStation, the PlayStation 2, the PlayStation 3, the PlayStation 4 and the PlayStation 5
Elthan@reddit
They also made the WF-1000XM3 and WF-C500 etc. They're pretty terrible at naming things.
ts1234666@reddit
I still don't get why they renamed Azure AD to Entra
MeIsMyName@reddit
Azure AD isn't really a direct replacement for Active Directory, even more so in the early days. They're often used in conjunction with non-Azure AD, and them both being called AD created confusion. The new name is Entra ID, and if they had just started with that, it would have helped.
Kralizek82@reddit
Entra is quite a solid product. Few things I lament:
enterprise applications and applications are very big bags of features and they change shape depending on what you want to do
you can't have a directory of users (b2c) that doesn't require tenant administrator level permissions to play with. My team owns the identity management solution of our company and we needed to veer off Entra and Entra External Identities just because it required escalating to IT for almost about everything and we didn't want to tie ourselves to another department's backlog.
object id, client id, application id... Every time I try to do something with Terraform, it's a guess which of the three I need to use.
TwatWaffleWanderer@reddit
Yeah, Azure AD is a name from the "Slap Azure on the front of every name" phase. Same with Azure DevOps.
Now we're in the "Slap Copilot on the end of every name" phase for Microsoft.
I'll give DevDiv credit for not doing that. I don't know if Aspire is useful for me, but it isn't called Microservices Copilot or whatever.
rayray5884@reddit
Despite loosely supporting and Entra instance, I forgot they names it that and had a sudden realization when I said Azure AD out loud and thought ‘that doesn’t sound d right but what did they rename it…oh…Entra.’ 😂
stravant@reddit
If it has a different product name you can bill more for it.
bastardoperator@reddit
Cause they about to entra your wall and take what they want.
nexxai@reddit
wall*et
rayray5884@reddit
Don’t get me started on Team Foundation Server to Azure DevOps. Not saying TFS was a great name but holy hell calling it Azure DevOps made it a pain to Google and also explain to higher ups. 🙄
MechanicalHorse@reddit
Case in point: XBox
lurker_in_spirit@reddit
.NET Framework: XBox One Edition (version 365.copilot)
CallMeCappy@reddit
Not really, .NET Core launched as a move away from the legacy filled .NET Framework, fresh beginning. Then they simplified it to .net after they reached more or less feature parity (without all the garbage like WCF and WebForms). Simple.
.net standard is nothing, just a formal spec of the base libraries that any implementation of .net must adhere to, so unless you write code very close to a framework implementation you can simply target netstandard2.0 and have it work pretty much everywhere. Without this it would have been much harder to develop libraries.
Resident-Trouble-574@reddit
It would have simplified things if .net framework was phasing out.
But they released .net framework 4.8 just one year before .net 5 and .net framework 4.8.1 the same year as .net 7, and those versions will be supported for far longer than this new .net 10 too.
TwatWaffleWanderer@reddit
Because .NET Framework is an integral part of Windows, so they have to support it for a long time.
They should have just stuck with calling the new stuff .NET Core, IMO.
Relative-Scholar-147@reddit
Because millions of lines of code in goverment and medicine run on net framework 4.x.
If they did not support it hundreds of organizations would collapse.
Rayner_Vanguard@reddit
Unfortunately, .Net core launching was quite late, at least in my country
Java already beat them
DasWorbs@reddit
I don't care what MS name it, it is and always will be .net core
schadwick@reddit
Thank your for the succinct explanation. And no kidding, WCF was the lowest part of my software career; if only I could have back all the hours I spent wading through that quagmire of crap...
LeonenTheDK@reddit
Technically it was Framework, then Core, then just .NET. "Standard" I think refers to the common APIs implemented by the base classes of .NET implementations.
TwatWaffleWanderer@reddit
What is today called .NET Framework was always called .NET Framework, but was also called just .NET by everyone.
Then .NET Core became a thing in the mid 2010s. Eventually they decided they wanted to call the old stuff .NET Framework and the new stuff .NET.
But above all, they never should have called it .NET in the first place. Using a TLD as the product name was profoundly stupid.
SkoomaDentist@reddit
It was introduced right after the .COM bubble. .NET was a natural name at the time when you needed to capture the remaining hype without tying yourself into the bubble itself.
Longinus_Returns@reddit
Oh it's actually worse than that, the name .NET was a knee jerk reaction from Balmer to the add campain that Sun was running at the time where their tag line was along the lines of Sun being the "dot" in .com
Marketing had no input on that, it was truly Balmer being Balmer.
TwatWaffleWanderer@reddit
Oh, I know why they did it. But it has caused issues ever since with searching for things.
But what's done is done.
SkoomaDentist@reddit
Bro, you just have to learn how to use Altavista search properly!
atheken@reddit
Idk “go” was pretty ungoogleable.
Halkcyon@reddit
.NET Standard is a target, not a runtime. You mean just .NET.
.NET Framework = 1.0 through 4.8
.NET Core = the 3.x series
.NET = 5 and beyond, rebrand of Core
Jeddix@reddit
I guess they didn't mean the current .NET but the old .NET Framework.
ECrispy@reddit
For people who haven't used VS (not VScode) and .NET tools you have no idea of the integration and productivity.
I haven't done C# for a long time now, moved away to the usual webdev/nodejs/js. This was back when we used Resharper. But even back then the refactoring, reflection, tools in the IDE etc were 10x better than anything in JS now.
Now things must be 10x better.
Kissaki0@reddit
I can confirm, it is much better than it was. VS further improved alongside .NET and C#.
Now, with VS 2026 there's a big AI Copilot push. It's optional but integrated. We will see if that has any negative effects. Outside of some initial popover and release notes noise I don't think it does nor will have a significantly negative impact. The inline-completions you can use without Copilot is and was already great.
Soonish, I'll be able to use Copilot on a customer project. I'm skeptical about productivity gains in terms of code generating or solution development, but I'm interested in those nevertheless, and especially what it can provide in terms of analysis, integrated responses, etc.
ExeuntTheDragon@reddit
Except for those of us who hope to maintain backwards compatibility, which .NET Core doesn't offer.
bloodwhore@reddit
Upgrade :)
ExeuntTheDragon@reddit
You do realize the lack of backwards compatibility is why we struggle to upgrade, right?
doteroargentino@reddit
You've had 10 years to upgrade, be grateful that framework is still supported and you haven't been forced to do so...
ExeuntTheDragon@reddit
It feels like we're speaking different languages. .NET Core is not backwards compatible with .NET Framework, there are runtime differences that matter to our customers. "Just upgrade" isn't helpful.
Byte-64@reddit
I am genuinely lost :( I always thought .Net Core was only a temporarily replacement until the move to cross-compatibility is done, resulting in .Net and .Net Framework is a still continued branch for pure Windows compatibility? Honestly, there are so many .Nets nowadays, I have no clue what is happening oO
tankerkiller125real@reddit
.NET Core got renamed to .NET, just .NET, it's the cross-compatible one (and has been since it's original 3.0 release)
.NET Standard was the middle ground one between .NET Framework and .NET Core (and is still used for libraries that need to function on both .NET and .NET Framework)
.NET Framework is the legacy crap one that only supports Windows.
TwatWaffleInParadise@reddit
Gotta love how terrible MSFT is at naming stuff. Even folks on the livestream today were still calling it .NET Core because it's explicit that it is different from Framework.
rebbsitor@reddit
It's like Copilot. It's the name for:
TwatWaffleInParadise@reddit
And they're all completely unrelated aside from being AI.
tankerkiller125real@reddit
I will admit, even I mostly do something like .NET (Core) when referring to it.
TwatWaffleInParadise@reddit
I just call it .NET Core. Calling it .NET is just too ambiguous sicne we all called what is now .NET Framework ".NET" for 15+ years.
Maybe in 5-10 years .NET Framework will have receded into the background more and people will default to thinking about ".NET Core" when I say .NET at work.
To be fair, I work somewhere that is only just now starting to use .NET. All our existing stuff is ASP.NET 4.7. I only recently joined, so I'm not sure why they aren't on 4.8.x.
Thankfully, my task is rewriting the apps to use the new stuff. .NET 10 + Blazor. I'll let you know in a year or so what I think of Blazor. I've been a big fan of since Steve Sanderson demoed it as a "look at how cool Web Assembly" is back in like 2017, but I've never had a chance to use it in production apps.
doteroargentino@reddit
.NET Framework is the original Windows-only version
.NET Core was the initial name of the cross-platform open-source version that was released in 2016, which was later renamed to just .NET
pvecchiato@reddit
I'm sorry but .NET framework and .NET (.NET Core) are separate frameworks. There is no upgrade path, never has been so there is no backwards compatibly.
MS made a well applauded decision to move to multi platform supported framework instead of windows centric. You can choose to continue using .NET framework indefinitely. MS has no EOL date for NET framework.
You can choose to migrate or not. There are ways to bridge the frameworks (.NET standard). This has been the case for 10 years,
ExeuntTheDragon@reddit
I'm well aware they are entirely separate, but Microsoft's marketing pretended .NET 5 was the big unifier and it just ... isn't. This is why I'm objecting to the "just upgrade, lol" commentary.
admalledd@reddit
Well, WinForms has been compatible in multiple methods, including parallel-process since netcore 3.1, with MSFT saying "start planning to migrate, here are some guidelines to prep..." since 2019
Do you not have even one dev you can have work on doing any of the multi-targeting and strangler pattern over the years? That's what we've been doing, and we expect to complete our monolithic move by end of next year, with only us three devs total ever having spent effort on it while between client dev work.
thesituation531@reddit
It's the "big unifier" because it's actually cross-platform now.
There was never going to be an easy migration from an unashamedly Windows-only runtime to a cross-platform runtime.
grauenwolf@reddit
Last weekend I upgraded a .NET Framework WPF application to .NET Core. The only thing that didn't carry over was a Windows-native UI for configuring OleDB/ODBC database connections. And technically I wasn't supposed to be using it in a 3rd party application anyways.
doteroargentino@reddit
I'm aware it's not backwards compatible. Now let me ask you, how often do you see people complain about python3 not being backwards compatible with python2? At some point tough decisions need to be made for the greater good
ExeuntTheDragon@reddit
Er, for the first ten years, quite a lot? Python3 was, what, 17 years ago now? Quite a bit more than the six years since .net framework 4.8.
tanner-gooding@reddit
There isn’t a lack of backwards compatibility. Strong back compat remains a core tenant and overall true
The vast majority of code and logic remains backwards compatible. In many cases you can simply take existing .net framework binaries, directly run them on modern .net, and they just work.
There were some binary breaks for legacy and often broken tech stacks that you really shouldn’t be using on .net framework either
There are some behavioral breaks due to much needed bug fixes where your code is likely broken on .net framework
There were then some intentional rewrites for higher level frameworks like asp.net core. But that isnt the majority of code/logic or how users tend to think about C# code. It’s a factor that impacts some apps and is really no different than you found between version bands of .net framework (v2.0 vs v3.5 vs v4.0 vs v4.5+)
KorendSlicks@reddit
You don't mind me asking how bad the incompatibilities between .NET Framework and Core is?
SessionKooky9028@reddit
AppDomains and ComReferences being removed is what I’ve seen be mainly responsible for preventing projects from moving off framework.
ExeuntTheDragon@reddit
System.Drawing was a major one for us. Windows Forms UIs looking terrible on .net core too (this may have improved, I haven't looked in a while), number formatting uses an entirely different backend with different defaults and since we're in data visualization that sort of thing is kinda important.
TwatWaffleInParadise@reddit
They have apparently put in significant effort to improve the upgrade story in the new release. Those efforts focus on using AI to help with the upgrade, so that's a good or a bad thing depending on your perspective.
Personally, I'm at the beginning of a multi-year effort to migrate from a bunch of apps from .NET Framework using MVC with good ol' jQuery and Bootstrap 3 over to .NET 10 and Blazor. We're doing ground-up rewrites to extricate ourselves from jQuery and the spaghetti code the folks who wrote those apps, which I'm definitely not among them /s.
Thankfully, .NET Framework isn't going away anytime soon, so you've got time.
But it could be a lot worse. Microsoft-focused developers 20 years ago were grappling with migrating from Classic ASP to ASP.NET which absolutely required a ground up rewrite and generally required switching from Visual Basic to C#. Heck, we've got a few of those Classic ASP and Web Forms apps still knocking around that will be getting rewrites finally.
michael0n@reddit
I know a cloud shop with tons of Azure customers. They went with C# for all their tooling, they have zero issues finding people. Their biggest competitor in the same space uses whatever the current team can do, which is a sometimes a wild mix.
We use Java+Angular on the enterprise side, but we never got warm with Golang for our cloud tooling. I was not surprised when I saw of some of the golang/php dashboards moved over to asp with with Vue. They are currently deciding if the refactor a couple of internal tools from (whatever) to C# and I see tons of people who are usually quite opinionated having way less reservations about that.
TwatWaffleInParadise@reddit
Yeah, I've been doing C# for 20 years now, though with a 5 year dalliance with JavaScript.
My current gig is firmly a Microsoft shop. I had no problem getting GitHub Enterprise and GitHub Copilot approved (they mostly use TFSVC with on-prem Azure DevOps currently), but I would never have even broached the subject of Cursor or Claude Code or anything.
We're migrating from on-prem to Azure as AWS or GCP was never even a consideration. I'm fairly confident this is a common story in the Enterprise world, but hey, it pays the bills.
ExeuntTheDragon@reddit
Yes, well, we've got a desktop application that's been in active development for 20 years with a gazillion winforms UIs and various other windows-specific stuff that either works differently or doesn't work at all on .net core :/
TwatWaffleInParadise@reddit
Fair enough. It's a Windows App, so you're probably best off just staying on Framework for now.
But you could always reach out to the .NET team and let them know about the difficulties you're finding. Maybe send a developer to a conference some of their folks will be at so you can spend some time chatting with them.
They're just normal folks like you and me.
bloodwhore@reddit
At this point there isnt much i can say. You had years to move over. You missed soooo many patches.
Tell your claude code to refactor and give it 1 week. Xd
RedEyed__@reddit
And F#
1668553684@reddit
F#'s intended goal has always been "make functional programming practical," and I think it does a fantastic job of that. I think tying it to Microsoft and kind of forgetting about it is what is killing the language. It's quite sad.
Mysterious-Rent7233@reddit
Most languages fail, so being NOT tied to Microsoft would reduce its chances far more IMO.
sliversniper@reddit
Probably worth researching about this topic.
Microsoft: Typescript, VSCode.
Microsoft: C#/F#/... - dotnet.
Google: Go - GRPC
Apple: Swift/Objc
Jetbrains: Kotlin
Some are far more popular than others.
1668553684@reddit
F# definitely needs Microsoft money and resources, I just think it would be better off without Microsoft's direct input. Of course Microsoft would be less likely to agree to this arrangement, I think it would produce a better language and net them a better product in the long term.
phillipcarter2@reddit
Do you have any particular missteps from Microsoft regarding the design and direction of F# in mind?
Since about 2012 or so it's been quite community-driven, something we ramped up a bunch in 2016 when I worked on the language and has since accelerated with the F# team circa ~2022. The bulk of work in the language and core libraries is very un-fun, keep-the-lights-on, update-the-god-awful-test-system type of work and it's usually the community who gets to do fun stuff like add new language or tooling features.
My personal belief is that the association with .NET and its association with Microsoft is what causes it to ultimately never break out, much like how C# and .NET have never really broken out of the "microsoft shop" world too. IMO no amount of different language features or runtime support will change that.
1668553684@reddit
It's not a misstep so much as I think Microsoft has put them in a spot of being the only people who could really advocate for F#, but failing to advocate for F# in favor of their other projects (mostly C# and MSVC++). The result is that F# is kind of the forgotten middle child.
ShacoinaBox@reddit
it is an absolutely beautiful language, Flix is similarly beautiful (esp given it's jvm lang!) but def more idealistic. at least it makes "more pure" fp more accessible tho :) like an easier Scala cats.
jeenajeena@reddit
TIL about Flix. Interesting features, especially the way it handles effects.
ShacoinaBox@reddit
it's beautiful, hopefully I can spread the word in my own small way
ArdiMaster@reddit
Yeah I’ve actually been told off (more like shouted down) by some OSS purists for using a “Micro$hit language” and that I should port the program in question to a “truly open language” and I’m just like ??? no?
(I’m just here to make an old .NET Framework desktop app cross-platform. I’m not porting 40k lines of spaghetti code to anything.)
DrexanRailex@reddit
Agreed. The only thing that pushes me away from C# today is that it's a Microsoft product and Microsoft wants to force Azure onto C# developers.
I low-key would love if MS abandoned F# and it became (purely) a community effort, completely free from Microsoft's poor business decisions.
nO0b@reddit
[citation needed]
DrexanRailex@reddit
I don't have any reference other than this, but hasn't Identity become fully integrated with Azure Entra in the recent versions?
simonask_@reddit
No, the only thing holding back C# is the atrocious community library situation. Coming to .NET from Rust, I find myself avoiding nuget packages way more than crates. So much abandonware.
michael0n@reddit
Since we moved away from Angular to vue, half of our npm meme problems went away.
C# CLI apps doing file+json+filesend+ssh stuff is remarkably low on dependencies and the build is rock stable.
simonask_@reddit
Yeah, but I do think comparing with NPM is setting the bar very, very low.
adamsdotnet@reddit
To begin with, the standard library covers the most part of what you'll ever need. So you're not being hit with supply chaon attacks every other week like using NPM.
Then there are a shit ton of community projects. Might not be as many as for Java or JS, but the important stuff is covered, and .NET libs also tend to be of higher quality.
For the very few other cases, .NET's strong interop story gets you covered.
simonask_@reddit
Yes, in fact I’m working on something that uses the very excellent interop in newer .NET to call into Rust with almost no overhead. C# is excellent here.
But the community sure feels like a ghost town in comparison, that’s all I’m saying.
Sethcran@reddit
I'm not entirely sure I understand. Yes abandonware exists, and yes there aren't as many third party libs as say js, but there's still multiple choices for pretty much everything, and it's not like everyone maintains all rust crates they put out either.
tankerkiller125real@reddit
Just because it doesn't get a release every week doesn't mean it's abandoned. Maybe if it hasn't been updated in 3 years and depends on SDKs that have had many updates in that time it's abandoned, but if it's written in .net 2.0, and is independent, why should they be constantly releasing new shit and garbage.
FalseRegister@reddit
I will get downvoted, but I could never deal with the brackets on new line
Sethcran@reddit
Then don't put them on a new line?
C# doesn't care.
Luisetepe@reddit
Half Microft, half being fed up with enterprise-like projects "a la Java" where you have to worry about the hundred of interfaces, patterns, etc... than the actual project you are making. it is not maybe the language's fault, it is not inherently forcing you towards that more than, lets say Go or Typescript. you jus see way less bullshit like that in those other languajes.
TwatWaffleInParadise@reddit
Yeah, I vastly prefer the shape-based type system of TypeScript over the interface-based type system of C#.
But understanding the history of the language helps explain why it is the way it is. They basically asked Anders Heilsberg to create "not Java but it's Java."
S3Ni0r42@reddit
I always laugh when I see the "interfaces" pattern come up about Java because at my current company it's the .NET team following that pattern while the Java team only extracts interfaces from classes when a second implementation actually comes up.
bbkane_@reddit
Ohh Typescript has its own capacity for bullshit...
Otis_Inf@reddit
Microsoft owns Typescript, visual code, npm and github. I don't think the name 'Microsoft' is causing it not to be successful.
beyphy@reddit
TypeScript and NPM are insanely popular and both are tied to Microsoft
HavicDev@reddit
It is still fair, unfortunately. Microsoft tried to remove hot reload from every OS and IDE except Windows and Visual Studio not too long ago. Microsoft still slips up sometimes and tries something weird every now and then.
tankerkiller125real@reddit
It feels like they have some internal project managers who have numbers to hit that push the .NET team to make something happen for only a Microsoft product, the .NET team does it, the community hits back with backlash, the .NET team goes back to the other internal groups and says "Can't do it, too much backlash that could kill this whole thing", and then come back and make it available to the community.
It's annoying as hell, but it's a huge company, so it's kind of, somewhat understandable, hopefully though now that .NET has more and more stuff to point to as "This shit won't go down well" it will happen less and less.
TwatWaffleInParadise@reddit
That's definitely what happened. I know several of the folks in leadership positions for .NET and Visual Studio.
They fucked up. The community let them know it, and they did their best to un-fuck it.
They're human beings. They make mistakes. Thankfully they backtracked.
DesiOtaku@reddit
MS did technically put the .NET / C# under the MIT license. But with that MIT license, it doesn't prevent them from doing the typical Embrace, extend, and extinguish strategy that kept them on top for so many years.
I actually used Mono way back when it first came out and it was a real issue trying to get a proper cross-platform .NET application to work because MS kept in adding small "bugs" to their implementation that would make it difficult to have a single codebase for both MS Windows and Linux.
Goodie__@reddit
I feel like it wasn't entirely fair maybe up until the last 4 years with the release of 11.
Hell I could ignore the shit show that was 11s initial launch, but it just keeps getting worse, and now shovelware ads AND ai? Fuck off.
kur0saki@reddit
and if it wasn't proposing Allman Style :D
kukeiko64@reddit
Clicking "Reject" on the cookie banner causes
This is hilarious
dr_Fart_Sharting@reddit
Turn on cookie filter in uBlock and you won't see another one of those bastards.
AlyoshaV@reddit
I use Consent-o-Matic, it auto-rejects most cookie banners for me so they can't just assume I said yes
3dGrabber@reddit
This won’t really protect you. When you reject cookies, most sites will still send your fingerprint and data to their advertisement/surveillance “partners”.
this is what we got from AlyoshaV. Btw, he told us he does not want that data be used for targeting purposes
syklemil@reddit
Yeah, same. I like that it actually lets us set some general policy, like
1668553684@reddit
I just set FireFox to auto-delete cookies after my session, except from sites which I whitelist. This way I can click accept on whatever to get it to go away quickly without the site actually setting any cookies.
WeeklyCustomer4516@reddit
Aceptar todo y olvidar, cookies fuera al cerrar.
lunchmeat317@reddit
Sage and trustworthy advice, dr_Fart_Sharting.
RobertJacobson@reddit
What's the cross-platform GUI story in C# these days? Can anyone give me the TL;DR?
Atulin@reddit (OP)
First party: MAUI, has some issues, runs on mobile and desktop except Linux
Third party: Avalonia and UNO, both run on all platforms including web
KorwinD@reddit
I have no idea why Microsoft decided to not support Linux. MVVM and XAML are superior to anything else and it would became a competitor to GTK and Qt.
thats_a_nice_toast@reddit
I think XAML is horrible. The amount of code you need for basic things is just mind-boggling. To be fair though, I've only used WPF, and it seems more pleasant in other frameworks like Avalonia.
equeim@reddit
They admitted defeat on the server front (which is why they ported non-GUI parts of .NET to Linux), but will hang on to desktop Windows until their last breath. They will do nothing to aid porting Windows GUI apps and games to Linux.
KorwinD@reddit
Are they stupid? We can split linux apps into two groups: ports and native programs. Wine and Proton exist and successfully run ~95% windows apps and games. That means their decision not to bring UI framework to linux hurts not developers of apps from the first group, but original linux devs who possibly can be lured into .NET ecosystem by the good alternative to Qt and GTK.
Devatator_@reddit
Funnily enough Avalonia is working on a way to run MAUI apps through an Avalonia backend, which will enable you to run your MAUI apps on Linux, tho I assume things like webviews and others won't work
admalledd@reddit
Basically just Avalonia, not worth bothering with anything else. The first-party MSFT ones are looking likely to be abandoned (again) and replaced by some other MSFT thing (again, last time was WinUI3...).
Avalonia actually works on all platforms for real, and if you are in a pickle (or your company requires it) has paid support that is pretty decent.
krokodil2000@reddit
Does 10 replace 8 or do you need both versions installed?
masiuspt@reddit
8 and 10 are separate LTS versions. Before 10 there was 9,which is STS. You can have both net 8 and 10 runtimes and/or SDKs and work with whichever you want.
I recommend bumping to 10, though, to stay on the latest LTS.
krokodil2000@reddit
If I run some .Net application, will it automatically use the latest installed .Net runtime and not nag that it requires some specific version?
masiuspt@reddit
It will depend on the dotnet version the application was compiled on. The major exception is if its an application that is self-contained, as those will usually contain the runtime packaged with the software!
Zomunieo@reddit
Soon everyone will be forced to migrate to 11.
krokodil2000@reddit
11 is not LTS. 12 will be.
c1uckiewastaken@reddit
i believe it was a windows 11 joke
jdehesa@reddit
Three years is LTS in .NET? I guess (I really don't know) it's not a platform with particularly problematic upgrades, but still, that doesn't seem like a lot.
treehuggerino@reddit
It isn't a lot, a month ago they announced that both STS and LTS will get 1 extra year of support, the initial strategy was to encourage people to upgrade their framework most companies still have really ancient dotnet framework 4.6 - 4.8 running and supporting that is a hell.
In most cases upgrading dotnet is as simple as changing the version number, upgrading dependencies and tadah fixed, it can even be done using the CLI now.
It's confusing but it is to protect some project managers from themselves
Smurph269@reddit
Framework 4.8 still has a longer support timeline than this new release, calling 3 years LTS is a joke. I think if MS were to announce a proper LTS release with like 8+ years of support, everyone would drop 4.8 for that. I get that upgrades aren't a big deal for cloud apps, but if your software needs to run deployed at customers and without people touching it for years, 4.8 is still your best option.
treehuggerino@reddit
I will hardly disagree, 4.8 is a slow joke, I've been around the rodeo of coworkers telling me this exact same half truth of "4.8 is supported till 2030 something" but the support is close to none. For the use case where code shouldn't be touched for years there are special support deals for that so they are supported for longer.
4.8 is never and will never again be a good option
Smurph269@reddit
It looks like MS stopped offering extended support for .NET versions, they only offer it for OSes now. The only option is to go third party, which while I'm sure the support is good, it will be a pain explaining to some giant corporate customers that support from a third party firm is as good as MS support. If I'm wrong, I'd love to learn otherwise.
deja-roo@reddit
AI is so efficient at making tests that I actually feel confident in just upgrading the versions, seeing if the tests pass, and if they do, we're all good.
Ramuh@reddit
We migrated from 4.8 to 6 a year or two ago, which was a bit of a hassle. 6 to 8 was more or less change net6.0 to net8.0. We’ll upgrade to 10 next week and I don’t expect any issues
masiuspt@reddit
You should expect atleast some minor breaking changes (e.g. WebHost is deprecated on 10, you can just use IHost) but it's honestly not that much of a hassle to work with. Dotnet Core has been lovely to upgrade.
xurdm@reddit
Yeah, migrating between generations will be a hassle but once you're just migrating to newer versions within the same generation it's trivial
TwatWaffleInParadise@reddit
Yeah, I think .NET has finally settled down and isn't having major changes like it did back in the .NET Core 2/3 days. Upgrades should be just updating csproj files at this point.
One_Economist_3761@reddit
Hope they haven’t jammed AI features into it like every single other software product imaginable.
AlexKazumi@reddit
They did. A significant part of the presentation was focused on prerecorded (I wonder why) videos of "agentic" stuff.
Still, one can ignore the bullshit and enjoy the very solid framework and ecosystem.
Devatator_@reddit
Hell all of the AI stuff in .NET are packages like Microsoft.Extensions.AI of SemanticKernel.
It's also in the IDEs but iirc you can disable it
Rayner_Vanguard@reddit
Too bad, in my country, Java and Golang are more popular
Not much job opening for .Net anymore, at least compared to 10 years ago
bring_back_the_v10s@reddit
Java is awesome.
michael0n@reddit
Java I get, but if I check some European specific job sites, golang is way below C# offers. Go is quite limited to cloud stuff while C#/Net seems to be across industries.
Rayner_Vanguard@reddit
Yeah, but in Indonesia, Golang is quite popular with Tech Startups and other tech companies
Java is used by banking and financial corporation (and a lot other big corps)
PHP (yeah, I know, but it is what it is) is popular with small company or non IT company
.Net used to be popular in big corporation, unfortunately, Java beat them.
Lots of reasons, like almamater influence, server cost (.Net used to work only on Windows Server)
Technical-Coffee831@reddit
Been enjoying it myself :) was a pretty smooth release.
Valevino@reddit
What's the recommended method to install the .net on Ubuntu? The manual install using the script works, but it's not prepared to handle or switch between different .net versions.
Atulin@reddit (OP)
https://learn.microsoft.com/en-us/dotnet/core/install/linux-ubuntu-install?tabs=dotnet10&pivots=os-linux-ubuntu-2404
apt-getfrom theppa:dotnet/backportsrepository, it seems