Вопрос

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

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

Любая помощь будет высоко оценена.

Это было полезно?

Решение

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

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

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

  • Представления, как правило, помещаются в папку Views, а затем в папку для каждого представления.Папка для каждого представления включает представление, ViewModel и Presenter, если таковой необходим.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top