Live data from Hacker News

.NET 5.0

devblogs.microsoft.com

221–230 of 466 posts

Re: .NET 5.0

#221

F# gains string interpolation and typed string interpolation: https://devblogs.microsoft.com/dotnet/announcing-f-5/#string... Knew it was coming but still really happy to see this.

These changes are huge! I'm interested to see what I can build with computation expression overloads

Re: .NET 5.0

#222

I used to be an asp.net developer before. I appreciated the idea behind asp.net during its early years - making websites fast and with templating (or scaffolding). Later realized that it is bloat. Then asp.net mvc happened, a whole new paradigm shift. But then I disliked the idea of stuff getting inherited from somewhere. *.cshtml files and all. Soon I realized what the ide is actually doing behind the scenes. For e.…

> But I wish stuff was as simple as having a plain editor and getting started.

This is the wrong thing to wish for.

It's like... wishing for "simpler times" of the pre-modern era. You know, the simpler times without dentistry and plagues that make COVID look downright pleasant. Simpler times of backbreaking manual labour, shovelling ditches by hand.

A typical computer can now process 10 billion general-purpose instructions per second. It is a power tool for the mind. Its entire purpose is to eliminate manual labour.

The fundamental concept of computerised information technology is to automate away the processing of information as much as possible.

If you don't get this, then you don't get IT at all.

There is nothing at all good, or somehow more "pure" about programming with Notepad, or VI, or whatever text editor you fancy.

This is like turning off the million dollar backhoe, stepping out of the cabin, and digging the ditch with your hands because you feel that it brings you "closer to the dirt" or something.

Re: .NET 5.0

#223

Earlier quoted context omitted.

> [Async has] Huge disadvantages with absolutely zero performance gains for 95% of programmers. One curious thing is that Java has elected to use lightweight threads instead of async methods: https://www.javacodegeeks.com/2019/12/project-loom.html Their arguments are compelling: - Works with existing debuggers and debugging techniques. - Stack traces aren't polluted with irrelevant garbage. - Doesn't create method ap…

- Cannot interop with other languages/VMs that do async differently. The nice thing about promise-based async is that it's very easy to map to straight C ABI callbacks, which means that it can be fully cross-language. Green threads are runtime-specific.

"Cannot" seems a bit harsh. CompletableFuture isn't going away, and is made for callback situations.

With green threads being "free" (you can have millions), it might be reasonable to just block your green thread until the callback arrives.

Re: .NET 5.0

#224

Earlier quoted context omitted.

> From the previous version of .Net Core only. Which is already three major versions ahead off classic .net. You’re literally complaining about making upgrades past four major releases not being drop-in compatible. Can you show any other stack which has made such strides to modernise and maintain better compatibility?

No, I'm literally complaining about the misleading messaging surrounding .Net 5.0 "merging" .Net Framework and .Net Core. My post was very clear on that. Like this quote from the linked article: > .NET 5.0 is the first release in our .NET unification journey. We built .NET 5.0 to enable a much larger group of developers to migrate their .NET Framework code and apps to .NET 5.0.

> No, I'm literally complaining about the misleading messaging surrounding .Net 5.0 "merging" .Net Framework and .Net Core.

Yes, it’s kinda cheating. On the other hand it has been obvious since .Net Core 1.0 that this is where the future is going to be.

All announcements before .Net 5 has been clear on the compatibility issues and preparations required, for a couple of years now.

Whoever haven’t been planning this migration can thank themselves.

Calling what is effectively .Net Core 4.0 for simply “.Net 5.0” is just a way to make it completely obvious, even to those not paying attention, that .Net Framework 4.8 is now superseded, and that the upgrade path is .Net (Core). There’s no other option around the corner. Get with the times. Etc.

Re: .NET 5.0

#226

So, on the plus side with the new .net, I recently made a .net core web app on Linux, and generally it's been pretty easy. I'm also impressed at just how fast asp.net core is compared to asp.net, the time it takes to open your site in debug mode has dropped dramatically, from what used to be 1/2 minute in asp.net to a few seconds in .net core. On the bad side? Mainly the asp.net core team and their push for Dependenc…

> My biggest bugbear is the way you access your config, which is an absolute and utter kafka-esque mess. Because someone at MS was drinking the DI kool-aid you have to add a minimum of 5 lines of code to any class you want to access config values in I'm not sure if maybe you're referring to the Options stuff? The way I do it is pretty simple. 1. Create a POCO that represents your config. You can have properties for b…

For other people who are curious POCO stands for "Plain Old CLR Object" So I think just a basic uninhereted object.

Re: .NET 5.0

#227

Note that .NET 5.0 is not an LTS release: > .NET 5.0 is a current release. That means that it will be supported for three months after .NET 6.0 is released. As a result, we expect to support .NET 5.0 through the middle of February 2022. .NET 6.0 will be an LTS release and will be supported for three years, just like .NET Core 3.1.

I believe Microsoft are still recommending people move to .NET 5 though. Unless you're extremely risk averse it seems like a very simple upgrade from 3.1 to 5 and hopefully 5 to 6 next November (which will be the LTS release) is the same.

Re: .NET 5.0

#228
post #203

Earlier quoted context omitted.

> Why would we want that to be synchronous? Authentication is blocked by accessing storage. You cannot proceed until the storage read operation is completed. There is no parallel work to be accomplished here. This isn't UI code. There's no event loop. Why would you want this to be asynchronous? This seems like async as a dogma, rather than as a tool to accomplish something specific.

> There is no parallel work to be accomplished here. Concurrency is not parallelism [1]. [1]: https://blog.golang.org/waza-talk

[deleted]

Re: .NET 5.0

#230

Earlier quoted context omitted.

It won't be. .NET Framework is an embedded component of Windows. .NET Core is something apps have to package along with them. (Due to this, .NET Core apps are larger than .NET Framework apps, but tend to have less compatibility issues in theory, since they bring everything they need with them.)

It also means that the first major vulnerability in .NET Core will be an unmitigated clusterfuck, as admins will have no automated tooling in place to update .NET Core with security patches. "Just recompile with the new version!" I hear the cries already, said by people that have never had to support literally a thousand applications in a government data centre, half of which were built years ago by a vendor that is…

Publish your apps without .net core (--no-self-contained) and install/manage runtimes as you usually would.

If you have thousand apps, you probably also have a CI/CD system and you can gain fine grained control on your runtime management needs with .net build/publish.

MS does quite a few things poorly but they have done a solid job of operating in large enterprises.

Post reply on HN