关于模型视图控制器:在perl中建议一些好的MVC框架

关于模型视图控制器:在perl中建议一些好的MVC框架

Suggest some good MVC framework in perl

您能为perl建议一些好的MVC框架吗?我知道这是催化剂

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


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

就"纯" MVC而言,我不确定甚至还有很多"成熟"或至少可用于生产的替代品。

如果Catalyst不合适,那么您可以基于轻型框架CGI :: Application来满足您的需求,或者看看一些鲜为人知的MVC框架,例如PageKit和Maypole。


自从弹出旧线程后,我将在Perl MVC世界中提到两个令人兴奋的新功能:

  • 受Ruby的Sinatra影响很大的Dancer(CPAN),它以重量轻而著称
  • Mojolicious(CPAN)由Catalyst的原始开发人员编写,使用他在那儿学到的东西,它没有非核心依赖关系,具有非常现代的内置函数(HTML5 / CSS3 / Websockets,JSON / XML解析器,自己的UserAgent /模板引擎) )

(注:我使用Mojolicious的人数多于Dancer,因此,如果我错过了我为Mojolicious列出的Dancer的某些功能,那么我会提前道歉)


除了已经提到的之外,另一种选择是连续性。但是,它(如名称所暗示的那样)是基于连续的,而不是典型意义上的MVC。尽管如此,还是值得一提,因为它是更好的Perl网络框架之一。

也就是说,我比任何其他替代品都更喜欢Catalyst。而且它一直在不断变得更好!不利之处在于,当前首选的编码方法仍在匆匆忙忙地发展着,但在最后几个版本中,一直非常强调API兼容性,因此现在的负担主要是精神上的而不是管理上的。特别是即将到来的Moose内部构件端口将提供一些出色的好处。

但是支持Catalyst的最大论点是IMO,是链式调度类型。我在所有的web-framework-dom中都没有看到这样的东西,它是使代码尽可能保持DRY的最佳工具。这与Catalyst提供的另一项出色的功能很好地结合在一起,即uri_for-一种方法,该方法接受控制器和大量参数,然后构造一个URI,该URI将分派到该地方,并返回该地方。总之,这些功能意味着您可以按照自己认为正确的任何方式来构造URI空间,同时可以构造控制器以避免逻辑上的重复,并使模板独立于U??RI结构。

真是太好了


最近几天一直在玩Squatting,我不得不说它看起来非常有前途,而且使用起来很有趣。

它是一个微型网络框架(或网络微型框架;-),并受到以Ruby编写的Camping的严重影响。

注意蹲(&Camping)没有将模型组件烘焙到框架中。这是作者对模型的评论..."模型?整个世界就是您的模型。;-)我一直对在此定义策略抱有矛盾。使用对您有用的任何东西"


别人提出的第二点意见:催化剂(或多或少来自五月柱公司)是迄今为止最完整,最强大的催化剂。乔纳森·洛克威(Jonathan Rockway)有一本书肯定会帮助您掌握它。

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

我还特别喜欢您不限于特定的模板语言或数据库这一事实。邮件列表(和书)都具有Template :: Toolkit(与我一样)和DBIx :: Class(我们继续使用Class :: DBI)的首选项,但是您可以使用任何您喜欢的东西。催化剂是如此不可知。

Catalyst似乎需要一半的CPAN作为依赖关系,这一点不要被推迟。一旦启动并运行,它就是一台运转良好的机器。现在,它已经达到了成熟的水平,一旦您掌握了它,就会发现它"逐渐淡出了背景"。您花费时间解决业务需求,而不是与使用的工具作斗争。

它按照锡罐上的说明去做。催化剂++


还有CGI :: Application,它更像框架的内胆。它可以帮助一个人编写基本的CGI,并在其上粘贴一些位,以使其按需定制。因此,您几乎可以不使用任何模块,也可以几乎不使用任何模块。


如果您已经了解Catalyst,则建议重点关注它。它是成熟的,有据可查的,并且具有很大的用户群,社区和插件集合。


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

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

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

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


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


我还建议您使用Clearpress作为有用的数据库支持应用程序。它比Catalyst需要更少的依赖项。我们已经用它编写了一些大型应用程序,并且我使用它来运行羽毛球梯网站。


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


我已经用Kelp构建了一些应用程序,它很容易学习并且非常有帮助。


推荐阅读