Terminologia Microsoft: .NET C ++ vs. C ++ tradizionale

7

Recentemente ho lavorato con un team che utilizza sia .NET C ++ sia pre- .NET C ++.

Comprendo perfettamente le differenze tecniche tra le due tecnologie. Tuttavia, a volte mi sento come se fossi in difficoltà quando si tratta della terminologia utilizzata per differenziare i due.

Esempio: supponiamo di avere due progetti:
ProjectA contiene codice "C ++" che crea una DLL di assembly .NET.
ProjectB contiene codice Visual C ++ che crea una DLL Windows nativa tradizionale.

Qual è il modo migliore per definire in modo sintetico e terminologico una distinzione tra i due progetti? Di nuovo, non sto chiedendo una descrizione tecnica approfondita delle differenze tra le due tecnologie. Sto solo cercando nomi e etichette.

Ecco come, oggi, potrei provare a fare la differenza quando parlo con qualcuno:

"ProjectA è un progetto .NET C ++ gestito"
e
"ProjectB è un progetto DLL C ++ nativo non gestito."

Tuttavia non sono affatto sicuro che questa terminologia sia ideale, o addirittura corretta. Si prega di descrivere quello che si sente il linguaggio ideale da utilizzare in questa situazione (o situazioni simili) potrebbe essere. Sentiti libero di motivare la tua risposta.

    
posta Mike Clark 03.01.2011 - 23:12
fonte

3 risposte

18

Vorrei usare "C ++ / CLI" per fare riferimento all'assembly gestito, e solo "C ++" (o "nativo C ++") per fare riferimento all'altro.

C ++ / CLI è il nome "ufficiale" del dialetto Microsoft di C ++ che supporta. NET, quindi sembra logico utilizzarlo.

    
risposta data 03.01.2011 - 23:37
fonte
11

Si tenga presente che alcuni sviluppatori C ++ nativi (compresi quelli che conosco nel team Visual C ++) non si preoccupano della parola "non gestito" - suggerisce che il codice gestito è l'impostazione predefinita. Molti sviluppatori C ++ vedono il codice nativo precedente e ancora vibrante come predefinito e il codice gestito come variante. Con questo avvertimento, utilizzare "nativo" o "non gestito" per C ++ che rende una tradizionale DLL Windows o EXE (o LIB, per quella materia) e C ++ / CLI per C ++ che fa funzionare un assembly gestito sotto CLR. Cerca di non dire Managed C ++ a meno che non intendi quella cosa con i doppi underscore di cui cerchiamo di non parlare (quasi certamente non lo fai.) Prova anche a non dire C ++ - CLI o altre varianti punteggiate stranamente.

E mentre ci sei, per il tuo C ++ nativo potresti voler iniziare a distinguere tra C ++ 0x e vecchio C ++, o se stai usando MFC, ATL o il nuovo approccio no-MFC, oltre a se sei in STL o anche nel modello di meta-programmazione.

Ci sono molti sapori di C ++. Ecco perché è stato così di successo. : -)

    
risposta data 04.01.2011 - 05:03
fonte
6

Questa è la terminologia che userò:

ProjectA crea un assembly gestito; il progetto B crea un assembly non gestito.

È il modo più pulito per distinguere tra i due.

    
risposta data 03.01.2011 - 23:31
fonte

Leggi altre domande sui tag