MVC как горячая парадигма - PullRequest
4 голосов
/ 15 мая 2009

Ребята из Stack Overflow в Podcast упоминают, что MVC - это новая популярная вещь; .Net (предположительно, 4.0 будет иметь стандарт), Rails и Django.

Но я хочу знать, в чем дело.

Это напоминает мне asp / jsp с 2000 года - множество команд запроса и ответа смешиваются с HTML.

И я не понимаю, почему на самом деле писать SQL на SQL Server или MySQL так болезненно, и я не понимаю преимуществ ORM, LINQ и т. Д.

Для меня самой сложной вещью никогда не было получение, ввод, управление или создание данных, а использование AJAX для создания действительно богатого интерфейса.

Может ли кто-нибудь объяснить мне, почему MVC так популярен и предпочтителен для .Net 3.0, где большая часть моего кода и времени тратится не на управление данными, а на работу интерфейса?

Jonathan

Ответы [ 7 ]

3 голосов
/ 15 мая 2009

Сегодня приложения становятся все более и более сложными (как с точки зрения бизнес-логики, так и с точки зрения логики пользовательского интерфейса). Эти инструменты и шаблоны помогают справиться с этой сложностью (а это фактически то, чем занимается разработка программного обеспечения): они помогают управлять существенной сложностью , не вводя большое количество случайной сложности .

2 голосов
/ 16 мая 2009

Я недавно переключился на MVC, и у меня был смешанный опыт, но я рад, что сделал переход.

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

Я выбрал Entity Framework (EF), который поначалу вызывал много горя, пока я не получил EFPocoAdapter , чтобы делать многое из того, что я хотел (что не рекомендуется, потому что это переходный и обнаружит, что сливается с EF 4.0). В процессе я должен был узнать о Невосприимчивость к постоянству , Инверсия управления , освоить принципы SOLID и затем узнать об архитектуре MVC сам. В настоящее время я перечитываю Head First Шаблоны проектирования , потому что до сих пор никогда не использовал эти шаблоны полностью.

Я столкнулся с сериализацией проблем с циклическими ссылками в графах объектов, объектами против POCO объектов и сохранением данных от клиента и обратно в базу данных. Я действительно начинаю понимать, что такое REST , начинаю понимать HTTP и болеть за HTML5 (поддержка PUT / DELETE).

Я также познакомился с ORM , которые я никогда раньше не использовал. Я изучил и все еще изучаю Linq (выражения запросов) и о деревьях выражений . Я получил опыт из первых рук со множеством C # 3.0 функций, о которых я только читал (инициализаторы объектов, анонимные типы, неявная типизация и большинство других).

В самом ASP.NET MVC я с удовольствием писал фильтры действий и настраиваемые ограничения маршрутизации , устанавливая баланс между моделью и контроллерами, размышляя над объектами домена, борясь с POCO и персистентностью Невежество и много писать AJAX код.

Мне как веб-разработчику это очень понравилось. В ходе этого процесса я также получил большое уважение к сообществам Ruby on Rails и Java, поскольку я осознал их мастерство в MVC, DDD и ORM (не говоря уже о некоторых замечательных инициативах с открытым исходным кодом).

Пока вы не испачкаете руки, вы по-настоящему не поймете, что это такое. Сделай это как хобби и дай месяц. Я могу обещать вам, что вы будете намного лучшим разработчиком, чем сейчас, и вы по-настоящему оцените большинство, если не все вещи. Это действительно изменение парадигмы, которое уже происходит в сообществах RoR / Java, и .NET только догоняет его.

2 голосов
/ 15 мая 2009

С здесь :

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

Классическая веб-разработка на ASP.NET тесно связана, что очень затрудняет самостоятельное изменение чего-либо и простое применение любой методологии автоматического тестирования. С MVC вы действительно можете применять принципы, такие как DRY и методы, такие как TDD.

1 голос
/ 15 мая 2009

MVC не является чем-то новым в качестве шаблона проектирования и инфраструктуры для многоуровневых приложений. Очевидно, что имеет смысл отделить ваши данные от вашего представления и делегировать доступы контроллеру. Дело не столько в управлении сложностью, сколько в повторном использовании и поддержании базы кода. Любому человеку намного легче работать над базой кода, если он следует шаблону mvc. Гораздо умнее люди могут дать вам более подробное объяснение его достоинств. Я догадываюсь, что не понимаю, почему MVC будет взаимоисключающим с net 3.0?

1 голос
/ 15 мая 2009

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

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

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

1 голос
/ 15 мая 2009

Самым большим преимуществом для меня является четкое разделение интересов при переходе на MVC. Это очень трудно сделать в традиционном программировании веб-форм.

Также преимущества юнит-тестирования действительно хороши.

0 голосов
/ 15 мая 2009

И я не понимаю, почему на самом деле писать SQL в SQL Server или MySQL так болезненно, и я не понимаю преимуществ ORM

SQL не компонуется. Условия ORM обычно следующие:

предпочтительнее .Net 3.0, где большая часть моего кода и времени тратится не на управление данными, а на внешнюю работу

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...