2010-08-12 19 views
10

Las aplicaciones WPF son, en esencia, aplicaciones administradas? Right? Entonces, tengo que elegir entre usar C++ administrado o C# administrado. Experimenté con C++ administrado hace años. Parecía no estar del todo preparado para el horario estelar. Supongo que Microsoft ha puesto más esfuerzo en administrar C# que en C++ administrado. Por lo tanto, parece que usar C# administrado es la mejor alternativa entre los dos. ¿Es este el caso? ¿Qué experiencias has tenido con WPF en cualquier idioma? Gracias por adelantado.¿Debería escribirse una aplicación WPF en C++/CLI o C#?

Respuesta

13

Managed C++ ha sido reemplazado por C++/CLI, y "managed C#" es solo C#.

Recomiendo encarecidamente que utilice C# para un nuevo proyecto y use C++/CLI solo cuando sea necesario. C# tiene una mejor compatibilidad, tiene una base de usuarios más grande y es más fácil trabajar con Visual Studio 2010.

Además, tenga en cuenta que C++ y C++/CLI son dos idiomas diferentes. Para mi primer proyecto .Net, elegí C++/CLI porque ya conocía C++, y esta era una muy mala idea: la curva de aprendizaje de C++ a C++/CLI es similar a aprender C# de C++: no caiga en esa trampa .

1

En términos de back-end, ambos se ejecutan en el CLR y ambos son capaces del trabajo. En realidad, todo se reduce a lo que te hace sentir más cómodo. Si no está seguro, experimente con ambos. Usa lo que sea más productivo.

Editar:

Como se acaba de señalar a mí, sin embargo, parece que el apoyo para plantillas de WPF (y posiblemente incluso intelisense) simplemente no está allí para C++. Entonces, en ese caso, creo que debería recomendar C#.

+1

No realmente: Visual Studio tiene características IDE para admitir el desarrollo de WPF con C# (y VB.NET) pero no para C++/CLI. Y luego está esto: http://stackoverflow.com/questions/2681999/no-intellisense-for-c-cli-in-visual-studio-2010 –

+0

Gracias por traer eso a mi atención. No me di cuenta de que el apoyo era así de carente. – nukefusion

1

C# es el más utilizado, por lo que si tiene problemas, hay más soporte en línea para C#. C# también tiene un mejor soporte por parte de Microsoft. En general, es solo un producto más terminado, incluso ahora. Si realmente no te importa, iría con C#.

+1

No es cierto.C++/CLI * es * un producto acabado y maravilloso, especialmente con las especificaciones C++ 0x y la capacidad de utilizar librerías de plantillas de encabezado C++. Sin embargo, rara vez es la herramienta adecuada para el trabajo. –

+0

Creo que C++ es mejor para juegos, donde necesitas llegar a un nivel básico a menudo. WPF está tratando de hacer exactamente lo contrario; 'alejate del dibujo y déjame hacer todo por ti'. C# simplemente se ajusta mejor a ese concepto. –

2

Puede usar C++ administrado para su backend pero, en la inspección, VS (estoy usando 2010 Ultimate) no tiene ninguna plantilla incorporada para una aplicación C++ WPF, solo C# o VB.

Estoy seguro de que podría forzarlo a trabajar si quisiera, pero le sugiero que use C#.

4

C++/CLI solo fue creado para admitir la escritura de capas de interoperabilidad entre código no administrado (es decir, C/C++ nativo) y código administrado. Para "levantar objetos pesados", definitivamente debe usar C# (o VisualBasic.NET).

1

IMO sin duda C# (o VB/F #).

C++/CLI es excelente cuando se cruza el límite del mundo administrado y una biblioteca C++. La complejidad es más alta, aunque surgen cuestiones sutiles por el hecho de que uno combina un lenguaje administrado y otro no administrado.

Los tiempos de compilación también son más largos en C++/CLI, especialmente dado que las plantillas de código se modelan después de cómo funciona el compilador de C# en función de cómo funciona el compilador de C++.

Cuestiones relacionadas