Pregunta

Prisma v4 y corrió el instalador. Entré en el directorio y corrí los dos siguientes archivos por lotes:

  • Sólo escritorio - Abrir modularidad MEF QuickStart.bat
  • Sólo escritorio - Abrir modularidad Con Unity QuickStart.bat

Cuando compilo estas aplicaciones, no veo ninguna diferencia real. He buscado MEF vs Unidad y he encontrado algunas ventajas / desventajas, pero nada de lo que establece específicamente si uno es "mejor" (y sé que es subjetivo) con el uso de Prism. Creo que tal vez si enumero mis requisitos alguien me puede apuntar a las tecnologías correctas para su uso (incluso si no es Prism 4).

  • La aplicación está a ser escrito en WPF ( NO Silverlight).
  • La principal aplicación será extremadamente delgada.
  • La principal aplicación va a utilizar un servicio web para crear el menú de las "aplicaciones / módulos" una persona tiene acceso a.
  • Las "aplicaciones / módulos" será completamente contenida en otras bibliotecas administradas.
  • La aplicación principal recibe puntos de vista y ViewModels por la reflexión en estos archivos DLL.
  • La aplicación principal debe alimentar en los servicios para el registro, etc. en estas "aplicaciones / módulos".

Por ejemplo:

Un usuario básico podría tener las opciones de:

  • Registro de dirección ViewOnly

Todos los artículos dirección relacionada están dentro Address.dll.

Un usuario avanzado puede tener las opciones de:

  • Nuevo Registro de dirección
  • Registro de dirección abierta (Actualizar / Eliminar)
  • Gestión de usuarios

Todos los artículos dirección relacionada están dentro Address.dll.
Manejo de todos los artículos relacionados se encuentran dentro Admin.dll.

La aplicación no debe en realidad referencia a cualquiera de estos archivos DLL, planeo para reflejar en ellos de manera que si hay 100 módulos diferentes y un usuario sólo tiene acceso a 2 de ellos, sólo 2 de ellos son descargados y usados. Mientras que un usuario que tenga acceso a 10 de los sufran los 10.

Ya hemos resuelto el DLL descargan a través de WebService. :)

¿Fue útil?

Solución

Nada es "mejor": son cosas diferentes.

OMI su elección debe ser impulsado únicamente por sus necesidades. Sobre la base de los requisitos que posteaste aquí yo sugeriría que usar MEF, porque tiene módulos contenidos en archivos DLL y la aplicación principal no es consciente de los módulos de carga. Esas tareas son la razón de que la razón por MEF existe.

De todos modos se podría utilizar ambos: el MEF para la modularidad y la Unidad para tomar ventajas de la inyección de dependencia (la capacidad de prueba, reutilización, ...)

Otros consejos

Si todos los módulos no se vuelven a compilar al mismo tiempo que la aplicación, a continuación, el MEF le da un montón de maneras de lidiar con el cambio de las interfaces de la aplicación principal. De lo contrario MEF puede a continuación, ser más compleja que necesita.

He estado usando la unidad más de un año con PRISM pero me he dado cuenta de algo de memoria graves problemas de fugas. Por lo tanto, decidí darle PRISM 4 y MEF una oportunidad. Lo que he hecho es convertir en primer lugar mi aplicación para utilizar PRISM 4 con Unity. Entonces me convertí una rama de usar MEF. Puede sonar gracioso, pero parece MEF para manejar el consumo de memoria y liberar de alguna manera mejor que la unidad.

Sería bueno saber si otros han hecho la misma experiencia?

respecto a su pregunta de si el MEF y la unidad puede funcionar muy bien entre sí, lo que puedo decir que están trabajando muy bien entre sí. He desarrollado una prueba de concepto que utiliza la aplicación PRISM, la Unidad y el MEF.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top