powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / DynamicResource и StaticResource
1 сообщений из 1, страница 1 из 1
DynamicResource и StaticResource
    #39109476
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот сижу и не могу решить какое правильное решение выбрать.
В чем суть, есть приложение и куча проектов с файлам ResourceDictionary, в файлах ресурсах проекта хранятся шаблоны и прочее ботва. Программа находит сборки, загружает их, после чего загружает ресурсы и добавляет их в визуальное дерево.
Такие Freezable ресурсы как геометрии, кисти и прочие являются общими. То есть геометрии иконок используются в нескольких сборках одновременно.
Возникает вопрос, как лучше разместить и организовать эти ресурсы .
Вариант №1
Все общие ресурсы собрать в 1 сборке и разных ResourceDictionaty, а потом с помощью MergeDictionary объединить их на уровне приложения в App.xaml.
Какие плюсы и минусы в этом я вижу:
+ ресурсы не дублируется в каждой сборке, а используется всеми из одного места
+ я могу быстро управлять этими ресурсами, так как всё в 1 месте, рассортировано по файлами в 1 проекте
+ когда ресурс запрашивается, ссылка на него кешируется, по этому если ресурс запрашивается дваждый то второй раз он искаться не будет (вообще об этом я только читал на MSDN, но подтверждения этого в коде StaticResources я как то не увидел)
- все ресурсы будут находится на уровне приложения, а Static- и DynamicResources ищут ресурсы снизу вверх, и будут разрешены только после того, как пройдут по всему дереву. То есть на поиск нужного ресурса будет уходить много времени, так как само дерево очень и очень не маленькое.
- если использовать StaticResources то дизайнер сообщает об отсутствии этого ресурса, так как он будет доступен только в RunTime'е, что не очень удобно. Я не пользуюсь дизайнером для отображения XAML кода, но предупреждение от этого ни куда не исчезает.
Вариант №2. Все необходимые ресурсы для сборки размещать в этой же сборке и Merge'ыть их в нужные каталоги ресурсы.
+ Ресурс находится прямо там, где он запрашивается, следовательно на его поиск будет потрачено минимум времени
+ Я могу свободно использовать StaticResource и он разрешается прямо в дизайнере
- Ресурсы размазаны по всем проектам, найти нужный становится довольно проблемным, спасается только F12
- Ресурсы дублируются, если 1 иконка встречается в 10 сборках, то получается, что мне нужно сохранить 10 одинаковых геометрий в 10 сборках

Что собственно я хочу? а хочу я понять, какой способ организации ресурсов оптимален.
Особенно критично для меня производительность, так как WPF не отличается высокой скоростью, хотелось бы свести подобные затраты с ресурсами к минимуму, при этом хочется, чтоб организация и управление ресурсами было как минимум удобно.
Как вы организовывайте ресурсы в своих приложениях?

P.S. прошу прощения за сумбур, температурю, голова вообще не варит
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / DynamicResource и StaticResource
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]