O que é o Prism for WPF?


137

Eu me deparei com algo chamado Prism muito recentemente. A Microsoft, que executa o projeto, descreve-o como

Diretrizes para aplicativos compostos no WPF e Silverlight.

Mesmo depois de ler as descrições mais detalhadas, não tenho nem idéia do que realmente é, receio.

Espero aqui que alguém possa me dar uma explicação clara e sucinta do que o Prism realmente é e por que eu deveria aprender. Sou desenvolvedor de WPF há alguns anos, usei MVVM minha parte justa e ultimamente encontrei pessoas usando o Prism, mas pessoalmente me sinto um pouco fora do circuito aqui.

Em particular, estou pensando nos seguintes pontos:

  • O Prism é literalmente apenas (ou principalmente) um livreto, conforme fornecido no site do MSDN ? Inclui bibliotecas, se sim, para o que exatamente?

  • O Prism é uma estrutura MVVM? Devo usá-lo como a "estrutura oficial do Microsoft MVVM" em detrimento de outros por aí ou por conta própria?

  • Ele fornece injeção de dependência? Tem alguma relação com o MEF?

  • Qualquer outra coisa que eu deva saber sobre o que o Prism faz, como desenvolvedor de WPF / Silverlight.


5
Na verdade, também é uma coisa bastante complexa - o Prism tenta preencher muitas necessidades, por isso é difícil obter uma única resposta "certa" se você estiver tentando descobrir seu objetivo. Realmente faz várias coisas.
Reed Copsey

1
Esta pergunta semelhante feita por mim também está tendo algumas boas respostas a esta pergunta - stackoverflow.com/questions/6251821/...
akjoshi

9
outro pântano sombrio da P&P. toda vez que eles lançam algo assim, eu tenho que ir ao SO ou à wikipedia para descobrir o que realmente é. por que sempre tem que ser tão enigmático?
Adam Ralph

1
se desejar, é um tipo de documentação que o orienta sobre como implementar o padrão MVVM em seus aplicativos WPF / Silverlight. há também uma biblioteca de codePlex que eu não tenho certeza para que serve exatamente. uma boa documentação sobre o PRISM está no link abaixo, vale a pena dar uma olhada: Prism 4.1 - Guia do desenvolvedor do Microsoft Prism - MSDN
user3353518

Respostas:


92

Prism é a orientação oficial da equipe de padrões e práticas da Microsoft para a criação de "aplicativos compostos" no WPF e Silverlight.

Seu objetivo é fornecer orientação sobre as melhores práticas para a criação de aplicativos em larga escala, flexíveis em termos de desenvolvimento e manutenção.

Isso inclui orientações sobre injeção de dependência (via Unity ou MEF), layout (incluindo o uso do MVVM), manipulação de eventos compostos, etc.


O Prism é literalmente apenas (ou principalmente) um livreto, conforme fornecido no site do MSDN? Inclui bibliotecas, se sim, para o que exatamente?

É um livro, mas também inclui as bibliotecas de suporte (no site do GitHub ).

O Prism é uma estrutura MVVM? Devo usá-lo como a "estrutura oficial do Microsoft MVVM" em detrimento de outros por aí ou por conta própria?

Sim e não. Ele inclui orientações para o uso do MVVM, mas é muito mais do que uma estrutura do MVVM. Realmente não é, por si só, uma "estrutura MVVM" - embora inclua orientação da MVVM.

Ele fornece injeção de dependência? Tem alguma relação com o MEF?

Sim. Originalmente incluía o Unity, mas a versão mais recente inclui o uso do MEF para DI.

Qualquer outra coisa que eu deva saber sobre o que o Prism faz, como desenvolvedor de WPF / Silverlight.

Vale a pena dar uma olhada em como eles fazem as coisas. Eles têm um conceito muito elaborado de "região", além de um bom suporte à agregação de eventos. Ele também inclui boas práticas para desenvolver contra o WPF, Silverlight e Windows Phone simultaneamente.


1
Obrigado pela resposta. Isso me dá uma boa visão geral, eu acho. Só para esclarecer: existe realmente algum código relacionado ao MVVM ou uma DLL de biblioteca?
Noldorin

4
@Noldorin: Suponho que você esteja perguntando sobre o Prism ... Existe algum suporte para o MVVM, mas, francamente, o MVVM, como padrão, requer quase nenhum suporte de biblioteca. O Prism tem um bom objeto de notificação e suporte a comandos, que são realmente as únicas coisas que faltam na BCL que você realmente precisa para o MVVM. Ele também possui o suporte do localizador de serviço, que ajuda se você deseja usar serviços de DI / compartilhados para comunicação VM <-> VM. Ele não tem algumas das coisas "extra" fornecido por alguns MVVM "estruturas", tais como um quadro de mensagens, etc.
Reed Copsey

1
Para seguir as orientações do Prism, é obrigatório que as bibliotecas tenham sido instaladas?
dios231

18

É uma estrutura para a criação de aplicativos WPF e Silverlight.

http://compositewpf.codeplex.com/

Ele costumava ser chamado de "Prism" antes da Microsoft renomeá-lo para "CompositeWPF".

Respostas:

1) Prism é uma estrutura MVVM para usar como base para seus aplicativos

2) Sugiro isso, dependendo de seus requisitos específicos. Você deve postar outra pergunta com detalhes específicos para obter respostas específicas.

3) O Prism usa injeção de dependência (Unity), mas não o "fornece"

4) O Imo, o Prism fornece muitas funcionalidades, mas é pesado na curva de aprendizado. Para pequenos projetos com você como desenvolvedor único, talvez você não precise da abstração e das ferramentas que ele fornece.


3
Eu discordo um pouco da sua afirmação nº 1 - O Prism inclui orientação para MVVM, mas muitas orientações (a maioria das amostras) não são MVVM. É mais apresentado como uma opção que pode ser usada na criação de aplicativos compostos.
Reed Copsey

1
Eu acho que eu sempre usado com o padrão MVVM
rboarman
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.