Как вы управляете огромными и трудно обслуживаемыми файлами XAML?

У меня настоящие трудности с файлами XAML в Silverlight, поскольку они очень быстро становятся очень большими при использовании Blend. Он просто превращается в стену текста после того, как добавлено и анимировано всего несколько элементов управления.

Я надеюсь, что скоро выйдет лучшая версия Blend, так что нашим дизайнерам никогда даже не придется видеть XAML. Однако на данный момент это не решение - XAML по-прежнему нужно управлять вручную, и это удручающая задача.

Кто-нибудь нашел решение этого? Как вы храните свои файлы XAML в порядке? Как вы их понимаете, когда они становятся большими?

Редактировать: Меня особенно интересуют решения Silverlight, поскольку наиболее очевидное решение WPF - разделение вещей на словари ресурсов - не поддерживается в Silverlight.

Мой первый опыт работы с XAML - это поддержка устаревшего приложения. Это был адский кошмар. Самая большая проблема - это найти код, на который ссылается привязка. Буквально теряются часы на поиск источников кода. Да, мы знаем о View-Model. Я продолжаю читать о том, как просто и легко использовать XAML. Я уверен, что есть примеры приложений XAML, которые легко поддерживать. В моем случае LOE (часы и доллары), необходимые для поддержки этого конкретного приложения, просто вне графика. Это был ужасный опыт.

Doug Kimzey 21.08.2020 17:36
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
7
1
1 516
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Требуется небольшая работа для поддержки файлов XAML, но в основном вам нужно разделить их на файлы ресурсов (словари ресурсов XAML), используя понятную для вас схему.

Например, мы используем схему, в которой у нас есть такая структура папок:

  • Ресурсы (содержит файлы XAML, представляющие пользовательские элементы управления и страницы)

    • Трафареты (файлы XAML с фигурами)
    • Стили (файлы XAML со стилями)
    • Кисти (...)
      • Общий
    • Шаблоны (...)

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

Я креативный разработчик и много работаю в Blend.

В прошлом году я опубликовал несколько мыслей на поддержание чистоты XAML.

Silverlight в настоящее время не поддерживает MergedResourceDictionaries, поэтому сложно разбить XAML на отдельные файлы ResourceDictionary, как я предложил в другой пост.

У Пола Стовелла также есть интересный рекомендации для XAML.

Предоставляемые вами ссылки больше не активны.

vzczc 18.05.2011 02:59
Ответ принят как подходящий

Я использую Silverlight 2 с января, когда он был в закрытом выпуске, и мы столкнулись с этой проблемой, весь наш XAML был в одном большом файле. Что мы сделали в качестве передовой практики, так это разбили пользовательский интерфейс на отдельные пользовательские элементы управления на основе визуальной категоризации (верхний колонтитул, нижний колонтитул, элементы навигации и т. д.). Первоначально мы пытались использовать вложенные холсты (сетки еще не были добавлены в структуру) и позже это превратилось в кошмар обслуживания.

В Blend вы можете выбрать холст / сетку и т. д. В окне «Объекты и временная шкала», щелкните его правой кнопкой мыши, и вам будет предложена опция «Сделать контроль». Это сделано для быстрого рефакторинга и модуляции нашего основного файла XAML. . Затем мы использовали события, чтобы позволить пользовательским элементам управления взаимодействовать друг с другом.

Надеюсь, что это помогает и удачи!

Другие вопросы по теме