Я хочу разработать свой проект wpf, используя шаблон MVVM. Должен ли я создать новую папку для разделения Model, View, ViewModel или создать новый проект для каждого? Какая из них хорошая практика? Я загрузил образец проекта, некоторые из проектов имеют отдельную папку для него, а некоторые из них имеют отдельный проект для каждого. Я сослался на эту ссылку. Но это не ясное сомнение. Я спрашиваю, является ли создание новых проектов Model, view и viewmodel хорошей практикой или создание новой папки?
Это дублированный вопрос, так как вы можете найти здесь ответ Шеридан, чтобы он был наиболее полезным.
В основном вам нужно определить, какой будет общий размер вашего проекта. Если вы планируете повторно использовать фрагменты, вы можете захотеть нескольких проектов и разных уровней папок. Это также происходит, если вы планируете предоставлять части своего приложения в качестве API, тогда вы, вероятно, захотите использовать несколько проектов.
Для начинающих я предлагаю вам начать с малого и поместить все в один проект. Чтобы узнать MVVM, не сосредотачивайтесь на структуре проекта, а как работает WPF и MVVM. Структура решения всегда может быть пересмотрена после того, как вы поняли, как работает MVVM.
РЕДАКТИРОВАТЬ
Ответ - нет, вам никогда не нужно создавать папки или отдельные проекты для вашего проекта. Просто поймите, что создание новых class
в другой папке также будет использовать этот путь как пространство имен. Поэтому, если вы создаете папку ViewModels
и добавляете class
в эту папку, вы увидите namespace WpfApplication1.ViewModels
вверху. Это также означает, что вам нужно будет обратить внимание на места пространств имен в ваших файлах XAML. Если вы хотите ссылаться на тип в папке ViewModels
в файле XAML, вам нужно будет сделать что-то вроде <xmlns:vm="clr-namespace:WpfApplication1.ViewModels">
. Недостатком является то, что если у вас есть папки в ViewModels
вам также нужно ссылаться на это пространство имен в вашем XAML. Поэтому, если бы были ViewModels> Basics, вам понадобилось бы пространство имен в XAML, поскольку вы не можете ссылаться на все поддиременты в одном объявлении xmlns.
<xmlns:vm="clr-namespace:WpfApplication1.ViewModels">
<xmlns:vmBasics="clr-namespace:WpfApplication1.ViewModels.Basics">
Альтернативой является использование папок и переименование пространств имен классов только в простое namespace WpfApplication1
тогда вам просто потребуется одно объявление xmlns и вы сможете получить доступ ко всем типам приложения.
<xmlns:app="clr-namespace:WpfApplication1">
Таким образом, не затрудняйте вещи, если они не нужны; и, как правило, ничто на этапах обучения не будет настолько сложным, что ему необходимо несколько проектов. Папки являются необязательными, но понимают побочные эффекты/обходные пути, если вы их используете.
Обычно я создавал папки для просмотра, ViewModel и т.д. Затем я давал описательные имена для просмотров и классов viewModels. Если у вас есть несколько страниц, я бы предложил иметь подпапки. Все идет в одном проекте. Но это мое предпочтение.
например:
Просмотреть> Продажи> WelcometoSalesPageView.xaml
ViewModel> Продажи> WelcometoSalesPageViewModel.vb
Это будет зависеть от вашего варианта использования. У вас есть сценарий, в котором ваши взгляды, модели и модели просмотра могут быть повторно использованы в другом проекте? Что я имею в виду, например, у вас есть сценарий, в котором вы бы использовали только ваши модели в каком-то другом проекте. Если да, то имеет смысл создавать отдельные проекты, чтобы их можно было повторно использовать. Если это не так, лучше держать их всех в одном проекте.
Папки предназначены только для создания структуры и для упрощения идентификации. На самом деле нет необходимости иметь папки для View и ViewModel.