Sei sicuro di non confondere WCF (Windows Communication Foundation) con WPF (Windows Presentation Foundation)?
WCF è un servizio di comunicazione (mini-framework?) progettato per consentire lo sviluppo rapido di servizi Web. Consulta il white paper.
Poiché non è un'architettura di programmazione allo stesso modo di N-Tier o MVC, può essere integrata in un sistema esistente. L'ho usato in un progetto N-Tier, Winforms e funziona perfettamente. Potrebbe essere più facile integrarsi in un progetto WPF o MVC rispetto a un progetto N-Tier o Win / webforms (perché le nuove generazioni di .Net sono costruite con modelli di progettazione in stile MVC e WFC in mente, mentre le robe più vecchie sono generalmente backported fino a quando non vengono riscritti), ma la funzionalità (e grazie al CLR, la performance) è ancora in gran parte la stessa.
WPF è un sistema progettato per sostituire le classiche architetture Winforms / Webforms / N-Tier, consentendo agli sviluppatori di applicazioni di utilizzare linguaggi e tecniche simili per creare applicazioni desktop / thick-client e web / thin-client. Per impostazione predefinita, utilizza un modello di progettazione noto come M-V-VM (Model-View-ViewModel), che è simile a MVC. Dai un'occhiata alle sue informazioni.
Con WPF, provare ad usarlo in un modo N-Tier non è una buona idea e probabilmente non funzionerebbe comunque. Non è progettato per essere N-Tier, quindi dovresti inserirli in un modello di architettura / design che non è stato pensato per adattarsi.
Quindi, per rispondere direttamente alle tue domande come formulate - useresti WCF in N-Tier quando desideri il beneficio di un rapido sviluppo dei servizi di comunicazione (per aggiungere, ad esempio, un'API), ma hai già un N-Tier sviluppato sistema basato. Ti consente di dover riscrivere il tuo sistema in una nuova architettura solo per aggiungere funzionalità di comunicazione. Se fatto bene, N-Tier può essere modulare come MVC, quindi aggiungere un livello WCF (o renderlo parte di un livello di comunicazione) non dovrebbe essere difficile, né dovrebbe essere quello molto diverso dall'utilizzo di un servizio WCF in un progetto in stile MVC.