Я изучил программирование для Windows с помощью Visual C++ и Win32 API. В настоящее время кажется, что большинство приложений разрабатываются в .NET с использованием C#. Я понимаю, что в большинстве случаев между нативным кодом и управляемым кодом нет большой разницы в производительности. Поэтому мне интересно, если бы я начал писать новое настольное приложение сегодня, есть ли какая-либо причина (кроме того факта, что я лучше знаком с C++), что я мог бы вместо этого написать его на неуправляемом C++ .NET? Есть ли еще какие-то преимущества в использовании C++ и нативного кода? Или этот метод был более или менее заменен на .NET на платформе Windows?
Конечно, я знаю, что люди, которые пишут низкоуровневые драйверы устройств и подобные программы, не стали бы делать это в .NET. Я спрашиваю со ссылкой на типичные клиентские приложения, которые не делают прямых аппаратных вызовов.