somiglianze MFC e WPF [chiuso]

1

Quali sono le somiglianze tra MFC e WPF?

Vale la pena imparare MFC prima di WPF?

    
posta logeeks 05.03.2012 - 13:32
fonte

5 risposte

10

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:

  • MFC è per lo sviluppo nativo in C ++, WPF è per codice gestito, principalmente C # e VB. In teoria puoi fare WPF in C ++ / CLI ma l'assenza di un designer lo rende praticamente un non-start
  • MFC "dichiara" l'interfaccia utente nel codice generata da un designer ( x = new Button(...); tipo di cosa) mentre WPF "dichiara" l'interfaccia utente in XAML ( <Button> ... </Button> tipo di cosa.)
  • MFC contiene un TON di classi che non riguardano l'interfaccia utente, dal CString relativamente innocuo al CDatabase don't-go-there.

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.

    
risposta data 05.03.2012 - 14:12
fonte
3

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.

    
risposta data 05.03.2012 - 14:50
fonte
2

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.

    
risposta data 05.03.2012 - 13:36
fonte
2

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 ....

    
risposta data 08.03.2012 - 05:01
fonte
0

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.

    
risposta data 05.03.2012 - 14:07
fonte

Leggi altre domande sui tag