Какое лучшее соглашение об именах ViewModel?

Я пишу проект asp.net mvc2 с большим количеством просмотров /partialviews. Читая хорошие методы MVC, я поощряю создание ViewModels. Это действительно приятно и имеет смысл сделать это, но я недавно замечаю, что я уже не могу легко вспомнить, какая модель для какой точки зрения. Я надеюсь, что есть прекрасное соглашение об именах для ViewModels, которое может обрабатывать большие проекты.

Мой вопрос: может ли эта ситуация быть улучшена?

Ответы

Ответ 1

Мне нравится держать его простым, например, если у вас есть объект с именем Folder:

View = "FolderView.xaml"

ViewModel = "FolderViewModel.cs"

Ответ 2

Сделайте это простым:

ModelName = ViewName + "Model";

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

Ответ 3

Для ASP.NET MVC я сохраняю свои модели просмотра в пространстве имен ViewModels.{Controller}, а имя класса просто {Action}. Я не использую суффикс ViewModel так же, как файлы представления не имеют суффикса вида.

Ответ 4

Если вы сохраняете свои модели просмотра в той же сборке, что и ваши представления, один трюк, который я использовал, чтобы помочь организовать представления с помощью моделей просмотра в дополнение к простой схеме именования, например {View Name} ViewModel для класса модели представления, выполните следующие действия:

  • Создайте свой класс вида (Shell.xaml)
  • В том же месте добавьте свой вид класс модели (ShellViewModel.cs)
  • Переименуйте файл класса модели представления в быть тем же именем, что и представление, но добавить файл .model в путь к файлу (Shell.model.cs)
  • Отредактируйте файл проекта (либо вручную или с помощью команды power расширения в VS)
  • Найдите элемент компиляции для класс модели представления в проекте XML-документ
  • Добавить дочерний элемент DependentUpon чей контент является именем класс просмотра
  • Сохранить изменения и перезагрузить проект

Это приведет к тому, что класс модели представления будет визуально сгруппирован вдоль файла кода для представления.

alt text

Ответ 5

Я начал идти еще дальше и указывая, используется ли ViewModel для создания формы через EditorFor, заканчивая именем Form. Помогает сохранять формы и простые модели дисплея легко идентифицируемыми.