Подтвердить что ты не робот

Практическое применение MVC || Когда использовать или не использовать MVC

Я видел сообщество ASP.NET, жужжащее о MVC. Я знаю основы его происхождения и что существует множество сайтов (если только я не ошибаюсь, переполнение стека) на основе ASP.NET MVC.

Из всего, что я слышал и читал о MVC, похоже, будущее ASP.NET-разработки. Но, поскольку я обычно не делаю спот в .NET-разработке .NET, мне остается задаться вопросом: когда целесообразно использовать MVC, а когда нет, и почему? Примером большого (и ужасного) использования MVC было бы увлекательное. Хотя я понимаю, что существуют другие реализации MVC, которые рассматривают другие языки, такие как RoR. Меня больше интересует его влияние на .NET-программистов.

Если это уже прошло, мои извинения!

4b9b3361

Ответ 1

Вот мои 2 цента о MVC для веб-приложений. Для своего рода приложений с графическим интерфейсом, для которых изначально предполагалось MVC, требовался код "слушателя", чтобы пользовательский интерфейс мог быть обновлен, когда события изменили данные модели.

В MVC для Интернета это необязательно, вы бесплатно получаете своего слушателя: веб-сервер, а HTTP-запрос - это событие. Так что действительно MVC для Интернета должен быть еще проще. В самом деле, это может быть сведено к шаблону посредника, где Контроллер посредничает между моделью и представлением.

Есть две вещи, в которых есть много путаницы. Независимо от обычной "мудрости":

Frameworks!= MVC

Данные базы данных!= "Модель"

Структуры веб-разработки "Полный стек" обычно добавляют множество функций и могут быть или не быть MVC-ориентированными по своему ядру. Одной из особенностей, которую может добавить множество фреймворков, является доступ к базам данных или объектно-реляционное сопоставление, а также потому, что фреймворки и MVC запутываются, а затем данные базы данных и фасет модели MVC также запутываются. Модель обычно может рассматриваться как базовые данные для приложения, но она НЕ должна поступать из базы данных. Хорошим примером может быть вики, где базовая модель/данные состоят из данных об изменении файла, например, из RCS.

Надеюсь, это поможет, и я уверен, что у других будет много чего добавить.

Ответ 2

Я бы сказал, что один очень убедительный сценарий использования MVC - это если у вас есть группа опытных разработчиков .NET, у которых dont есть опыт работы с WebForms.

Исходя из этой ситуации (очень мало веб-опыта), я обнаружил, что я был намного более продуктивным и удобным с помощью MVC над WebForms.

Мне очень трудно было забрать WebForms из-за вышеупомянутой абстракции - (я думаю, что доказательство сложности WebForms - это я никогда не встречал никого, кто бы считал "гуру" WebForms, т.е. знает наивысший жизненный цикл страницы /Data Binding back-to-front и т.д.).

Использование MVC фактически позволило мне использовать мой опыт работы с .NET и программным обеспечением, не требуя значительных инвестиций в изучение структуры WebForms. Не только это, но я получил гораздо лучшее понимание HTTP, и это, я думаю, позволит более качественные решения.

IMHO MVC позволяет вам котировать код намного лучше, чем WebForms, поэтому я думаю, что разработчики с большим количеством "шаблонов" будут более удобны в MVC.

Ответ 3

ASP.NET MVC - это не будущее разработки ASP.NET, это просто новый способ разработки сайтов с ASP.NET. Microsoft дала понять, что они будут продолжать поддерживать и улучшать как WebForms, так и MVC в будущем.

Я не могу думать о каких-либо веб-сайтах, было бы нецелесообразно использовать MVC. Вы также можете утверждать то же самое для WebForms.

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

Я лично никогда не вернусь к разработке WebForms после использования MVC в нескольких крупных проектах. WebForms, на мой взгляд, помещает ненужный слой абстракции поверх http и html. Для быстрых прототипов вы можете получить что-то мощнее вместе с WebForms, но после этого усложнение абстракции делает вещи сложнее, а не проще. Единственная убедительная причина использования WebForms, на мой взгляд, - это богатый уровень контролируемых сторонних элементов управления. Но вы можете смешивать WebForms и MVC, поэтому его достаточно легко получить лучшее из обоих миров.

Ответ 4

Я работаю в магазине, где есть приложения ASP.NET и MVC. Я думаю, что изначально я был привязан к веб-формам, потому что я работал с ними несколько лет, но после работы над несколькими проектами MVC я предпочитаю это.

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

Кроме того, я не могу думать о каких-либо ситуациях, когда я бы предпочел веб-формы над MVC на этом этапе.

Ответ 5

Основываясь на собственном опыте, я могу сказать вам, что если у вас нет фона Winforms или Webforms, вы можете чувствовать себя более комфортно под зонтиком MVC, потому что вы не ожидаете чего-либо из мира ASP.NET Webforms.

С другой стороны, в качестве рекомендации я рекомендую вам ознакомиться с другими структурами MVC, такими как Django или RoR, которые более зрелы, чтобы "быть водой" на пути мышления MVC. Я доволен ASP.NET MVC, но поиск других решений поможет вам лучше понять парадигму структуры.