2010-10-05 12 views
6

Tengo una aplicación de escritorio WPF prism con algunos módulos. En el pasado, puse todos mis recursos localizados en archivos de recursos comunes en el ensamblaje de infraestructura y los hice referencia en todos los módulos.Best Practice WPF Prism Resources

Pero últimamente me he estado preguntando si ese es realmente el enfoque correcto desde una perspectiva de mantenimiento. En esencia, también rompe la modularidad. ¿Tener un módulo de archivos de recursos específicos en los módulos sería un mejor enfoque a largo plazo?

Todos los pensamientos apreciados.

+0

@NVM: ¿Qué tipo específico de recursos le preocupa para la localización? ¿Texto de lenguaje o diseños también? –

+0

@HiTech Magic. En primer lugar, me preocupa el texto del idioma, pero lo mismo se aplicaría a las imágenes/iconos, etc. – NVM

+0

No entiendo lo que quiere decir con diseños. No proporciono ningún tamaño fijo para ningún control, es decir, siempre están en Auto y WPF se ocupa de los diseños, y también de los diseños de izquierda a derecha/izquierda, etc ... – NVM

Respuesta

5

En la medida en que uno de los objetivos principales de Prism es la modularidad, parece obvio que solo debe colocar sus recursos en el ensamblaje adecuado. Compartir recursos a través de un ensamblaje centralizado es lo opuesto a la modularidad. Si lo hace de forma centralizada obtendrá otro tipo de DLL infierno en el momento en que desea agregar más módulos (opcionales). Deberá actualizar el ensamblaje común sin el conocimiento de los módulos que usan el ensamblaje. Y determinar qué módulo está presente nuevamente viola la modularidad misma. La otra forma es actualizar siempre el ensamblado común a la última versión. Hagas lo que hagas, seguir el enfoque centralizado te obliga a construir todos tus módulos compatibles con versiones anteriores.

Este es mi punto de vista en este momento. Pero por lo que estoy trabajando con Prism por unas pocas semanas ahora no estoy muy seguro de si mi declaración es la forma en que debería hacerse.

+0

Gracias PVitt. ¡Eso responde mi pregunta! Aclamaciones – NVM

1

Nunca tengo referencias entre los módulos individuales cuando uso Prism (a menos que un módulo sea de hecho una mejora de otro). Tiendo a poner recursos compartidos, interfaces, etc. en un ensamblado 'común' al que hacen referencia todos los módulos y el conjunto que contiene el caparazón. Las cosas que implementan una interfaz se recuperan luego a través del contenedor IoC y la implementación se ubica en el módulo donde 'pertenece'.

Mientras escribes, tenerlos en el módulo de infraestructura rompe una de las ideas detrás de Prism.

+1

Bueno, también los tiene en el módulo de infraestructura solo que no lo mencione de esa manera. ¿Qué otra cosa es su conjunto que contiene sus recursos que un conjunto de infraestructura. – PVitt

+0

@Goblin como dice PVitt, tiene la misma configuración que la mía. Su ensamblaje "común" es mi ensamblaje de "Infraestructura". – NVM

+0

No, mi infraestructura es un módulo en sí misma. El ensamblado 'común' está separado de eso. – Goblin