Я создаю довольно большое приложение WP7 и получаю от этого удовольствие. Он основан на Pivot и имеет довольно много сводных страниц. Я динамически добавляю и удаляю сводные страницы в зависимости от того, какой «режим» приложения выбрал пользователь, чтобы приложение выглядело как можно проще. Пока все идет хорошо, мое приложение быстро реагирует, а не занимает память или ресурсы и выполняет фоновую загрузку по мере необходимости.
Слой модели содержит всю мою бизнес-логику, которая отражает суть приложения. Он чистый и отделен от слоев модели и вида.
Уровень View-Model представляет собой абстракцию модели в той степени, в которой ему необходимо взаимодействовать с представлением, а также содержит аспекты приложения и сеанса работы в целом. Он содержит объекты, которые представляют модель способом, с которым необходимо взаимодействовать представлению. Модель представления сохраняет состояние приложения в изолированном хранилище и поддерживает забрасывание камнями.
Слой View содержит множество элементов, элементов управления, стилей, ресурсов и т. Д., Как в xaml, так и в соответствующем коде. Мне нравится Blend и дизайнер Xaml в Visual Studio 2010, но я все еще кодирую / настраиваю объекты представления в коде из-за природы, в которой они взаимодействуют друг с другом. Код, стоящий за объектами представления, становится достаточно большим, но все еще отражает только состояние представления, а не состояние приложения. Я довольно часто использовал пользовательские элементы управления, так как это позволяет мне создавать многократно используемые компоненты на многих сводных страницах, однако пользовательские элементы управления не подходят для смешивания. Что меня беспокоит, так это то, что мое представление может стать более сложным, чем нужно, и потерять способность координировать дизайн пользовательского интерфейса с помощью таких инструментов, как blend выражения.
Настраивая представление таким образом и используя повторно используемые элементы управления, я значительно сократил свой Xaml и не страдаю от раздутых файлов Xaml, о которых упоминали другие разработчики, но потерял способность координировать действия с Blend. Можно ли найти счастливую среду? Должен ли я смотреть на разработку пользовательских элементов управления?
[редактировать]
Спасибо за ваш ответ. Я думаю, что все сводится либо к Xaml с дизайнером, либо к пользовательским элементам управления с большим количеством кода позади. С тех пор, как я перешел к пользовательскому контролю, мое мышление вернулось к тому, чтобы делать вещи вручную, а не с дизайнером (лучше, черт побери, ты прав!). Я думаю, я должен превратить свои пользовательские элементы управления в настраиваемые элементы управления с поддержкой скинов или просто продолжать работать так, как я есть, и избегать использования дизайнера. Это немного картошки, но я не хочу впадать в вредные привычки.