Я просто изучаю основы ASP.NET MVC и задаюсь вопросом, в чем преимущество состоит в том, чтобы разбить логику веб-сайта среди нескольких контроллеров, а не просто иметь один класс Controller, который управляет всем сайтом, а не просто упорядочивать код лучше. (На мой взгляд, только последнее преимущество не должно быть достаточным для того, чтобы повлиять на конечного пользователя через URL из-за разделения проблем: детали реализации сайта не должны отражаться в URL-адресах, которые использует сайт, нет?)В чем преимущество использования нескольких классов контроллера в ASP.NET MVC?
Некоторые примеры контроллеров, которые я читал, показывают разные контроллеры для таких вещей, как «Продукт» или «Пользователь» или «Сообщение». Они явно соответствуют классам объектов, за которыми следуют действия, которые могут быть предприняты над ними (глядя на URL прямо сейчас, я вижу stackoverflow.com/questions/ask).
Есть ли преимущество разделения сайта на отдельные классы контроллеров, такие как QuestionsController, и только один контроллер по умолчанию и обработка этих действий внутри него, например stackoverflow.com/ask-question (к тому же он выглядит немного уродливее).
Я спрашиваю, потому что я не особо заинтересован в том, чтобы сделать мой сайт RESTful (я немного посмотрел на него, но считал его слишком ограниченным) и вместо этого предпочитаю параметры строки запроса для передачи информации о запросе. Поэтому концепция разделения URL-адреса на контроллер и действие для меня не имеет смысла, поскольку информация о действии и классе будет представлена в строке запроса.
Наконец, я предпочитаю более простой вид URL-адресов, например, www.mysite.com/about, по сравнению с www.mysite.com/home/about (что это значит?), Снова заставляя меня задаться вопросом, на самом деле это несколько контроллеров.
Помимо всех обсуждений ООП ниже, более крупные файлы с большей вероятностью приведут к конфликтам слияния, потому что больше людей их редактируют. – Ryan