2008-11-15 2 views
30

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

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

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

ответ

18

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

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

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

Каркасы = MVC

данных базы данных = «Модель»

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

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

+0

Просто добавьте, что ASP.NET MVC каким-то образом является агностиком. Модель является всего лишь объектом или коллекцией, в то время как в других средах MVC, таких как RoR, модельная базовая реализация предоставляется в этом случае шаблоном ActiveRecord. – 2009-04-21 13:30:42

+0

Упрощенный для заметок, говорящих, что MVC не является каркасом и что модель не является базой данных! – 2009-04-21 13:49:57

10

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

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

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

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

3

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

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

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

3

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

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

16

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

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

Мне очень сложно было получить WebForms из-за вышеупомянутой абстракции - (я считаю, что доказательство сложности WebForms я никогда не встречал никого, кто бы считал «гуру WebForms», т.е. знает наивысший жизненный цикл страницы/Data Переплет с обратной стороны и т. Д.).

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

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

Смежные вопросы