关于模型视图控制器:在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构建了一些应用程序,它很容易学习并且非常有帮助。


推荐阅读

    linux服务器搭建命令?

    linux服务器搭建命令?,系统,服务,软件,地址,平台,在线,密码,工具,环境,百度,l

    服务器重启命令linux?

    服务器重启命令linux?,工作,标准,设备,服务,系统,名称,命令,百度,网络,密码,

    linux服务端常用命令?

    linux服务端常用命令?,工作,地址,系统,网络,基础,命令,标准,工具,信息,管理,l

    linux查询表结构命令?

    linux查询表结构命令?,系统,标准,信息,数据,地址,设备,时间,适当,软件,命令,l

    linux禁用服务命令行?

    linux禁用服务命令行?,服务,系统,软件,管理,工具,信息,状态,平台,连续,技术,l

    linux停服务常用命令?

    linux停服务常用命令?,地址,工作,系统,命令,服务,信息,标准,管理,代码,进程,l

    linux服务器删除命令?

    linux服务器删除命令?,系统,服务,管理,情况,命令,工作,互动,地址,软件,较大,l

    linux开启服务命令?

    linux开启服务命令?,服务,标准,设备,工作,网络,系统,密码,命令,服务器,终端,

    linux服务器负荷命令?

    linux服务器负荷命令?,信息,电脑,中科,环境,工具,系统,平均,检测,情况,状态,l

    linux常见服务器命令?

    linux常见服务器命令?,信息,工作,标准,地址,设备,系统,情况,时间,状态,命令,

    linux服务器基础命令?

    linux服务器基础命令?,设备,标准,工作,地址,服务,系统,信息,情况,图片,基础,

    服务器linux命令大全?

    服务器linux命令大全?,标准,工作,设备,系统,服务,信息,时间,命令,服务器,级

    重启linux服务器命令?

    重启linux服务器命令?,标准,设备,工作,命令,网络,系统,提示,主机,服务器,接

    linux用命令启动服务?

    linux用命令启动服务?,服务,网络,密码,信息,系统,设备,地址,项目,状态,积极,l

    linux停起服务命令?

    linux停起服务命令?,服务,系统,状态,代码,工具,情况,电脑,连续,跨行,软件,如

    linux系统启服务命令?

    linux系统启服务命令?,服务,系统,名称,网络,命令,状态,设备,工作,标准,信息,l

    linux把命令做成服务?

    linux把命令做成服务?,服务,系统,软件,代码,工具,密码,最新,地址,设备,网站,

    服务器关机命令linux?

    服务器关机命令linux?,系统,等级,工作,基础,命令,网络,体系,标准,实战,灵活,l

    linux服务器快捷命令?

    linux服务器快捷命令?,工作,标准,设备,第一,首页,名称,系统,环境,命令,终端,