Perl 梅森是一个框架吗?

Perl 梅森是一个框架吗?,perl,web-applications,frameworks,mason,Perl,Web Applications,Frameworks,Mason,我一直在和一个朋友讨论Mason(Perl)不是一个框架,而是一种模板语言。我觉得Mason for Perl做的和JSP for Java做的一样(作为类比,而不是纯粹的技术比较)。据我所知,JSP不是一个框架,我觉得Mason也不是。当我查看wikipedia时,我看到主站点说它是一个用Perl编写的web应用程序框架,而讨论页面对此提出了质疑 有没有关于为什么它是/它不是一个框架的指针 根据ysth的评论进行更新: 对于一个框架,我觉得它至少应该使db访问变得容易,管理会话,webapp需

我一直在和一个朋友讨论Mason(Perl)不是一个框架,而是一种模板语言。我觉得Mason for Perl做的和JSP for Java做的一样(作为类比,而不是纯粹的技术比较)。据我所知,JSP不是一个框架,我觉得Mason也不是。当我查看wikipedia时,我看到主站点说它是一个用Perl编写的web应用程序框架,而讨论页面对此提出了质疑

有没有关于为什么它是/它不是一个框架的指针

根据ysth的评论进行更新:
对于一个框架,我觉得它至少应该使db访问变得容易,管理会话,webapp需要的基本安全性,模板化和代码重用(或者使基本任务变得容易的库)。

取决于您对框架的定义


如果名称框架做了不止一件事,您可以将其应用于任何库。

模板系统类似于
HTML::Template
,也就是说,一个只做模板的模块

我觉得
Mason
做得更多,它有一个路由机制,它通过
%ARGS
提供参数处理,通过
%INIT
初始化

它还提供到
mod_perl
CGI
的接口


现在,它不与数据库通信,似乎您想要一种干净的方式来实现它,您必须使用
Class::DBI
DBIx::Perlish
或其他一百个进行对象映射的perl模块之一,或者别的什么…

如果不看一下HTML::Mason是否是一个框架,我就无法回答这个问题,但我始终对以下定义感到满意

“框架调用您的程序,而您的程序调用库”

从它的竞争来看,我认为它是一种模板语言。否则,将被列入名单。另外,我想我在某个地方读到过,可以将Mason用作Catalyst应用程序的一部分


我想我可以看到在哪里可以像框架一样使用它,但如果你把它看作一种模板语言,它似乎更完整

它不是一种框架类型,它可能比RubyonRails更接近PHP(从我所看到的情况来看也是如此)。

Mason距离MVC(模型-视图-控制器)框架还有一个“M”的距离。它提供了广泛的渲染(视图)功能,这就是为什么人们认为Mason是一种模板语言。然而,它也提供了相当多的分派机制(尤其是以dhandlers的形式)和控制机制(自然适合自动处理程序)

几年前,我写了一篇文章(在梅森)来展示其中的一些特性。它针对全屏显示进行了优化,并且需要启用javascript

梅森没有给你的是一个数据库抽象层,所以你必须带上你自己的模型

据我所知,amazon.com是用Mason和其他语言编写的


如果你喜欢和Mason一起工作,但是你想拥有一个模型、更多的玩具和一匹小马,那么你可以考虑把它看作是一个Web应用框架。

Mason本身并不是一个框架,它只是一个模板系统,但是有一些非常酷的特性。它有自己的结构,您可以很容易地将perl代码嵌入其中,而且它还支持缓存。我见过一些人单独使用Mason开发大型应用程序,但我想它在MVC框架中工作得更好


保重

HTML::Mason是框架在变老时想要成为的东西。使用HTML::Mason,您可以获得:

  • 调度员
  • 模板
  • 缓存
  • 伐木
  • 极其灵活的模块化

它是为高性能多层web应用程序而设计的,不是为了取悦从桌面编程(如MVC was)中借用的设计模式的粉丝。

以下框架定义摘自Gamma设计模式书籍。“框架是一组协作类,它们构成了特定软件类的可重用设计。”根据该定义,Mason是一个框架。MVC框架只是框架的一种类型。

您可能希望将您的问题限定为“它是web应用程序框架吗”,因为不合格的“框架”几乎可以应用于任何事情。也许你可以发布一个你自己问题的答案,列出web应用程序框架必须具备的属性,以及Mason具备或不具备的属性?我只是想再次澄清这个问题。一些答案也表明了这一点。这个问题很容易解释。嘿,你的链接不起作用。我很想看你的教程。^第二,7年后!哦!