I was experimenting with creating new projects out of templates in VS 2019, and to my surprise ran into a lot of trouble and error messages.
One time it told me Docker Desktop is not installed (it was) and insisted on installing it. The other time it told me it cannot debug the Linux containers, I forget why. Then after a restart this problem went away. Another time it told me it cannot debug, because “Shared Drive” settings were wrong. I am not sure what really happened there, but it looks like Linux-to-Windows switch timed out and Docker Desktop was stuck in some weird state, half-Windows, half-Linux, but no error was reported on that.
On some previous project I was not able to make HTTPS to work and gave up on it, since it was a throw-away test. Overall feeling is that there are too many moving parts, and as with any new development error handling is not the best, even though the authors definitely make an effort. E.g. it did not simply say “remote_debugger directory not found”, it said “the container does not contain /remote_debugger directory, and this is probably because your Shared Drive settings went bonkers, go to the Docker’s Shared Drives settings page and fix them”.
But still, I expect things just to work out of the box, and they more often don’t than do. Yes, restart-reboot-reinstall usually helps, but it is still a pain. Probably this is because I was moving quickly from project type to project type, and this is not a typical use case, but this is not an excuse either. The bottom line is, more stability would not hurt.
Microsoft is not very serious about supporting Linux.
Which is not surprising, considering that Microsoft charges for Windows hosting/licenses, but cannot, really, charge for Linux.
So Microsoft pretends that there is a possibility to run C# (.NET) on Linux. But that is not a very practical choice in most situations.
Multiple edge-cases will be broken in .NET Core:
1) No full multi-threading support.
2) Reduced debugging.
3) Updates and patches will be lagging behind (at least occasionally).
I do not completely agree with you assessment. Some of these bugs come from Docker, others have nothing to do with Linux. On a separate note, MySQL suport for dotnetcore is not done by Microsoft, it is open source, and it also has issues.
Microsoft seems to be quite serious about integration with Linux, perhaps they gave up on desktop Windows sales and changed the business model. My hunch is that the bugs stem from the complexity of modern software, which contains of dozens of moving parts developed independently by teams from different companies, or even by open source enthusiasts for free, and the emphasis is on quantity and time to market rather than quality.
> My hunch is that the bugs stem from the complexity of modern software
But then company may choose to identify and fix these bugs… or not.
> Some of these bugs come from Docker
Why do you try to use Docker then?
Docker gives me ability to deploy the application on any machine with one command
> deploy the application on any machine
Do you mean – if a machine has Docker installed on it – then you can install your application on that machine with a single command?
Alternatively, you may create a script that will deploy your application to any machine [with a single command].