Quali sono le somiglianze tra MFC e WPF?
Vale la pena imparare MFC prima di WPF?
Sia MFC che WPF (insieme a Windows Form, moduli VB6 e molte altre cose) contengono concetti che provengono dall'interfaccia utente di Windows - il set base di controlli (pulsante, casella di testo, casella di controllo, ecc.), l'idea delle proprietà per quei controlli (testo, contenuto, controllato ...) e che alcune proprietà sono comuni a tutti i controlli mentre altri sono solo per determinati controlli. Hanno anche l'idea di separare la definizione dell'interfaccia utente (voglio che il pulsante sia blu e di avere Click Me su di esso) dal codice che viene eseguito quando interagisci con l'interfaccia utente.
Tuttavia, i veri e propri bulloni di come funzionano e ciò che impari mentre li stai usando per la prima volta, difficilmente potrebbe essere più diverso:
x = new Button(...);
tipo di cosa) mentre WPF "dichiara" l'interfaccia utente in XAML ( <Button> ... </Button>
tipo di cosa.) Se sei uno sviluppatore C ++, non imparare C # in modo da poter imparare WPF. Piuttosto, rilassati nello sviluppo XAML scrivendo app C ++ / XAML per Windows 8. (Non è difficile). Se sei uno sviluppatore C #, ignora MFC, non fa per te.
MFC è un wrapper basato su vecchia classe su Win32, non è particolarmente difficile da imparare e da usare, ma oggi è molto più legato.
WPF è una tecnologia GUI basata su .NET basata su un layout dichiarativo in stile XML. Questo è simile a HTML con javascript, solo che ha usato C # per gli aspetti di code-behind.
Quindi sono totalmente diversi.
Dovresti esaminare altre opzioni prima di prendere una decisione. C'è il ben rispettato Qt per gli sviluppatori C ++ (e le sue estensioni sotto forma di QML e Wt), o HTML. Microsoft ha affermato che HTML5 è la sua (nuova) tecnologia GUI primaria e molte altre aziende ci stanno lavorando, quindi potresti vedere più risorse sviluppate rispetto a tutte le altre tecnologie della GUI messe insieme.
MFC e WPF sono tecnologie e metodologie completamente diverse.
Se ti stai dedicando allo sviluppo del desktop di Windows adesso ti consiglio solo di imparare WPF - questa è l'abilità che sarà trasferibile allo sviluppo Metro (entrambi usano XAML per definire l'interfaccia utente).
MFC è stato utilizzato per i progetti C ++ prima che .NET venisse sviluppato ed è effettivamente morto, tranne che per i progetti precedenti.
MFC era un buon framework per il suo tempo. Esso consente di astrarre l'API Win32 e ha reso le cose molto più semplici da sviluppare, specialmente quando si trattava dello sviluppo di GUI e MVC. L'ho sviluppato per diversi anni, è stato molto più bello dell'utilizzo di una semplice API Win32.
Non c'è niente di particolarmente terribile in MFC. Bad software può essere scritto in qualsiasi lingua. E c'è sicuramente una curva di apprendimento per MFC, come in ogni altra lingua. Aggiungi un'applicazione mal scritta e riesco a vedere la confusione che sta accadendo.
In effetti, dal momento che ho sviluppato WinForms, WPF, ecc., ho scoperto che i concetti di base dello sviluppo di Windows non sono cambiati. Hai ancora pulsanti, finestre di dialogo, eventi, discussioni, mutex, ecc. Ecc ....
Se desideri imparare il C ++ e avere un futuro nella lingua, evita l'MFC come la peste. Nessuno lo usa più a meno che non stiano mantenendo una vecchia applicazione legacy. Ho lavorato in un posto in cui mi è stato assegnato per correggere alcuni bug con un'applicazione legacy MFC e stupido, ho pensato che dal momento che avevo una piccola esperienza in C ++ potevo semplicemente "raccoglierlo". È stata una delle poche volte in cui mi sono ritrovato completamente fuori di testa e completamente confuso.
Non saprei dire se l'applicazione è stata progettata e scritta male o se MFC era solo una struttura terribile. Fortunatamente non ero l'unico sviluppatore ad avere problemi con quella società, alla fine hanno deciso di riscrivere l'applicazione in WPF e con un buon design e test di unità l'applicazione si è rivelata piuttosto straordinaria.
C'è ancora lavoro nell'MFC ma probabilmente non vuoi questo tipo di lavoro. WPF è più moderno, e se i tuoi punti di forza sono in C ++, qualsiasi altro framework C + UI è preferibile a MFC.