Каковы преимущества использования MVC-фреймворка, например, Drupal для создания большого веб-сайта? [закрытый]

Я пишу сравнение между 3-х вариантов технологии для создания нашего нового сайта:

  • Wordpress
  • Друпал
  • фреймворк MVC

босс уверен, что мы должны использовать Wordpress, но сайт будет большим, со многими разделами, подразделами, страницами и сложными шаблонами.

Мне легко сравнить WP + Drupal, но не так легко указать дополнительные преимущества (над Drupal) использования MVC рамки.

пока у меня:

  • Пользовательское хранение данных, типы контента, семантика
  • APIs / REST
  • разделение логики / UI
  • Конвенция, структура кода

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

11 ответов


трудно сравнить CMS (например, Drupal, WordPress) с платформой MVC, потому что они находятся в разных категориях.

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

Что касается вашей конкретной ситуации:

использование существующей CMS, такой как WordPress или Drupal, было бы отличным идея, если они соответствуют вашим потребностям. Это позволяет избежать изобретения колеса, экономит ваше время, и CMSs может быть довольно удобным (в разной степени). Если вы планируете делегировать задачу обновления контента нетехническому пользователю, то было бы разумно выбрать удобную для новичков CMS, а не вращать свою собственную с помощью MVC framework, что может привести к приложению, которое требует больше технических знаний для поддержания.

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


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

FWIW вот заметки, которые я придумал:

WORDPRESS / MU

http://wordpress.org/ http://mu.wordpress.org/

личный инструмент публикации, блог-платформа

  • в PHP +
  • многие доступные виджеты+
  • поддержка нескольких авторов / workflow +
  • социальные функции (BuddyPress) +
  • интеграция (BBPress etc)+
  • легко, общий +
  • простой пользовательский интерфейс +
  • возможность управления несколькими блогами (с WordPress MU) +
  • только 2 типа контента (сообщение или страница) -
  • не настоящая" CMS " / блог менталитет -
  • негибкий heirachy (без разделов) -
  • общества семантика -
  • ограниченный выбор шаблонов для авторов -
  • грязный код -
  • безопасность / подвиги -

Друпал

http://drupal.org/

структура управления контентом, CMS construction kit, инструменты для создания сайтов. Для не программистов для создания веб-сайтов, строительные блоки

  • PHP +
  • сделано для больших сайтов / порталов +
  • встроенные социальные функции (каждый пользователь имеет собственный профиль / журнал, расширяемый)+
  • выбор типа страницы / конфигурация авторами (блочная система)+
  • область для структурированных данных / семантики +
  • несколько типов контента (пресс-релизы, статьи, новости, блоги и т. д.) +
  • хорошее сообщество / инструменты +
  • чистый холст +
  • много функций +
  • хорошая обработка изображений+
  • сложного пользовательского интерфейса -
  • "черный ящик", очень абстрактный код, кривая обучения! -
  • настройка / тематизация трудно -

рамки

Это позволяет проектировать точное веб-приложение, которое вам нужно с нуля

  • расширяемый +
  • контроль семантики, хранения данных +
  • API / Data / REST / веб-службы +
  • ток, современные инструменты, режущая кромка+
  • разделение логика / презентация (шаблон проектирования MVC) +
  • Convention-структурированный код, рабочий процесс +
  • повторно использовать / комбинировать контент +
  • позволяет разрабатывать несколько UIs, не касаясь кодовой базы бизнес-логики +
  • надежный API / стандарты / шаблоны +
  • сухой (не повторяйтесь)+
  • кривой обучения -
  • необходимо разработать пользовательский интерфейс -
  • перебор? (в зависимости от целей) -

вы не можете сравнить WP или Drupal и MVC framework. Что ты!--1-- > can do-это решить, использовать ли существующую систему управления контентом или развернуть свою собственную и сравнить ROI, TCO, стоимость разработки и т. д.


Как кто-то, кто работал над различными системами home rolled CMS в течение большей части последнего десятилетия, мой совет-не сворачивайте свои собственные. Если у вас есть какое-то уникальное приложение, то MVC-хороший способ кодирования веб-приложений, но его простота не будет уравновешивать тысячи человеко-часов, потраченных на создание, и миллионы просмотров страниц тестирования OSS.

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


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

в настоящее время я строю сайт с CakePHP MVC framework, и я настоятельно рекомендую его. Имхо, он удовлетворяет все ваши преимущества.


Drupal имеет слой MVC, проверьте Drupal Prometheus @ http://www.drupalprometheus.org. Он имеет большинство особенностей современной структуры MVC плюс мощность Drupal CMS. Недавно мы начали использовать его в проекте для нашего клиента.


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

У меня была эта же dilemna недавно, и после попытки с Drupal, в конце концов пошел с Codeigniter MVC PHP framework вместо этого. Вероятно, стоит сначала инвестировать несколько дней с CMS, чтобы исследовать, возможно ли это. Если вы решите, что это будет слишком сложно, используйте вместо этого MVC framework.


Microsoft ASP MVC (например) - это платформа для создания ваших веб-сайтов, Drupal-это система управления контентом, в которой вы "проектируете" свои страницы, но не должны писать код.


Я бы сказал, что преимущество использования фреймворка MVC для сворачивания собственного вместо использования WP или Drupal:

  1. вы только код, что вам нужно. У WP и Drupal будет много вещей, которые вам не нужны, сидя на вашем сервере.
  2. разработчики понимают всю кодовую базу, потому что они написали ее с нуля - что облегчает ее обслуживание позже.
  3. WP-большая кодовая база (я не знаю о Drupal), как только вам потребуется что-то, чего нет поддерживается любой CMS, вам придется копать вокруг много кода.
  4. Wordpress " разделение логики / UI отстой-я имею в виду действительно отстой.
  5. больше гибкости. CMSs велики, поскольку вы не пытаетесь заставить их делать то, что они не должны были делать, - тогда они становятся болью.

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

Я думаю, это действительно зависит от того, насколько сложны требования и насколько хорошо CMS или framework будет соответствовать этим. Для относительно простой доставки контента это может быть возможность написать свой собственный легкий MVC и построить на этом.


Я бы посоветовал вам сильно против WordPress, это замечательно для сайтов с некоторыми статическими страницами и одним блогом/новостями, но я сделал двуязычный веб-сайт продукта на основе WP 2.2, и это был крупный пита с большим количеством взлома и написания кода базы данных в шаблон, чтобы сделать это возможным.

теперь я развиваюсь в Drupal, и это действительно лучше для больших проектов (хотя для создания простого блога требуется больше времени по сравнению с WP) - это замечательно модульная архитектура, которая позволила мне решить любой запрос / проблему до сих пор, написав модуль вместо взлома ядра.

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

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


Я считаю, что Drupal - это MVC. Друпал используется система тематизации, который ваши взгляды и система меню которого является контроллер. Модули модели. Конечно, меню фрагментировано на различные модули, но это все еще в основном MVC правильно?