¿Qué es el prisma para WPF?

137

Recientemente me he encontrado con algo llamado Prisma . Microsoft, quien ejecuta el proyecto, lo describe como

Pautas para aplicaciones compuestas en WPF y Silverlight.

Incluso después de leer las descripciones más detalladas, no tengo ni idea de qué se trata, me temo.

Espero que alguien pueda darme una explicación clara y concisa de lo que es realmente Prism y por qué debería aprenderlo. He sido desarrollador de WPF durante un par de años, utilicé MVVM como parte justa y últimamente he encontrado personas que usan Prism, pero personalmente me siento un poco fuera de lugar aquí.

En particular, me pregunto sobre los siguientes puntos:

  • ¿Prism es literalmente solo (o principalmente) un folleto, como se da en el sitio de MSDN ? ¿Incluye alguna biblioteca, si es así para qué exactamente?

  • ¿Prism es un marco MVVM? ¿Debería usarlo como el "marco oficial MVVM de Microsoft" sobre otros o el mío?

  • ¿Proporciona inyección de dependencia? ¿Se relaciona con MEF de esta manera?

  • Cualquier otra cosa que debería saber sobre lo que hace Prism, como desarrollador de WPF / Silverlight.

Noldorin
fuente
55
En realidad, también es algo bastante complejo: Prism intenta satisfacer muchas necesidades, por lo que es difícil obtener una sola respuesta "correcta" si está tratando de descubrir su propósito. Realmente hace múltiples cosas.
Reed Copsey
1
Esta pregunta similar
hecha
9
otro atolladero turbio de P&P. cada vez que lanzan algo como esto, me veo obligado a ir a SO o wikipedia para averiguar qué es realmente. ¿Por qué siempre tiene que ser tan críptico?
Adam Ralph
1
si lo desea, es un tipo de documentación que lo guía a cómo implementar el patrón MVVM en sus aplicaciones WPF / Silverlight. También hay una biblioteca de codePlex que no estoy seguro para qué es exactamente. una buena documentación sobre PRISM se encuentra en el siguiente enlace, vale la pena si lo mira: Prism 4.1 - Guía del desarrollador de Microsoft Prism - MSDN
usuario3353518

Respuestas:

92

Prism es la guía oficial del Equipo de Patrones y Prácticas de Microsoft para construir "aplicaciones compuestas" en WPF y Silverlight.

Su objetivo es proporcionar orientación sobre las mejores prácticas para crear aplicaciones a gran escala que sean flexibles en términos de desarrollo y mantenibilidad.

Esto incluye orientación sobre la inyección de dependencia (a través de Unity o MEF), diseño (incluido el uso de MVVM), manejo de eventos compuestos, etc.


¿Prism es literalmente solo (o principalmente) un folleto, como se da en el sitio de MSDN? ¿Incluye alguna biblioteca, si es así para qué exactamente?

Es un libro, pero también incluye las bibliotecas de soporte (en el sitio de GitHub ).

¿Prism es un marco MVVM? ¿Debería usarlo como el "marco oficial MVVM de Microsoft" sobre otros o el mío?

Si y no. Incluye orientación para usar MVVM, pero es mucho más que un marco MVVM. Realmente no es, en sí mismo, un "marco MVVM", aunque sí incluye orientación MVVM.

¿Proporciona inyección de dependencia? ¿Se relaciona con MEF de esta manera?

Si. Originalmente incluía Unity, pero la última versión incluye el uso de MEF para DI.

Cualquier otra cosa que debería saber sobre lo que hace Prism, como desarrollador de WPF / Silverlight.

Vale la pena echar un vistazo a cómo hacen las cosas. Tienen un concepto de "región" muy elaborado, así como un buen soporte de agregación de eventos. También incluye buenas prácticas para desarrollar contra WPF, Silverlight y Windows Phone simultáneamente.

Reed Copsey
fuente
1
Gracias por la respuesta. Esto me da una buena visión general, creo. Para ser claros: ¿hay realmente algún código relacionado con MVVM o una biblioteca DLL?
Noldorin
44
@Noldorin: Supongo que preguntas por dentro de Prism ... Hay algo de soporte para MVVM, pero, francamente, MVVM, como patrón, casi no requiere soporte de biblioteca. Prism tiene un buen objeto de notificación y soporte de comando, que es realmente lo único que falta en el BCL que realmente necesita para MVVM. También tiene soporte para el localizador de servicios, lo que ayuda si desea utilizar servicios DI / compartidos para la comunicación VM <-> VM. No tiene algunas de las cosas "adicionales" proporcionadas por algunos "marcos" MVVM, como un marco de mensajes, etc.
Reed Copsey
1
Para seguir la guía de Prism, ¿es obligatorio instalar las bibliotecas?
dios231
18

Es un marco para crear aplicaciones WPF y Silverlight.

http://compositewpf.codeplex.com/

Solía ​​llamarse "Prisma" antes de que Microsoft lo renombrara como "CompositeWPF".

Respuestas:

1) Prism es un marco MVVM para usar como base para sus aplicaciones

2) Lo sugiero dependiendo de sus requisitos específicos. Debe publicar otra pregunta con detalles específicos para poder obtener algunas respuestas específicas.

3) Prism usa la inyección de dependencia (Unity) pero no la "proporciona"

4) Imo, Prism proporciona mucha funcionalidad pero es pesado en la curva de aprendizaje. Para proyectos pequeños con usted como único desarrollador, es posible que no necesite la abstracción y las herramientas que proporciona.

rboarman
fuente
3
Estoy un poco en desacuerdo con su afirmación n. ° 1: Prism incluye orientación MVVM, pero MUCHA orientación (la mayoría de las muestras) no son MVVM en absoluto. Se presenta más como una opción que se puede utilizar al crear aplicaciones compuestas.
Reed Copsey
1
Supongo que siempre lo he usado con el patrón
MVVM