2009-03-02 5 views
2

В настоящее время мне поручено преподавать всем разработчикам в компании, в которой я работаю, о Silverlight (v2). Единственная проблема в том, что у меня нет реального опыта Silverlight. Конечно, я изучил все технические подробности о материалах, таких как привязка данных, компоновка и т. Д., Чтобы я мог помочь моим коллегам. Но одна вещь, с которой сложно найти какую-либо информацию, - это общая структура проекта.Рекомендованная Prism v2 Структура проекта Silverlight/WPF

Я решил следовать по пути P & P Prism 2 (и, возможно, даже добавить некоторые WPF в микс позже), и поэтому мне было интересно, есть ли у кого-нибудь из умных людей опыт разработки реального проекта с использованием Prism 2 или даже WPF, и если у вас были какие-либо предложения о структуре проекта/решения? Например, «Где вы размещаете взгляды?» или «У вас есть какие-либо соглашения об именовании проектов модулей?» и т.д.

Любая помощь будет принята с благодарностью.

ответ

7

Это чисто основано на моем опыте использования Prism для WPF, а не Silverlight. Я не эксперт в Prism и могу легко передумать в некоторых из них. :-)

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

  • Не уверен, что это хорошая идея, но мне нравится поддерживать интерфейсы View и ViewModel в том же файле, что и View/ViewModel. Мне это нравится, потому что шаблон MVVM может создавать много файлов, и это держит отсчет файла. Нижняя сторона заключается в том, что интеграл и его реализация сложнее отделить, но мне вряд ли понадобится это сделать, и этот метод не мешает тестированию, что является другим преимуществом.

  • Виды, как правило, входят в папку «Представления», а затем папку для каждого вида. Папка для каждого представления включает в себя View, ViewModel и Presenter, если это необходимо.

  • Из справочной реализации создайте проект инфраструктуры для всех общих классов, которые необходимо разделить между модулями. Эталонная реализация имеет более подробную информацию, но ее можно использовать для всех видов, таких как общие сервисные интерфейсы, константы и т. Д.