2010-08-12 15 views
10

Le applicazioni WPF sono, in sostanza, le applicazioni gestite? Right? Quindi, devo scegliere tra usare C++ gestito o C# gestito. Ho sperimentato con C++ gestito anni fa. Sembrava non essere pronto per il primetime. Immagino che Microsoft abbia dedicato più sforzi al C# gestito rispetto al C++ gestito. Quindi, sembra che usare C# gestito sia la migliore alternativa tra i due. È questo il caso? Quali esperienze hai avuto con WPF in entrambe le lingue? Grazie in anticipo.Un'applicazione WPF dovrebbe essere scritta in C++/CLI o C#?

risposta

13

Managed C++ è stato sostituito da C++/CLI e "managed C#" è solo C#.

Si consiglia vivamente di utilizzare C# per un nuovo progetto e utilizzare C++/CLI solo quando necessario. C# ha un supporto migliore, ha una base di utenti più ampia ed è più facile lavorare con Visual Studio 2010.

Inoltre, tenere presente che C++ e C++/CLI sono due lingue diverse. Per il mio primo progetto .Net, ho scelto C++/CLI perché conoscevo già il C++ e questa era una pessima idea: la curva di apprendimento da C++ a C++/CLI è simile all'apprendimento di C# da C++: non cadere in quella trappola .

1

In termini di back-end, entrambi funzionano sul CLR ed entrambi sono in grado di funzionare. In realtà si tratta solo di cosa ti senti più a tuo agio. Se non sei sicuro, sperimenta con entrambi. Usa quello che sembra più produttivo.

Edit:

Come è stato appena mi ha fatto notare, però, sembra che il supporto per i modelli WPF (e forse anche IntelliSense) solo che non è lì per C++. Quindi in quel caso credo che dovrei raccomandare C#.

+1

Non proprio: Visual Studio dispone di funzionalità IDE per supportare lo sviluppo WPF con C# (e VB.NET) ma non per C++/CLI. E poi c'è questo: http://stackoverflow.com/questions/2681999/no-intellisense-for-c-cli-in-visual-studio-2010 –

+0

Grazie per averlo portato alla mia attenzione. Non mi rendevo conto che il supporto fosse quello mancante. – nukefusion

1

C# è il più utilizzato, quindi se avete problemi, c'è più supporto online per C#. C# ha anche il miglior supporto di Microsoft. In generale, è solo un prodotto più rifinito, anche adesso. Se davvero non ti importa, andrei con C#.

+1

Non vero.C++/CLI * è * un prodotto finito e meraviglioso, specialmente con le specifiche C++ 0x e la possibilità di utilizzare librerie di template di solo header C++. Tuttavia, raramente è lo strumento giusto per il lavoro. –

+0

Penso che il C++ sia migliore per i giochi, dove è necessario raggiungere spesso un livello base. WPF sta provando a fare l'oposite esatto; 'allontanati dal disegno e lasciami fare tutto per te'. C# si adatta meglio a questo concetto. –

2

È possibile utilizzare il C++ gestito per il proprio back-end ma, in fase di ispezione, VS (sto utilizzando 2010 Ultimate) non ha alcun modello incorporato per un'applicazione WPF C++ - solo C# o VB.

Sono sicuro che lo potrebbe forzarlo a funzionare se si desidera, ma io suggerirei di utilizzare C#.

4

C++/CLI è stato creato solo per supportare la scrittura di livelli di interoperabilità tra codice non gestito (cioè C/C++ nativo) e codice gestito. Per "sollevamento pesi", si dovrebbe assolutamente usare C# (o VisualBasic.NET).

1

IMO senza dubbio C# (o VB/F #).

C++/CLI è ottimo quando si attraversa il confine del mondo gestito e una libreria C++. La complessità è più alta anche se le questioni sottili derivano dal fatto che si combina un linguaggio gestito e un non gestito.

I tempi di compilazione sono più lunghi anche in C++/CLI, soprattutto perché i modelli di codice sono modellati su come il compilatore C# non funziona su come funziona il compilatore C++.

Problemi correlati