Implementación MVVM personalizada Vs. PRISM


Esta pregunta está inspirada en esta pregunta cerrada:

¿Qué ofrece Prism al desarrollador? Y ¿vale la pena?

Ya he implementado mis propias implementaciones MVVM personalizadas en aplicaciones empresariales. Estoy interesado en saber:

  • ¿Por qué debería aprender PRISM (específicamente PRISM, no otros frameworks MVVM)?
  • Beneficios de PRISM sobre la implementación personalizada de MVVM y
  • vale la pena la inversión en el aprendizaje PRISM?

Espero que esta pregunta no sea subjetiva y que todos por favor no entren en discusiones:)

Author: Community, 2011-06-06

4 answers

Al igual que con muchos frameworks que hacen una tarea común para ti, obtienes:

  1. Probado por muchos más globos oculares: que solo tú. Esto (con suerte) incluye pruebas unitarias, que puede o no puede estar haciendo mientras construye su propio marco.
  2. Más legible para otros desarrolladores: nadie más tiene experiencia con su framework MVVM personalizado. Pero si otro desarrollador se une a su proyecto, o se une a su equipo, o se une a su empresa, pueden saltar directamente a Prism codificar.
  3. Mejor documentación : En la misma línea, cualquier persona nueva que se una probablemente tiene que aprender las cuerdas mediante la recopilación manual del conocimiento colectivo de su cerebro, y cualquier otro usuario en el equipo, y mirando el código fuente. Los marcos de terceros tienen su propia documentación y muchas más publicaciones de blog en Internet.
  4. Better community : Puedes hacer preguntas en StackOverflow sobre "¿cómo hago X con Prism?"No puedes pedir eso con tu costumbre marco.
  5. Probablemente más capaz: al necesitar servir a más usuarios que solo tú/tu equipo, se habrán agregado más características. Si necesita hacer algo relacionado con MVVM que nunca ha hecho antes, es probable que el soporte no esté integrado en su propio marco MVVM. Pero es probable que esté en Prism.
  6. Mejor estructura : Digamos que querías hacer algo relacionado con MVVM pero no estaba en Prism. Muy probablemente, hay una buena razón para eso! Si algo no está en un marco (razonablemente maduro) hecho para trabajar en un dominio dado, eso es una señal de que lo que estás tratando de hacer es una forma poco natural o incómoda de abordar el problema. Al trabajar con su propio marco, es demasiado fácil decir "oh, agregaré esa característica", luego 6 meses después se da cuenta de que cometió un gran error porque esta nueva característica hace que su código sea muy difícil de seguir o termina siendo un vector de muchos errores o lo que sea.
  7. Una línea de CV-item : Tendría sentimientos encontrados hacia la contratación alguien que había " implementado y utilizado el marco MVVM personalizado. Si bien podría significar que son inteligentes, también podría indicar el temido síndrome "no construido aquí"."Por otro lado, poner" Microsoft Prism MVVM Framework " entre una enorme lista de tecnologías podría ser bueno, pero no es un wow-er. Lo mejor de ambos mundos sería un punto más largo, a lo largo de las líneas de " Comprensión profunda del patrón MVVM, logrado mediante la implementación de un marco MVVM de juguete para fines de aprendizaje antes de cambiar a MVVM Prism."Sí, la diferencia entre estos tres no va a hacer o romper su CV, y el síndrome de no-construido-aquí es algo que con suerte surgiría en una entrevista, pero vale la pena tener en cuenta, especialmente si está solicitando un lugar que recibe suficientes currículums que pueden permitirse el lujo de tirar cualquier cosa que los perturbe un poco.
 24
Author: Domenic,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-10-30 05:45:41

PRISM puede ser interesante para usted porque es más que un framework MVVM. Sí, una parte de ella puede considerarse de hecho un framework MVVM (los objetos NotificationObject, EventAggregator y Command son ejemplos de eso), pero ofrece mucho más.

Le permite crear Aplicación compuesta de múltiples parejas sueltas "Módulos". Tiene un marco de navegación muy flexible y extensible (Navegación Regional), ofrece integración con contenedores IoC (en particular, Unity y MEF) y un montón de otras características.

Aparte de eso, la documentación (incluido un libro electrónico) es bastante buena y viene con muchos ejemplos y comienzos rápidos. Creo que vale la pena la inversión, que no debería ser mucho, por cierto.

Espero que esto ayude:)

 8
Author: AbdouMoumen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-02-24 06:20:46

Prism es un framework de composición de aplicaciones con características MVVM, pero no es (en mi opinión) un framework MVVM con todas las funciones. Ofrece el mínimo requerido para hacer un desarrollo básico de MVVM.

Vea mi respuesta anterior a una pregunta similar para un desglose de los marcos de composición de aplicaciones y los marcos MVVM. La mayoría de las aplicaciones eligen una de ambas categorías:

Alternativas a Prism + MEF para aplicaciones MVVM modulares

 1
Author: Anderson Imes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:01:37

Con prism y MEF puede construir altamente extensible y mantenible. Aplicación de red. Con cada módulo con su propia interfaz de usuario en su propia dll separada. La única conexión entre sus módulos o extensiones y MainUI será la región en la que inyectará la interfaz de usuario de su extensión. Y créanme que es altamente extensible y mantenible

 0
Author: iaminvinicble,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-01 01:49:53