Terminología de Microsoft: .NET C ++ frente a C ++ tradicional

7

Recientemente he estado trabajando con un equipo que usa .NET C ++ y pre- .NET C ++.

Entiendo completamente las diferencias técnicas entre las dos tecnologías. Sin embargo, a veces siento que estoy fallando cuando se trata de la terminología utilizada para diferenciar los dos.

Ejemplo: supongamos que tenemos dos proyectos:
ProjectA contiene el código "C ++" que construye una DLL de ensamblaje .NET.
ProjectB contiene el código de Visual C ++ que construye un tradicional DLL nativo de Windows.

¿Cuál es la mejor manera de hacer una distinción entre los dos proyectos de manera concisa y terminológica? Nuevamente, no estoy pidiendo una descripción técnica en profundidad de las diferencias entre las dos tecnologías. Solo estoy buscando nombres y etiquetas.

Así es como, hoy, podría tratar de hacer la distinción al hablar con alguien:

"ProjectA es un proyecto administrado de .NET C ++"
y
"ProjectB es un proyecto de DLL C ++ nativo no administrado".

Sin embargo, no estoy del todo seguro de que esta terminología sea ideal, ni siquiera correcta. Describa cuál cree que podría ser el lenguaje ideal para usar en esta situación (o situaciones similares). Siéntete libre de motivar tu respuesta.

    
pregunta Mike Clark 03.01.2011 - 23:12

3 respuestas

18

Yo usaría "C ++ / CLI" para referirme al ensamblaje administrado, y solo "C ++" (o "C ++ nativo") para referirme al otro.

C ++ / CLI es el nombre "oficial" del dialecto de Microsoft de C ++ que admite. NET, por lo que parece tener sentido usar eso.

    
respondido por el Dean Harding 03.01.2011 - 23:37
11

Tenga en cuenta que a algunos desarrolladores nativos de C ++ (incluidos los que conozco en el equipo de Visual C ++) no les importa la palabra "no administrado"; sugiere que el código administrado es el predeterminado. Muchos desarrolladores de C ++ ven el código nativo antiguo y aún vibrante como predeterminado, y el código administrado como variante. Con esa advertencia, use "nativo" o "no administrado" para C ++ que crea una DLL o EXE tradicional de Windows (o LIB, en realidad), y C ++ / CLI para C ++ que hace que un ensamblaje administrado se ejecute bajo el CLR. Trate de no decir Managed C ++ a menos que se refiera a eso con el doble guión bajo que intentamos no hablar (casi con seguridad no lo hace). Trate también de no decir C ++ - CLI u otras variantes extrañamente puntuadas.

Y mientras lo hace, para su C ++ nativo, es posible que desee comenzar a distinguir entre C ++ 0x y C ++ anterior, o si está usando MFC, ATL o el enfoque más reciente sin MFC, más si estás en STL o incluso en la plantilla de meta-programación.

Hay muchos sabores de C ++. Es por eso que ha sido tan exitoso. :-)

    
respondido por el Kate Gregory 04.01.2011 - 05:03
6

Esta es la terminología que usaría:

ProjectA construye un ensamblado administrado; el proyecto B construye una Asamblea no administrada.

Es la forma más limpia de diferenciar las dos.

    
respondido por el George Stocker 03.01.2011 - 23:31

Lea otras preguntas en las etiquetas