2010-10-05 1 views
6

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

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

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

+0

@NVM: Какой конкретный тип ресурсов вас интересует для локализации? Язык текста или макеты? –

+0

@HiTech Magic. В первую очередь меня беспокоит текст на языке, но то же самое относится к изображениям/значкам и т. Д. – NVM

+0

Я не понимаю, что вы подразумеваете под макетами. Я не даю никаких фиксированных размеров для каких-либо элементов управления, т. Е. Они всегда находятся в Auto и WPF заботятся о макетах, а также слева и справа/справа налево макеты и т. Д. – NVM

ответ

5

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

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

+0

Спасибо, PVitt. Это ответит на мой вопрос !! ура – NVM

1

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

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

+1

Ну, вы также имеете их в модуле инфраструктуры только, что вы называете это не так. Какая еще ваша сборка содержит ваши ресурсы, а не сборку инфраструктуры. – PVitt

+0

@Goblin, как говорит PVitt, у вас такая же настройка, как у меня. Ваша «общая» сборка - это сборка «Инфраструктура». – NVM

+0

Нет - моя инфраструктура сама по себе является модулем. «Общая» сборка отделена от этого. – Goblin