¿Usaría C ++ / CLI si fuera compatible como C # & amp; VB.NET?
-
05-07-2019 - |
Pregunta
Siempre he tenido una cosa con C ++ / CLI. Tal vez porque no muchos desarrolladores lo usan ... o simplemente porque es diferente.
Suponga que Microsoft es totalmente compatible con C ++ / CLI como lo hacen con VB.NET y C # (es decir, LINQ, WPF, etc.). ¿Lo usarías?
Si no, ¿por qué?
Solución
Yo hago lo uso. Incluso con la relativa falta de soporte de herramientas, todavía supera a P / Invoke sin procesar para tratar con Win32.
En cuanto a LINQ, realmente no me importa ver mucho más pirateado en el lenguaje C ++. LINQ se puede usar tal como está: si van a mejorar el compilador, deberían funcionar con el soporte de C ++ 0x ...
Otros consejos
Se trata de usar la herramienta adecuada para el trabajo correcto. Utilizo C ++ / CLI para el trabajo de interoperabilidad de la plataforma porque es mucho más fácil corregir el cálculo de referencias. Uso C # para casi todos los demás trabajos .NET, con algunos VB.Net (me gusta el XML en línea). Admito que aún no he aprendido IronRuby, IronPython, F # ni ningún otro lenguaje .NET, pero lo estoy considerando seriamente para aumentar mi arsenal de programación.
Para responder a la pregunta, no creo que lo use más de lo que ya lo hago porque siento que ya lo uso para los trabajos que mejor se ajustan. C # sigue siendo el mejor lenguaje .NET como lo veo porque fue diseñado específicamente para esa plataforma, en lugar de usar un lenguaje antiguo para que se ajuste a él. Agregar un mejor soporte para C ++ / CLI solo disminuiría mi tiempo de desarrollo, en lugar de influir en mi uso desde otro idioma.
C ++ / CLI cumple muy eficazmente con la promesa de unir código administrado y no administrado. Te permite exponer lo que se siente como una biblioteca C # perfectamente nativa con acceso al 100% a bibliotecas / C ++ nativas en el interior " ;. No es un ejercicio de elegancia, pero en la historia de las herramientas prácticas de programación, ¿qué se compara?
Si necesita LINQ y WPF, solo use C #. Esa es la belleza de C ++ / CLI: escriba su envoltorio administrado y luego vuelva a C #. No veo que C ++ / CLI intente reemplazar C # para el uso diario.
... pero no estoy del todo claro sobre qué ofrece C ++ / CLI que C # no ofrece. - @ Thomas Owens
Un gran beneficio (en mi libro) es RAII (consulte responda dada por Adam Wright a mi pregunta sobre RAII en .NET ).
Quizás ... pero no estoy del todo claro sobre lo que ofrece C ++ / CLI que C # no ofrece. ¿Punteros, tal vez? He hecho toda mi programación en .NET (lo poco que he hecho) en C #, y estoy empezando a aprender F #, pero si estuviera totalmente respaldado y bien documentado, seguro, le daría una oportunidad.
Estoy mezclando C ++ / CLI con MFC para aprovechar las ventajas de WPF y XAML, pero estoy usando los nuevos componentes de la cinta de opciones sin paquete de características de C ++ 2008. :)
No lo usaría porque no quiero estar atado a un gran tiempo de ejecución. Y no me gustan todos esos ^ punteros de puntero :)
Me gusta / extraño la gran biblioteca que ofrece .NET, sin embargo.
Lo uso para admitir código heredado, así como para escribir cuñas entre código administrado y código nativo. Me encanta que VS11 lo soporte mucho mejor