Можете ли вы предложить хорошую структуру MVC для perl - я знаю, это catalyst
Потребность заключается в том, чтобы предоставлять услуги в инфраструктуре perl, которые могут быть вызваны приложениями Java/.Net.
Можете ли вы предложить хорошую структуру MVC для perl - я знаю, это catalyst
Потребность заключается в том, чтобы предоставлять услуги в инфраструктуре perl, которые могут быть вызваны приложениями Java/.Net.
Я расскажу вам прямо сейчас, что Catalyst на сегодняшний день является лучшей репутацией среди разработчиков Perl с точки зрения быстрой разработки приложений MVC.
В терминах "чистого" MVC я не уверен, что есть даже такие "зрелые" или, по крайней мере, готовые к производству альтернативы.
Если Catalyst вам не подходит, вы можете использовать легкую фреймворк CGI:: Application в соответствии с вашими потребностями или принять посмотрите на некоторые из менее известных фреймворков MVC, таких как PageKit и Maypole.
Поскольку этот старый поток появился, я расскажу о двух интересных новых дополнениях к миру Perl MVC:
(N.B. Я использовал Mojolicious больше, чем Dancer, и поэтому, если я пропустил некоторые особенности танцора, которые я перечислил для Mojolicious, я заранее извиняюсь)
Другой альтернативой, кроме уже упомянутых, является Continuity; тем не менее, это (как предполагается, подразумевается в названии), основанный на продолжении, а не MVC в типичном смысле. Тем не менее, стоит упомянуть, потому что это одна из лучших веб-фреймворков Perl.
Тем не менее, мне нравится Catalyst намного лучше, чем любой из альтернатив. И он все еще становится все лучше! Недостатком этого является то, что существующие предпочтительные подходы к кодированию продолжают развиваться на довольно быстром клипе, но для последних двух версий особое внимание было уделено API-совместимости, поэтому теперь бремя в основном ментальное, а не административное. Предстоящий порт внутренних дел в Музе, в частности, готов предоставить отличные преимущества.
Но самым большим аргументом в пользу Catalyst, IMO, является тип отправки Chained. Я не видел ничего подобного во всей web-framework-dom, и это самый отличный инструмент для того, чтобы ваш код был как можно сухим. Это хорошо сочетается с еще одной замечательной вещью, которую предлагает Catalyst, а именно uri_for
- метод, который принимает контроллер и кучу аргументов, а затем создает URI, который отправляет туда, откуда он возвращается. Вместе эти средства означают, что вы можете структурировать свое пространство URI любым способом, который вы считаете правильным, но в то же время можете структурировать ваши контроллеры, чтобы избежать дублирования логики и сохранять шаблоны независимо от структуры URI.
Его просто блестящий.
Вторичные комментарии, сделанные другими: Catalyst (который более или менее раздвоен из Maypole) является самым отдаленным и надежным из них. Существует книга Джонатана Рокуэя, которая, несомненно, поможет вам справиться с этим.
В дополнение к типу отправки "Цепочки" методы отправки: Regex (и: LocalRegex) обеспечивают огромную гибкость. Последнее приложение, которое мы построили здесь, поддерживает множество разрозненных URL-адресов через небольшую часть подписчиков, использующих: LocalRegex.
Мне также особенно нравится тот факт, что вы не ограничены конкретным языком шаблонов или базой данных. В списке рассылки (и в книге) есть предпочтение Template:: Toolkit (как и я) и DBIx:: Class (мы продолжаем использовать Class:: DBI), но вы можете использовать практически все, что вам нравится. Катализатор удивительно агностик в этом смысле.
Не отвлекайтесь на тот факт, что Catalyst, по-видимому, требует половину CPAN в качестве зависимостей. Как только вы его запускаете, это хорошо смазанная машина. Теперь он достиг уровня зрелости, и как только вы справитесь с этим, вы обнаружите, что он "исчезает в фоновом режиме". Вы тратите свое время на решение бизнес-задач, а не на борьбу с инструментами, которые вы используете.
Он делает то, что говорит на олове. Catalyst ++
Играя с Squatting последние несколько дней, и я должен сказать, что это выглядит очень многообещающе и было весело в использовании.
Его микро webframework (или веб-микрофотография;-) и находится под сильным влиянием Camping, который написан на Ruby.
NB. На корточках (& Camping) нет компонентов модели, запеченных в каркасе. Здесь авторы комментируют модели... "Модели? Весь мир - ваша модель.;-) Я всегда был неоднозначным в определении политики здесь. Используйте все, что работает для вас"
Существует также приложение CGI:: Application, которое больше похоже на мужество фреймворка. Это помогает человеку писать базовые CGI и наклеивать биты на него, чтобы сделать его обычным, как им нравится. Таким образом, вы можете использовать почти любые модули или почти все под солнцем.
Катализатор - это путь. Существует также Jifty, но (в прошлый раз, когда я смотрел), у него была ужасная документация.
Для вашей проблемы я бы рассмотрел Jifty:: Plugin:: REST, который позволяет получать доступ к моделям и действиям с использованием различных форматов.
Позвольте мне просто сказать, что у Jifty нет ужасной документации. Однако большая часть документации включает документацию по API, но есть очень малошумный список рассылки, который содержит полезные советы и ссылки на приложения.
Wiki at http://jifty.org/ - это еще один ресурс с полезными битами.
Если ваша цель - сделать видео-магазин (мой любимый бенчмарк для 4GL и CRUD-фреймворков) днем, это действительно стоит посмотреть!
Если вы уже знаете о Catalyst, я рекомендую сосредоточиться на нем. Он зрелый, хорошо документированный и имеет очень большую пользовательскую базу, сообщество и коллекцию подключаемых модулей.
Посмотрите здесь: Сравнение CGI:: App с Катализатором
Довольно поздно, но лучше, чем когда-либо...: -)
Другими параметрами являются Gantry при использовании в сочетании с модулем BigTop, что позволяет сократить время, затрачиваемое на создание простых сайтов CRUD.
Существует также Clearpress, который я могу рекомендовать в качестве полезного приложения с поддержкой базы данных. Он требует меньше зависимостей, чем Catalyst. Мы написали несколько больших приложений с ним, и я запускаю сайт бадминтон-лестницы, используя его.
Я создал некоторые приложения с Kelp, он легко учится и очень полезен.