Che cos'è Prism for WPF?


137

Di recente mi sono imbattuto in qualcosa chiamato Prism . Microsoft, che esegue il progetto, lo descrive come

Linee guida per applicazioni composite in WPF e Silverlight.

Anche dopo aver letto le descrizioni più dettagliate, non ho quasi idea di cosa si tratti, temo.

Spero qui che qualcuno possa darmi una chiara e concisa spiegazione di cosa sia realmente il Prisma e perché dovrei impararlo. Sono stato uno sviluppatore WPF per un paio d'anni, ho usato MVVM la mia giusta quota e recentemente ho incontrato persone che usano Prism, ma qui mi sento un po 'fuori dal giro.

In particolare, mi chiedo i seguenti punti:

  • Prism è letteralmente solo (o principalmente) un opuscolo, come indicato sul sito MSDN ? Include delle librerie, se sì per cosa esattamente?

  • Prism è un framework MVVM? Dovrei usarlo come "framework Microsoft MVVM ufficiale" su altri là fuori o sul mio?

  • Fornisce iniezione di dipendenza? Si collega a MEF in questo modo?

  • Qualcos'altro che dovrei sapere su cosa fa Prism, come sviluppatore WPF / Silverlight.


5
In realtà è anche una cosa abbastanza complessa: Prism cerca di soddisfare molte esigenze, quindi è difficile ottenere un'unica risposta "giusta" se stai cercando di capire il suo scopo. Fa davvero più cose.
Reed Copsey,

1
Questa domanda simile chiesto da me è anche avere alcune buone risposte a questa domanda - stackoverflow.com/questions/6251821/...
akjoshi

9
l'ennesimo pantano oscuro di P&P. ogni volta che rilasciano qualcosa del genere mi ritrovo a dover andare su SO o su Wikipedia per scoprire qual è la cosa in realtà. perché deve essere sempre così criptico?
Adam Ralph,

1
se vuoi, è una specie di documentazione che ti guida su come implementare il pattern MVVM nelle tue applicazioni WPF / Silverlight. c'è anche una libreria di codePlex di cui non sono sicuro a cosa serva esattamente. una buona documentazione su PRISM risiede nel link seguente, vale la pena dare un'occhiata: Prism 4.1 - Guida per gli sviluppatori di Microsoft Prism - MSDN
user3353518

Risposte:


92

Prism è la guida ufficiale del team Microsoft Patterns and Practices per la creazione di "applicazioni composite" in WPF e Silverlight.

Ha lo scopo di fornire indicazioni sulle migliori pratiche per la creazione di applicazioni su larga scala che sono flessibili in termini di sviluppo e manutenibilità.

Ciò include indicazioni sull'iniezione di dipendenze (tramite Unity o MEF), layout (incluso l'utilizzo di MVVM), gestione di eventi compositi, ecc.


Prism è letteralmente solo (o principalmente) un opuscolo, come indicato sul sito MSDN? Include delle librerie, se sì per cosa esattamente?

È un libro, ma include anche le librerie per il supporto (sul sito GitHub ).

Prism è un framework MVVM? Dovrei usarlo come "framework Microsoft MVVM ufficiale" su altri là fuori o sul mio?

Sì e no. Include una guida per l'utilizzo di MVVM, ma è molto più di un framework MVVM. In realtà non è di per sé un "framework MVVM", sebbene includa la guida MVVM.

Fornisce iniezione di dipendenza? Si collega a MEF in questo modo?

Sì. Originariamente includeva Unity, ma l'ultima versione include l'uso di MEF per DI.

Qualcos'altro che dovrei sapere su cosa fa Prism, come sviluppatore WPF / Silverlight.

Vale la pena dare un'occhiata a come fanno le cose. Hanno un concetto di "regione" molto elaborato, nonché un buon supporto di aggregazione di eventi. Include inoltre buone pratiche per lo sviluppo simultaneo di WPF, Silverlight e Windows Phone.


1
Grazie per la risposta. Questo mi dà una buona visione d'insieme credo. Giusto per essere chiari: esiste davvero qualche codice relativo a MVVM o una libreria DLL anche?
Noldorin,

4
@Noldorin: Sto supponendo che tu stia chiedendo qualcosa all'interno di Prism ... C'è qualche supporto per MVVM, ma francamente, MVVM, come modello, non richiede quasi alcun supporto di libreria. Prism ha un buon oggetto di notifica e un supporto imponente, che è davvero l'unica cosa mancante nel BCL di cui hai davvero bisogno per MVVM. Ha anche il supporto per l'individuazione dei servizi, che aiuta se si desidera utilizzare i servizi DI / condivisi per le comunicazioni VM <-> VM. Non ha alcune delle cose "extra" fornite da alcuni "framework" di MVVM, come un framework di messaggistica, ecc.
Reed Copsey,

1
Per seguire la guida Prism è obbligatorio che le librerie siano state installate?
dios231,

18

È un framework per la creazione di app WPF e Silverlight.

http://compositewpf.codeplex.com/

Si chiamava "Prisma" prima che Microsoft lo ribattezzasse "CompositeWPF".

risposte:

1) Prism è un framework MVVM da utilizzare come base per le tue applicazioni

2) Lo consiglio a seconda delle esigenze specifiche. Dovresti pubblicare un'altra domanda con dettagli specifici in modo da ottenere alcune risposte specifiche.

3) Prism utilizza l'iniezione di dipendenza (Unity) ma non "la fornisce"

4) Imo, Prism offre molte funzionalità ma è pesante sulla curva di apprendimento. Per piccoli progetti con te come unico sviluppatore, potresti non aver bisogno dell'astrazione e degli strumenti che fornisce.


3
In qualche modo non sono d'accordo con la tua affermazione n. 1 - Prism include la guida MVVM, ma MOLTE indicazioni (la maggior parte dei campioni) non sono affatto MVVM. È più presentato come un'opzione che può essere utilizzata durante la creazione di applicazioni composite.
Reed Copsey,

1
Immagino di aver sempre usato il modello MVVM
rboarman l'
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.