Лучшие практики WPF Prism Resources - PullRequest
       47

Лучшие практики WPF Prism Resources

6 голосов
/ 05 октября 2010

У меня есть настольное приложение WPF Prism с несколькими модулями. В прошлом я помещал все свои локализованные ресурсы в общие файлы ресурсов в сборке инфраструктуры и ссылался на нее во всех модулях.

Но в последнее время мне стало интересно, действительно ли это правильный подход с точки зрения сопровождения. По сути, это также своего рода модульность. Будет ли наличие файлов ресурсов для отдельных модулей в самих модулях лучшим подходом в долгосрочной перспективе?

Все мысли оценены.

Ответы [ 2 ]

5 голосов
/ 05 октября 2010

Поскольку одной из главных целей Prism является модульность, кажется очевидным, что ваши ресурсы нужно размещать только в соответствующей сборке. Совместное использование ресурсов через одну централизованную сборку является противоположностью модульности. Делая это централизованным способом, вы получите еще один тип ада DLL в то время, когда вы хотите добавить больше (дополнительных) модулей. Вам придется обновить общую сборку без ведома модулей, которые используют сборку. И определение того, какой модуль присутствует, просто снова нарушает саму модульность. Другой способ - всегда обновлять общую сборку до последней версии. Что бы вы ни делали, следование централизованному подходу вынуждает вас создавать все ваши модули обратно совместимые.

Это моя точка зрения на данный момент. Но так как я работаю с Призмой всего несколько недель, я не совсем уверен, что мое заявление так и должно быть.

1 голос
/ 05 октября 2010

У меня никогда нет ссылок между отдельными модулями при использовании Prism (если только один модуль не является расширением другого). Я склонен помещать общие ресурсы, интерфейсы и т. Д. В «общую» сборку, на которую ссылаются все модули и сборка, содержащая оболочку. Вещи, которые реализуют интерфейс, затем извлекаются через IoC-контейнер, и реализация помещается в модуль, где он «принадлежит».

Как вы пишете - наличие их в модуле инфраструктуры разрушает одну из идей Prism.

...