¿Cuáles son las situaciones o las ventajas y desventajas del uso de C ++ / CLI sobre C #?

He estado manteniéndome al día con .NET CLR por un tiempo, y mi idioma de elección es C #.

Hasta hace poco, desconocía que C ++ / CLI podía producir ejecutables de "modo mixto" capaces de ejecutar código nativo y administrado.

Ahora, sabiendo esto, otro amigo desarrollador mío estaba discutiendo este atributo y tratando de determinar cuándo y cómo sería útil esta habilidad.

Lo tomo como un hecho que el código nativo tiene lacapacidad para ser más eficiente y poderoso que el código administrado, a expensas del tiempo de desarrollo adicional.

En el pasado, recurrí a bibliotecas de código C ++ estrictamente nativas y usé Interop para hacer uso de la funcionalidad que escribí en la biblioteca nativa.

Puedo ver el beneficio de no requerir una biblioteca adicional, pero tengo curiosidad por saber cuáles son todas las ventajas y desventajas de usar C ++ / CLI sobre ejecutables administrados soley creados en C #, o un ejecutable con Interop para llamar a un C ++ nativo. ¿biblioteca?

(Nota: Son intercambiables los términos Interop / PInvoke, ya que no entiendo la diferencia entre los términos, simplemente los veo usados ​​de la misma manera).

Respuestas a la pregunta(4)

Su respuesta a la pregunta