在perl中建议一些好的MVC框架

时间:2008-09-05 09:36:30

标签: perl model-view-controller

你能为perl建议一些好的MVC框架 - 我知道的是catalyst

需要能够在perl基础结构上公开服务,这些服务可以被Java / .Net应用程序无缝地调用。

12 个答案:

答案 0 :(得分:21)

我现在告诉你,就快速应用程序开发MVC框架而言,Catalyst在Perl开发人员中具有最高的声誉。

就“纯粹的”MVC而言,我不确定是否有那么多“成熟”或至少是生产就绪的替代品。

如果Catalyst对您不合适,那么您可以构建轻量级框架CGI::Application以满足您的需求,或者查看一些鲜为人知的MVC框架,如PageKit和{ {3}}

答案 1 :(得分:14)

自从这个旧线程出现以来,我将提到Perl MVC世界的两个令人兴奋的新增内容:

  • DancerCPAN)深受Ruby的Sinatra影响,以轻量级着称
  • MojoliciousCPAN)由Catalyst的原始开发人员编写,使用他在那里学到的东西,它没有非核心依赖,具有非常现代的内置(HTML5 / CSS3 / Websockets, JSON / XML解析器,它自己的UserAgent /模板引擎)

(N.B。我比舞者更多地使用Mojolicious,因此如果我错过了我为Mojolicious列出的舞者的某些特征,那么我会提前道歉)

答案 2 :(得分:8)

除了已经提到的另一种选择之外,另一种选择是连续性;然而,它(在名称意味着暗示)基于延续而不是典型意义上的MVC。不过,值得一提的是,它是更好的Perl Web框架之一。

那就是说,我比任何替代品都更喜欢Catalyst。而且它一直在变得越来越好!其缺点是当前首选的编码方法继续在相当匆忙的剪辑中发展 - 但在最后几个版本中,一直强调API兼容性,因此负担现在主要是心理而非管理。即将到来的Moose内部港口有望提供一些极好的好处。

但支持Catalyst,IMO的最大理由是链式调度类型。我在所有的web-framework-dom中都没有看到它,它是一个最好的工具,可以让你的代码尽可能干。这与Catalyst提供的另一个伟大的东西很好地结合,即uri_for - 一个接受控制器和一堆参数的方法,然后构造一个URI,它将分派给它返回的那个地方。总之,这些功能意味着您可以按照您认为正确的方式构建URI空间,同时可以构建控制器以避免重复逻辑,保持模板独立于U​​RI结构。 / p>

这很棒。

答案 3 :(得分:5)

借调其他人的评论:催化剂(或多或少来自Maypole)是迄今为止最完整和最强大的。 Jonathan Rockway的一本书肯定会帮助你掌握它。

除了'Chained'调度类型之外,:Regex(和:LocalRegex)调度方法提供了极大的灵活性。我们在这里构建的最新应用程序通过一小部分使用LocalRegex支持许多不同的URL。

我还特别喜欢您不限于特定模板语言或数据库的事实。邮件列表(和书)都偏爱Template :: Toolkit(和我一样),DBIx :: Class(我们继续使用Class :: DBI),但你可以使用你喜欢的任何东西。催化剂就是这种方式非常不可知。

不要因为Catalyst似乎需要一半CPAN作为依赖项而被推迟。一旦你启动并运行,它就是一台运行良好的机器。它已经达到了成熟的程度,因为一旦你掌握了它,你就会发现它“逐渐消失在背景中”。您花时间解决业务需求,而不是使用您使用的工具。

它在锡上做了它所说的。催化剂++

答案 4 :(得分:5)

过去几天一直在玩Squatting,我不得不说这看起来非常有前途并且使用起来很有趣。

它是一个微型webframework(或web微框架;-),受到用Ruby编写的Camping的影响很大。

NB。蹲(和露营)没有模型组件烘焙到框架中。以下是作者对模型的评论...... “模型?整个世界都是你的模型。;-)我一直对这里定义政策感到矛盾。使用适合你的任何东西”

答案 5 :(得分:4)

还有CGI :: Application,它更像是框架的内容。它可以帮助一个人编写基本的CGI和胶水位,使其成为他们喜欢的自定义。所以你可以使用它几乎不使用任何模块,或只是在阳光下使用每个人。

答案 6 :(得分:2)

催化剂是要走的路。还有Jifty,但(我上次看过),它的文档很糟糕。

答案 7 :(得分:2)

对于您的问题,我将介绍Jifty :: Plugin :: REST,它允许使用各种格式访问模型和操作。

我只想说Jifty没有可怕的文档。但是,大多数包含的文档都是API文档,但是有非常低噪声的邮件列表,其中包含有用的提示和应用程序链接。

Wiki http://jifty.org/是另一个有用的资源。

如果您的目标是在下午制作视频商店(我最喜欢的4GL和CRUD框架基准),那真的值得一看!

答案 8 :(得分:2)

如果您已经了解Catalyst,那么我建议您关注它。它成熟,文档齐全,拥有庞大的用户群,社区和插件集。

答案 9 :(得分:1)

另一个选项是Gantry,当与BigTop模块结合使用时,它可以减少构建简单CRUD站点所需的时间。

答案 10 :(得分:1)

我还可以推荐Clearpress作为有用的数据库支持的应用程序。它比Catalyst需要更少的依赖性。我们已经用它写了一些大型应用程序,我使用它运行一个羽毛球阶梯网站。

答案 11 :(得分:0)

我使用Kelp构建了一些应用程序,它易于学习且非常有用。