Мейсон - это каркас? - PullRequest
       39

Мейсон - это каркас?

13 голосов
/ 08 декабря 2008

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

Есть ли какие-нибудь указатели на то, почему это / это не фреймворк?

Обновление на основе комментариев от YSTH: Я считаю, что для фреймворка он должен, по крайней мере, упростить доступ к БД, управлять сессиями, обеспечивать базовую безопасность, необходимую веб-приложению, создавать шаблоны и повторно использовать код (или библиотеки, упрощающие основные задачи).

Ответы [ 9 ]

14 голосов
/ 09 декабря 2008

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

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

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

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

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

4 голосов
/ 08 декабря 2008

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

4 голосов
/ 08 декабря 2008

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

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

4 голосов
/ 08 декабря 2008

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

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

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

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

1 голос
/ 26 августа 2012

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

1 голос
/ 27 марта 2009

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

Берегите себя!

1 голос
/ 08 декабря 2008

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

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

0 голосов
/ 20 января 2011

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

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

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

0 голосов
/ 08 декабря 2008

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

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

...