C ++ / CLI никогда не предназначался как язык общего назначения.Он в значительной степени существует только для целей взаимодействия.
Если у вас есть библиотека C / C ++, которую вы хотите использовать в своем приложении .Net (будь то собственный код или что-то вроде WinAPI), C ++ / CLI являетсяхороший способ создать управляемую оболочку для этой библиотеки или полностью написать приложение целиком, если это не так уж много работы.
Кроме этого, вы, вероятно, должны использовать C # (я думаю, что это мало что даетсмысл учить VB.NET, если вы уже знаете C ++).Другие альтернативы - F #, если вы думаете, что ваше приложение выиграет от функционального стиля.Или IronPython (или IronRuby), если вы думаете, что выиграет от динамической типизации.
И, конечно, вы можете смешивать языки, если часть приложения будет лучше в одном из них, а другая - в другом.
Еще одной причиной, по которой вообще не используется C ++ / CLI, является его слабая поддержка в VS (без IntelliSense) и способность C # взаимодействовать с собственными библиотеками DLL с помощью P / Invoke.
Для повторения используйтеC ++ / CLI, если вам нужно взаимодействовать с собственными DLL или уже написанным кодом C / C ++.Для других задач вам, вероятно, следует использовать C #.