Лучшая практика для местоположения стилей в Silverlight

Я использовал базар на некоторое время теперь и люблю его. Тривиальное ветвление и слияние въезжают задним ходом, вселяют большую веру в использовании ответвлений, поскольку они должны использоваться. (Я знаю, что центральные vcs инструменты должны позволить это, но общие включая подрывную деятельность не позволяют это легко).

bzr поддерживает довольно много отличающиеся рабочие процессы от соло посредством работы централизованным репозиторием к полностью распределенному. С каждым ответвлением (для разработчика или функции) способный быть объединенными независимо, обзоры кода могут быть сделаны на на основание ответвления.

bzr также имеет большой плагин ( bzr-svn) разрешение Вам работать с репозиторием подрывной деятельности. Можно сделать копию svn repo (который первоначально требует времени, поскольку он выбирает всю историю для локального repo). Можно тогда сделать ответвления для различных функций. Если Вы хотите сделать быстрое исправление к соединительной линии, в то время как половина пути через Вашу функцию, можно сделать дополнительное ответвление, работу в этом, и затем объединяться назад для транкинга, оставив половину сделанной функции нетронутой и за пределами соединительной линии. Замечательный. Работа против подрывной деятельности была моим основным использованием до сих пор.

Примечание я только использовал его на Linux, и главным образом из командной строки, хотя это предназначено для работы хорошо над другими платформами, имеет графический интерфейсы пользователя такой как , TortoiseBZR и большая работа делаются на интеграции с IDE и т.п..

11
задан Scott Marlowe 31 July 2009 в 13:26
поделиться

4 ответа

Иерархия существует по какой-то причине, вероятно, неплохо было бы начать с простого и локального элемента, с которым вы работаете , а затем переместить его, поскольку он становится необходимым.

У ваших дизайнеров могут быть особые требования, которые могут превзойти это. Например, группа, отправляющая много изменений некоторых стилей, может захотеть поместить всю работу над стилями в один файл XAML, пока он не будет готов для большего.

Типичная иерархия стилей в обратном порядке

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

Уровень приложения (Прил. поскольку затем вы можете использовать их в отдельных проектах и ​​решениях.

Недоступно для Silverlight 2, эта функция была добавлена ​​в Silverlight 3.

Уровень страницы

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

Не стесняйтесь начинать дальше вниз по визуальному дереву (например, на уровне управления) и перемещать их стили, как это имеет смысл.

На панели

Хорошо, если вы хотите содержать кучу похожих частей, например, при форматировании формы.

На панели управления

Начните здесь. Когда вы стилизуете элемент управления в Blend, он обычно начинается здесь, если вы не выберете опцию ресурса для всего приложения.

Это промежуточный шаг между установкой свойства и фактическим статусом ресурса истинного стиля, так как Я буду просто установщиком для свойства Style элемента управления, но вы можете легко добавить x: Key и переместить его вверх в визуальном дереве, когда будете готовы.

Неявные стили и темы

Если ваша команда или компания использует обычный набор стилей для всех элементов управления определенного типа (кнопки, флажки, вы называете это), рассмотрите возможность использования неявных функций диспетчера стилей (добавление значения для Silverlight) для создания неявных стилей. Это похоже на историю стилей WPF, где вам не нужно устанавливать стиль во всех местах, где вы его используете.

Я нашел в Интернете хорошее руководство с быстрым поиском, чтобы вы узнали больше об ISM .

Когда использовать свойства вместо общих стилей

НАПИШИТЕ свой вопрос, если у вас есть набор текстовых полей, в которых различаются максимальная длина, ширина и т. Д., вам, вероятно, следует явно указать их как свойства для каждого экземпляра элемента управления - если они различны.

Если у вас есть несколько (скажем, 3 элемента) с одинаковыми значениями, может иметь смысл вытащить его, а затем запустить с использованием атрибута Style = "{StaticResource keyName }". Однако если вы набираете XAML вручную, это намного раздражает больше, чем вводить Width = "20".

10
ответ дан 3 December 2019 в 08:56
поделиться

В проекте Silverlight, над которым я работаю, использовался шаблон бизнес-приложения RIA от MS. Все стили были в папке «assets», а файл назывался Styles.xaml. Я придерживался их организации, и мне она нравилась, хотя я также добавил отдельные папки для «диалогов» и «настраиваемых» элементов управления.

Вы можете скачать их образец здесь, который может ответить на ваши вопросы: http://blogs.msdn.com/brada/archive/2009/07/10/amazing-business-apps-example-updated-for-silverlight-3-rtm-and-net-ria-services-july -update.aspx

0
ответ дан 3 December 2019 в 08:56
поделиться

Я согласен с вашим последним предложением: поместите общую часть всех текстовых полей в словарь стилей, который затем может быть загружен приложением / страницей / элементом управления, в зависимости от того, какой уровень разделяет это общая часть. Необычная часть должна быть установлена ​​в экземплярах текстовых полей напрямую, нет смысла использовать другой стиль, если вы повторно не используете этот специальный параметр в нескольких текстовых полях.

Я лично собираю все «общие» стили (для текстового поля, поля со списком и т. Д. .) в одном ресурсе .xaml. Я разделяю стили в дополнительных словарях xaml-ресурсов только в том случае, если я хочу исключить их для какой-либо цели. Например, я помещаю стили для компонентов от сторонних поставщиков в отдельные файлы ресурсов s.th. Я могу загрузить свой общий файл ресурсов «автономно» в приложения, которые не ссылаются на эту стороннюю библиотеку. Точно так же я отделяю стили, специфичные для проекта (цвета, соответствующие фирменному стилю клиентов) от глобальных стилей (стили продукта, не зависящие от клиента), что очень похоже на руководящие принципы, которые должны соблюдаться для наследования классов. Затем мое приложение загружает все ресурсы, пользовательские элементы управления не должны знать о них.

0
ответ дан 3 December 2019 в 08:56
поделиться

Sorry for plugging my own stuff (or if it's not allowed/frowned upon in SO), but I had a quick go at blogging about my experiences of reorganising the resources in a large-ish Silverlight 2 (i.e. no MergedDictionaries) project a while back. Post is here.

3
ответ дан 3 December 2019 в 08:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: