I'm really interested in using .NET Core 2.x to write multiplatform programs in C#. I'm already into an experiment where I monitor and control processes using System.Diagnostics.Process.
That said, I believe I'm already working on a critical use-case, since it may be easy to require system-specific procedures that .NET Core still can't expose to the developer. It is still a concern without any practical case, but I'm thinking of tasks like:
- Getting the number of physical+logical processors (on Windows, one should use WMI, that I don't believe it is available in .NET Core to do the same on MacOS/Linux).
- Creating the memory dump of a crashed Process (OS-specific calls may be needed?)
- In general anything that it is usually accomplished by C++ calls that are native to a specific OS
So I'm wondering how to approach these "future" issues. Is .NET Core / C# still a valid solution for my needs? Or is there a way to invoke OS-specific calls on a .NET Core 2.x project?
Note: for external reasons, I'm currently limited to use .NET Core 2.x branch, not 3.x.