Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

My understanding is that with .NET Core, the experience of developing and running on Linux is on-par with Windows(?). However, my impression is that once it comes to building web services, ASP.NET has more "windows-specific" assumptions/moving parts - can someone knowledgeable on this correct me if I'm wrong?


Any .NET NuGet packages targeting .NET Core/.NET 5+ without the -windows TFM will run on any platform that CoreCLR runs on. ASP.NET 6 is no exception. There is nothing Windows-specific in there any longer, and there hasn't been for quite some time. ASP.NET now runs by default on Kestrel, Microsoft's cross-platform web server.


> Any .NET NuGet packages targeting .NET Core/.NET 5+ without the -windows TFM will run on any platform that CoreCLR runs on.

I got sleepy just reading this. There's just so much fragmentation and frameworks and different versions of frameworks and web-servers... can't Microsoft just let the .NET be and let them do their thing? They have certainly pumped out loads of amazing software that seemed to get a knee on the guts by higher management.


In fairness that is what they have done. .NET Framework is dead, .NET Core is "dead" (to clarify: .NET Framework dies with .NET 4 and .NET Core/CoreCLR is .NET 5 and above).

Mono is a cross-platform (ish) implementation of .NET Framework, but its future is (eventually) to be replaced with the main .NET which is now based on the cross-platform version (.NET 5 and above, which is currently distinguished from Framework by continuing to call it ".NET Core"). Mono and .NET Framework will fade away once Unity gets their act together and moves on from it.

tl;dr: .NET 5 and above are, for all intents and purposes, the only future path for .NET, but we're in a transitionary period right now.


Note that Mono, the framework, is indeed dying. But Mono, the runtime, is now part of .Net and it's an alternative to CoreCLR, used for things like Xamarin/MAUI and Blazor.

Though most of the time, you don't need to know any of this, you just use .Net and it works on Windows, Linux, Android, Apple and in the browser.


You can also use the .NET CrossCore assemblies (available since .NET Framework Core 4.777.2.1) and do multi-targeting for ASP.NET Core (the Framework version of ASP.NET Core, not the Core version which since version 5.0 is incompatible). Using ASP.NET Core 6 (the new name of ASP.NET 4.2) you can also target Linux if you compile with the flag /fuckallthatshit


I have ton of experience with ASP.NET Core and have not had that impression in the slightest.


You're wrong. Everywhere I've worked the general pattern is to build using Windows/Linux and deploy entirely on Linux (or Docker).


The only parts that are noticeably Windows-centric are some of the tools around .NET. The older tools are Windows-only, you can't get Visual Studio on Linux.

For ASP.NET there is nothing Windows-specific in there I've noticed.


- Ignore all the DotNet version names and numbers unless you're working on legacy stuff.

- If you're starting from scratch all you need to know is that you should use DotNet 6+ and you'll be on the mainstream track with full cross-platform support.

- Nothing is Windows-specific unless you're actually wanting to target Windows stuff specifically.

- If you're doing desktop dev MAUI is the way forward, but personally I don't trust Microsoft with desktop stuff any more (too much switching and deprecation over the years).


Thanks - I was actually more confused by the comments as I'm a total beginner to .NET (just interested to learn). This sounds like a more simple/distilled advice in my context.


There's no issues with Windows specifics in /ASP\.NET( Core)?/ version >= 5.0.

There's some issues if you need to use an older version of ASP.NET and whether or not it has "Core" in the name, but after .NET 5 and ASP.NET 6 there's no longer that fork to confuse things and it's back to much simpler version numbers/checks and no longer needing to worry about the word "Core".


I wouldn't call it on par. But it has been getting better. Developing on Linux still isn't great (I vastly prefer Visual Studio over VSCode for .NET), but might be good with the Rider IDE, which I haven't used. Running it has come a long way, but there are still some annoyances left. I'd still say that it is good, though


FWIW, I’m on Windows and still prefer Rider over VS


I run all my .NET core apps containerised in Linux. Works the exact same as on windows


There is nothing in ASP NET that is more “windows specific”. Since its inception, I have used these scenarios and they all worked without flaws:

Windows -> Linux

WSL -> Linux

WSL2 -> Linux (Its real Linux)

macOS -> Linux

All of the scenarios were deployed to AWS.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: