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

Является ли Мейсон каркасом?

У меня был сговор с другом, что Мейсон (Perl) не является фреймворком, а языком шаблонов. Я считаю, что Mason для Perl делает то, что JSP делает для Java (как аналог, а не чистое техническое сравнение). Из того, что я знаю, JSP не является основой, и я не чувствую, что это не Мейсон. Когда я посмотрел wikipedia Mason (Perl), я вижу, что на главном сайте говорится, что это структура веб-приложений, написанная на Perl, в то время как конкурсы на странице обсуждения он.

Любые указатели на то, почему это/не является каркасом?

Обновление на основе комментариев от ysth: Для рамки я считаю, что она должна, по крайней мере, упростить доступ к db, управлять сеансами, обеспечивать базовую безопасность, которая понадобится webapp, шаблоны и повторное использование кода (или библиотеки, облегчающие простые задачи).

4b9b3361

Ответ 1

Мейсон - это "М", не являющийся структурой MVC (Model-View-Controller). Он предоставляет расширенные функции рендеринга (просмотра), поэтому люди думают о том, что Мейсон является языком шаблонов. Однако он также обеспечивает довольно много механизмов отправки (в epsecially в форме dhandlers) и механизмов управления (которые естественным образом вписываются в автопогрузчики).

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

Что Мейсон не дает вам, это слой абстракции базы данных, поэтому вам нужно принести свою собственную модель.

Насколько я знаю, amazon.com написан в Mason, а также многие другие сайты.

Если вам нравится работать с Mason, но вы хотите иметь модель, больше игрушек и пони, тогда вы можете рассмотреть Jifty в качестве рамки веб-приложения.

Ответ 2

Система шаблонов будет похожа на HTML::Template, то есть на модуль, который только делает шаблоны.

Я чувствую, что Mason делает больше, он имеет как-то механизм маршрутизации, он обеспечивает обработку аргументов, хотя %ARGS, intialisations через %INIT.

Он также предоставляет интерфейсы для mod_perl, CGI...

Теперь он не разговаривает с базой данных, как если бы вам нужен чистый способ сделать это, вам нужно будет использовать Class::DBI, DBIx::Perlish или одну из 100 систем perl, которые выполняют сопоставление объектов, или что-то еще...

Ответ 3

Невозможно ответить на вопрос о том, является ли HTML:: Mason каркасом или нет, не глядя на него, но я всегда доволен следующим определением....

"фреймворк вызывает вашу программу, тогда как ваша программа вызывает библиотеку

Ответ 4

Это не Model-View-Controller тип фреймворка, он, вероятно, ближе к PHP, чем Ruby on Rails, например (и так же плохой из того, что я видел).

Ответ 5

Глядя на Встраиваемый Perl в HTML с Mason в отношении своего соревнования, я бы сказал, что это язык шаблонов. В противном случае Catalyst и Maypole будет в списке. Кроме того, я думаю, что я где-то читал, что вы можете использовать Mason в качестве View в приложении Catalyst.

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

Ответ 6

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

Будьте осторожны!

Ответ 7

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

Ответ 8

Зависит от вашего определения структуры.

Вы можете применить фреймворк имен к любой библиотеке, если это делает несколько вещей.

Ответ 9

HTML:: Мейсон - это то, какие рамки хотят стать, когда они становятся старше. С HTML:: Mason вы получаете:

  • диспетчер
  • шаблонный
  • кэширование
  • входа
  • чрезвычайно гибкая модуляция

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