我和一个朋友一直认为Mason (Perl)不是一个框架,而是一种模板语言。我觉得Mason for Perl做了JSP为Java做的事情(作为类比,而不是纯粹的技术比较)。据我所知,JSP不是一个框架,我觉得Mason也不是。当我查看维基百科Mason (Perl)时,我看到主站点说它是一个用Perl编写的web应用程序框架,而讨论页面对它进行了竞争。
对于为什么它是/不是一个框架,有什么建议吗?
根据ysth的评论进行更新:对于一个框架,我觉得它至少应该让数据库访问变得容易,管理会话,webapp需要的基本安全性,模板和代码重用(或者让基本任务变得容易的库)。
发布于 2008-12-08 21:59:00
Mason是MVC (Model-View-Controller,模型-视图-控制器)框架的缩写。它提供了广泛的呈现(视图)功能,这就是为什么人们认为Mason是一种模板语言。然而,它也提供了相当多的分派机制(特别是以dhandlers的形式)和控制机制(它们自然地适合于自动处理程序)。
几年前,我写了一个on-line tutorial (在Mason中)来展示其中的一些特性。它针对全屏显示进行了优化,并且需要启用javascript。
Mason没有给你一个数据库抽象层,所以你必须带上你自己的模型。
据我所知,amazon.com和many other sites都是用梅森编写的。
如果你喜欢与梅森一起工作,但是你想要一个模型,更多的玩具和一匹小马,那么你可以考虑将Jifty作为一个web应用程序框架。
发布于 2008-12-08 10:41:10
模板系统应该类似于HTML::Template,即只执行模板的模块。
我觉得Mason做的更多,它有某种路由机制,它通过%ARGS提供参数处理,通过%INIT初始化。
它还提供到mod_perl、CGI...的接口。
现在,它不与数据库通信,就像您想要一种干净的方式一样,您将不得不使用Class::DBI、DBIx::Perlish或其他数百个执行对象映射的perl模块之一,或者其他任何模块……
发布于 2008-12-08 11:56:14
如果不看一下HTML::Mason是不是一个框架,我不能回答这个问题,但我总是对以下定义感到满意……
“框架调用你的程序,而你的程序调用一个库”
https://stackoverflow.com/questions/349094
复制相似问题