Мы разрабатываем довольно большое приложение с использованием ASP.NET MVC, и в начале мы видели, что было бы полезно иметь абстрактный базовый контроллер с общими действиями CRUD (новый, сохранить, удалить ...) плюс действие по умолчанию для списка , В нашем случае у нас есть 20+ объектов, управляемых с помощью таких контроллеров.Является ли абстрактным контроллером CRUD хорошей идеей?
Это работает и позволяет избежать дублирования кода и делает приложение более однородным, но когда вы видите контроллер, трудно понять, какие действия он выполняет, и он может реализовать некоторые действия, которые не должны существовать. И, например, представьте, что вы хотите редактировать передачу имени, а не идентификатор, вам нужно создать новое имя EditByName (имя), и даже это сделать, вы все еще имеете действие Edit (id), потому что оно находится в базе.
Для меня все это немного пахнет, но я не нашел ни одного примера, показывающего альтернативу, потому что приложения MVC, которые я вижу, имеют довольно узкий домен. Есть рекомендации? Любой пример? (Я не обязательно должен быть в ASP.NET MVC, проблема, я думаю, является общей для любой среды MVC).
Мы используем фильтры, богатые модели и модельные вяжущие. Контроллеры довольно просты и тонкие, но они выполняют все те же самые вещи, кроме некоторых тонких различий. –