Hacker News new | ask | show | jobs
by bin_bash 1494 days ago
Biggest downside is you're likely committing yourself to the Microsoft stack and a single vendor for most of your technology.

I don't think it's necessarily the wrong decision but you have to decide if it's right for your project.

3 comments

Dotnet core runs fine in Docker/on Linux?

Most C# apps I've worked on in the last 5 years are deployed to Kubernetes.

fair enough, perhaps I should give it another look
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.

- "It's practically open source in name only" - Here is the base class library source: https://github.com/dotnet/runtime/tree/main/src/libraries or https://github.com/dotnet/corefx/releases (depending on what version you're looking for)

1. https://docs.microsoft.com/en-us/ef/core/get-started/overvie...

If you want to build .NET Core yourself, Microsoft provides you with the steps necessary to do so here: https://github.com/dotnet/source-build

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.