ASP.NET MVC Просмотр соглашений об именах моделей
Я знаю, что, вероятно, я получу смешанное мнение по этому вопросу, но мне было интересно, существуют ли "Рекомендации" для соглашений об именах моделей.
У меня довольно большое приложение, и я принял следующее соглашение об именах моделей:
- Модели
- Добавить
- CategoryAddModel
- ProductAddModel
- Изменить
- CategoryEditModel
- ProductEditModel
- Просмотр
- CategoryViewModel
- ProductViewModel
Я тоже думал о следующем:
- Модели
- Добавить
- AddCategoryModel
- AddProductModel
- Изменить
- EditCategoryModel
- EditProductModel
- Просмотр
- ViewCategoryModel
- ViewProductModel
Что вы предпочитаете и почему?
Считаете ли вы, что это действительно важно?
Ответы
Ответ 1
Это не имеет значения. Вы должны называть вещи последовательным, логичным и прямым способом. В принципе, просто выберите что-то, что имеет смысл и сделает вас наиболее продуктивным. Посмотрите, как ваше соглашение об именах будет работать с IntelliSense.
Вы также можете подумать о том, насколько легко ваш код будет поддерживать год.
Ответ 2
Я предпочитаю {ViewName}{Controller}ViewModel
. Я также удаляю папку Models
, вместо этого я помещаю модели просмотра в папку ViewModels
. Это имеет больше смысла для меня.
например. AddCategoryViewModel
Ответ 3
Вытащить комментарий Hightmaston в официальный ответ для ясности.
Логический шаблон для подражания будет:
{Controller}{ViewName}ViewModel
Это способствует лучшей организации файлов в масштабе и уменьшает количество обращений Intellisense.
Простой пример может быть следующим:
CategoryIndexViewModel
Для краткости вы также можете рассмотреть:
CategoryIndexModel
Ответ 4
В теории CategoryViewModel, CategoryAddModel и CategoryEditModel будут содержать одни и те же свойства, поэтому в вашем пользовательском интерфейсе нет ни малейшего числа, в котором можно увеличить количество моделей просмотров. Достаточно просто CategoryModel. Это тип HTTP-запросов, принимаемых вашим контроллером, который определяет, является ли это операцией GET или POST. Модель, используемая для заполнения представления для GET или получения данных формы для POST, будет иметь один и тот же тип в любом случае.