Предложите хороший фреймворк MVC на perl

Можете ли вы предложить какую-нибудь хорошую платформу MVC для Perl - я знаю, что это Catalyst

Необходимость состоит в том, чтобы иметь возможность предоставлять сервисы в инфраструктуре Perl, которые могут беспрепятственно вызываться приложениями Java / .Net.


person Jagmal    schedule 05.09.2008    source источник


Ответы (12)


Я скажу вам прямо сейчас, что Catalyst имеет лучшую репутацию среди разработчиков Perl с точки зрения MVC-среды быстрой разработки приложений.

Что касается «чистого» MVC, я не уверен, что существует так много «зрелых» или, по крайней мере, готовых к производству альтернатив.

Если Catalyst вам не подходит, вы можете использовать облегченную структуру CGI :: Application, которая подходит ваши потребности или взгляните на некоторые из менее известных фреймворков MVC, таких как PageKit и Maypole.

person David McLaughlin    schedule 05.09.2008
comment
@David: Maypole в значительной степени заброшен, насколько я знаю, я бы не рекомендовал это. Не знаю PageKit, но Jifty также может быть альтернативой. - person Leon Timmermans; 05.09.2008
comment
Версия Maypole последний раз была выпущена в апреле 2008 года. Мне это не кажется отказом от ПО. - person Dave Cross; 17.09.2008
comment
Это содержало лишь несколько исправлений. Последний выпуск перед этим был в августе 2007 года. Один выпуск исправления ошибок в 6 месяцев - это не то, что я считаю очень живым. - person Leon Timmermans; 18.09.2008
comment
просто проверяю, использует ли наша текущая структура CGI.pm, есть ли достаточно веские причины для перехода на Catalyst? цель состоит в том, чтобы сделать Web 2.0 максимально дружелюбным. благодаря. - person melaos; 18.12.2008
comment
Если вы не уверены в причинах перехода на фреймворк, то лично я не думаю, что вам следует это делать. Попробуйте использовать фреймворк в личном проекте и сначала убедитесь, что вы полностью его понимаете. - person David McLaughlin; 06.01.2009
comment
Прелесть Catalyst (по крайней мере, в последний раз, когда я его использовал, это было несколько лет назад) заключается в том, что вы можете подключить свои любимые компоненты вместо компонентов по умолчанию, с которыми он поставляется. Предпочитаете другой ORM, чем Rose :: DB :: Object (хотя я не знаю, зачем вам ...)? Вы можете использовать это вместо этого. Приятно в этом смысле. - person Dan Ray; 19.07.2011
comment
Не могли бы вы изменить свой ответ сейчас, когда есть Mojolicious, который, как мне кажется, был написан одним из создателей Catalyst? - person vol7ron; 28.03.2012
comment
Этот ответ безнадежно устарел. И PageKit, и Maypole последний раз обновлялись 5+ лет назад. Сегодня они представляют собой три альтернативы серьезным веб-фреймворкам на Perl, и это Catalyst, Mojolicious и Танцовщица - person Joakim; 23.07.2012
comment
Как отметил @Joakim, прошло много времени, и это больше не должно быть принятым ответом. Вы не хотите рассматривать PageKit ни для чего, кроме взгляда на то, как давно выполнялась веб-разработка. Ответ Джоэла Бергера на данный момент гораздо более актуален. - person oalders; 27.06.2014

Поскольку возникла эта старая ветка, я упомяну два захватывающих новых дополнения к миру Perl MVC:

  • Dancer (CPAN), на который сильно повлиял Ruby Sinatra , известен своей очень легкой
  • Mojolicious (CPAN), написанный первоначальным разработчиком Катализатор, чтобы использовать то, что он там узнал, у него нет неосновных зависимостей, с очень современными встроенными функциями (HTML5 / CSS3 / Websockets, парсеры JSON / XML, собственный UserAgent / механизм шаблонов)

(N.B. Я использовал Mojolicious больше, чем Dancer, и поэтому, если я пропустил некоторые функции Dancer, которые я перечислил для Mojolicious, я заранее прошу прощения)

person Joel Berger    schedule 17.06.2012

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

Тем не менее, мне нравится Catalyst намного больше, чем любая из альтернатив. И все время становится лучше! Обратной стороной этого является то, что текущие предпочтительные подходы к кодированию продолжают развиваться довольно поспешно - но в последних двух версиях большое внимание уделялось совместимости API, так что теперь бремя в основном ментальное, а не административное. Предстоящий перенос внутренних компонентов на Moose, в частности, может дать отличные преимущества.

Но самый большой аргумент в пользу Catalyst, IMO, - это тип рассылки Chained. Я не встречал ничего подобного во всем web-framework-dom, и это отличный инструмент, позволяющий сохранить ваш код как можно более СУХИМ. Это хорошо сочетается с еще одной замечательной вещью, которую предоставляет Catalyst, а именно uri_for - методом, который принимает контроллер и набор аргументов, а затем создает URI, который отправляется в это место, которое он возвращает. Вместе эти возможности означают, что вы можете структурировать пространство URI так, как считаете нужным, но в то же время можете структурировать свои контроллеры, чтобы избежать дублирования логики, и сохраняя независимость шаблонов от структуры URI.

Это просто великолепно.

person Aristotle Pagaltzis    schedule 16.09.2008
comment
+1 за Непрерывность. Кстати ... Приседания по умолчанию приседают поверх Continuity, что дает вам уровень MVC. - person draegtun; 18.11.2008

Дополнительные комментарии, сделанные другими: Catalyst (который более или менее разветвляется от Maypole), безусловно, является наиболее полным и надежным из них. Есть книга Джонатана Рокуэя, которая, безусловно, поможет вам разобраться в этом.

В дополнение к типу отправки «Привязанный» методы отправки: Regex (и: LocalRegex) обеспечивают огромную гибкость. Последнее приложение, которое мы здесь создали, поддерживает множество разнородных URL-адресов с помощью всего лишь нескольких подпрограмм, использующих: LocalRegex.

Мне также особенно нравится тот факт, что вы не ограничены конкретным языком шаблонов или базой данных. В списке рассылки (и в книге) предпочтение отдается Template :: Toolkit (как и я), и DBIx :: Class (мы продолжаем использовать Class :: DBI), но вы можете использовать практически все, что захотите. В этом смысле Catalyst на удивление агностик.

Не пугайтесь того факта, что Catalyst, похоже, требует половину CPAN в качестве зависимостей. Как только вы его запустите и начнете, это будет хорошо отлаженная машина. Сейчас он достиг такого уровня зрелости, что, когда вы начинаете с ним разбираться, вы обнаруживаете, что он «уходит на второй план». Вы тратите свое время на решение бизнес-задач, а не на борьбу с инструментами, которые используете.

Он делает то, что написано на банке. Катализатор ++

person RET    schedule 17.09.2008

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

Это микро-веб-фреймворк (или веб-микрофреймворк ;-), на который сильно влияет Camping, написанный на Рубин.

NB. Приседания (и кемпинг) не имеют компонентов модели, встроенных в структуру. Вот комментарии авторов к моделям ... «Модели? Весь мир - это ваша модель. ;-) Я всегда неоднозначно относился к определению политики здесь. Используйте то, что вам подходит»

person draegtun    schedule 10.10.2008

Также существует CGI :: Application, который больше похож на внутреннюю часть фреймворка. Это помогает человеку писать базовые CGI и приклеивать к ним кусочки, чтобы сделать их такими, как они хотят. Таким образом, вы можете заставить его использовать почти любые модули или почти все, что находится под солнцем.

person Jeff MacDonald    schedule 25.09.2008

Катализатор - это то, что вам нужно. Еще есть Jifty, но (в прошлый раз я смотрел) ужасная документация.

person Matthew Watson    schedule 05.09.2008

Если вы уже знакомы с Catalyst, то рекомендую сосредоточиться на нем. Он зрелый, хорошо документирован и имеет очень большую базу пользователей, сообщество и коллекцию подключаемых модулей.

person rjray    schedule 15.09.2008

Для вашей проблемы я бы посмотрел на Jifty :: Plugin :: REST, который позволяет получить доступ к моделям и действиям с использованием различных форматов.

Скажу лишь, что у Jifty нет ужасной документации. Однако большая часть прилагаемой документации - это документация по API, но есть список рассылки с очень низким уровнем шума, в котором есть полезные советы и ссылки на приложения.

Wiki на http://jifty.org/ - это еще один ресурс, в котором есть полезные элементы.

Если ваша цель - создать видеомагазин (мой любимый тест для платформ 4GL и CRUD) днем, на него действительно стоит взглянуть!

person dpavlin    schedule 12.09.2008

Другой вариант - Gantry, при использовании вместе с модулем BigTop он может сократить время, необходимое для создания простых сайтов CRUD. .

person Frank Wiles    schedule 16.09.2008

Также существует Clearpress, который я могу порекомендовать как полезное приложение с поддержкой баз данных. Ему нужно меньше зависимостей, чем Catalyst. Мы написали с ним несколько больших приложений, и я запустил с его помощью веб-сайт, посвященный бадминтонной лестнице.

person setitesuk    schedule 12.01.2010

Я создал несколько приложений с помощью Kelp, это легко изучить и очень полезно.

person Miguel Prz    schedule 14.03.2014