100% inaccurate/outdated (by 5 years) info. I've run .NET Core applications on Linux/Docker/K8s + Postgres. The only Microsoft 'stack' there is .NET itself.
.NET Core is still absolutely designed to nudge you into the MS stack.
- EFCore is MSSQL first, even if other options are provided
- Many libraries ship with two implementations: an over-engineered Windowsy version that barely works (with a big scary warning that it should never be used in production), and a thin wrapper around some Azure service
- Important tooling like the debugger (which wouldn't be so necessary if .NET had halfway decent support for printf debugging, but here we are...) is locked to be compatible with VS and (MS' build of) VSCode, despite both of them using supposedly open (and Microsoft-pushed!) standards like DAP
- The community is really culty, the response to "X is broken when using the non-MS-Stack alternative" always seems to be "well use the standard MS solution then"
- It's practically open source in name only, because the build engineering is so convoluted that it's nearly impossible to find the canonical source code of core features like the standard libraries
- EF Core is not MSSQL first. EF Core is an abstraction layer and is in no way tied to Sql Server. In fact, Microsoft's own getting started tutorial uses Sqlite (1). I've personally used the Postgres drivers in production and they are as good/production-ready as Microsoft's SQL library for EF Core.
- "Many libraries ship with two implementations..." I've yet to come across these "many" libraries in the 5 years since I've been building services with .NET Core.
"The community is really culty" - I'm not sure where this is coming from. It's hard to refute such vague criticisms.
Maybe our definitions of open source are different, or maybe you're just shitting on Microsoft for your own reasons. Regardless of whatever your experiences have been with .NET in the past, they don't mirror the majority of the folks that use it everyday.
.Net Core is universal platform. Our API servers run .Net Core exe’s on Ubuntu behind NGINX. Full AWS stack, some Google Cloud and Mongo Cloud services internally. I don’t think we even have an Azure account.
Still a lot of Windows baggage with C#. It's changing, but I think most c# devs are still learning fundamental unix and docker stuff. So you'll get an overhead with C# too, just not in technical performance.
Source? As a .NET developer I can tell you that there are plenty of us with Linux/Docker experience. There is zero Windows baggage with C# in .NET (Core). Your information is out of date.
> Projects making use of Sitecore, Dynamics, SharePoint, SQL Server CLR,
What projects? None of those are forced on you or have any references to them built into .NET Core. I've been building .NET apps since 1.0 reached beta (in 2001?) I can count on one hand how many times in total that I've worked with those systems. This argument is a hell of a reach.
> GUI frameworks out of Redmond
The upcoming Microsoft MAUI is cross-platform (no, Microsoft isn't building support for Linux, but there are open source efforts working on it.)
Switched from a career of a windows/.net/c# to a max/ruby/js shop. Docker skills transferred. Had to learn Unix commands but it didn’t feel much different from cmd/powershell
I don't think it's necessarily the wrong decision but you have to decide if it's right for your project.