Silverlight - управление большим количеством тем - PullRequest
0 голосов
/ 13 октября 2009

У меня есть решение Silverlight на основе PRISM под контролем источника.Что касается темы, у меня есть проект для каждой темы, например, проекты «Theme_Summer», «Theme_Winter».На самом деле таких тематических проектов может быть более 30.Каждый тематический проект содержит набор словарей ресурсов для хранения стилей и т. Д., А также необходимые изображения, звуки и т. Д.

Каждый из этих проектов также имеет словарь слитых ресурсов Main.xaml, который связывает все ресурсыв этом тематическом проекте.Тогда мое основное приложение просто использует словарь ресурсов Main.xaml из любого проекта темы, который ему нужен.

Проблема, с которой я столкнулся, заключается в том, что мне нужно около 30 тем в моем решении, чтобы они оставались под контролем исходного кода и управляемымино все они скомпилированы в XAP, что, очевидно, не очень хорошо, так как приложение где-то разворачивается и требует только 1 темы.

Мой вопрос в том, что люди считают подходящим подходом?Наличие отдельного решения для каждой темы, чтобы оно было скомпилировано в отдельный XAP и загружено динамически, кажется большой работой.Есть ли способ загрузить их извне, пока они являются частью одного и того же решения?

Спасибо за ваше время

1 Ответ

1 голос
/ 14 октября 2009

Отказ от ответственности: то, что я рекомендую, может быть не лучшим для вас. Я лишь немного знаю о вашем проекте и ничего не знаю о том, что вы сказали клиенту (или боссу), что вы им дадите.

Если у вас будет х (где х от 2 до 30) тем. Возможно, вы захотите потратить некоторое время на создание основы для поддержки х тем. Так как вы не захотите менять эту структуру каждый раз, когда добавляете новую тему, PRISM идеально подходит для вас.

Я бы переместил все в библиотеки классов x-ish silverlight. Очевидно, вы можете объединить похожие темы, например, «Сезоны» или «Праздники», что приведет к сокращению количества проектов. Теперь не забывайте, что в вашем Visual Studio Solution может быть более одного проекта (просто щелкните правой кнопкой мыши проект и выберите Add-> New Project).

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

Есть ли способ загрузить их извне, пока они являются частью одного и того же решения?

Ответ - да! Вам нужно будет скомпилировать ваши отдельные приложения silverlight в файлы XAP и загрузить их с PRISM.

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

http://development -guides.silverbaylabs.org / Видео / Silverlight-Prism

http://msdn.microsoft.com/en-us/magazine/dd943055.aspx

http://www.sparklingclient.com/prism-silverlight/

...