Практично ли пытаться использовать Joomla или Drupal для разработки чего-либо, кроме брошюр или веб-сайтов для ведения блогов? Достаточно ли гибки фреймворки модулей / расширений для разработки веб-приложений, которые имеют множество возможностей ввода данных и отчетности, или вам просто лучше спроектировать их с помощью инфраструктуры MVC, ASP.NET или просто простого PHP?

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

  • При вводе первичных данных пользователь вводит физические атрибуты и рекорды гонок для всех своих лошадей.

  • Отчеты доступны для поиска статистики и других показателей, основанных на физических атрибутах и ​​записях гонок для всех лошадей в базе данных: пользователей и того, что ввели другие.

Каковы были бы причины или преимущества этого в CMS?

2
Merritt 21 Авг 2009 в 20:45

2 ответа

Лучший ответ

Я постоянно это делаю с помощью проприетарной CMS. Я уверен, что можно написать любой плагин / подсистему для drupal и т. Д.

Льготы:

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

Недостатки:

  • Несение «веса» CMS. Возможно, в нем есть таблицы, объекты и подсистемы, которые вы никогда не будете использовать.
  • Большая кодовая база. Более крутая кривая обучения для специалистов по обслуживанию, которые теперь должны понимать CMS и вашу бизнес-логику.
  • Зависимость от базовой CMS. По крайней мере, ваши контроллеры (и, возможно, уровень сохраняемости) будут привязаны к тому, как это делает CMS. Постарайтесь, чтобы ваша модель и бизнес-логика не зависели от MVC-фреймворка CMS.
5
cherouvim 8 Мар 2013 в 12:36
Насколько это утомительно по сравнению с более привычными фреймворками (такими как вышеупомянутый MVC)? Я чувствую, что так и должно быть.
 – 
Merritt
22 Авг 2009 в 23:16
Механизм CMS обычно тяжелее простого движка MVC, потому что CMS уже должен содержать MVC (надеюсь).
 – 
cherouvim
23 Авг 2009 в 09:32
На самом деле, я бы предпочел, чтобы было наоборот: фреймворк MVC с фреймворком CMS наверху.
 – 
Merritt
4 Сен 2009 в 02:15

Если CMS является достаточно модульной / расширяемой, чтобы вы могли писать свои собственные расширения без каких-либо ограничений, я определенно пошел бы по этому пути. Подумайте о некоторых «неосновных» задачах, которые в противном случае вам пришлось бы решать самостоятельно:

  • Управление пользователями (вход в систему, обработка забытых паролей, страницы пользователей и т. Д. - CMS обычно поставляется с готовой к использованию)
  • Создание шаблонов (CMS обычно предоставляет хорошо зарекомендовавший себя механизм шаблонов)
  • «Окружающие» страницы (помимо ваших основных форм / страниц отчетов, у вас, вероятно, будет довольно много других страниц, которые легко создавать / управлять с помощью CMS)
  • Безопасность (хорошая CMS предоставит вам множество API, связанных с безопасностью, чтобы упростить предотвращение SQL-инъекций, XSS и других проблем безопасности, например, при создании и обработке форм)
  • Абстракция базы данных (хорошая CMS должна предоставить это за вас)
  • Диспетчеризация на основе URL-адресов (вы хотите самостоятельно управлять своим пространством URL-адресов?)
  • и т.п.

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

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

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

4
Henrik Opel 21 Авг 2009 в 21:15