perl web-applications frameworks mason

perl - ¿Mason es un marco?



web-applications frameworks (9)

Al ver Embedded Perl en HTML con la vista de Mason de su competencia, diría que es un lenguaje de plantilla. De lo contrario, Catalyst y Maypole estarían en la lista. Además, creo que leí en alguna parte que puedes usar Mason como la porción de Vista en una aplicación de Catalyst.

Supongo que puedo ver dónde puedes usarlo como un marco, pero parece ser más completo si lo ves como un lenguaje de plantilla.

He tenido una discusión con un amigo de que Mason (Perl) no es un marco, sino un lenguaje de plantillas. Siento que Mason para Perl hace lo que JSP hace por Java (como una analogía, no una comparación técnica pura). Por lo que sé, JSP no es un marco y creo que tampoco lo es Mason. Cuando busqué Wikipedia Mason (Perl) , veo que el sitio principal dice que es un marco de aplicación web escrito en Perl, mientras que la página de discusión lo impugna.

¿Alguna sugerencia sobre por qué es / no es un marco?

Actualización basada en comentarios de ysth: para un framework, creo que al menos debería facilitar el acceso a db, administrar sesiones, seguridad básica que necesitaría una aplicación web, plantillas y reutilización de código (o bibliotecas que facilitan las tareas básicas).


Depende de su definición de marco.

Puede aplicar el marco de nombre a cualquier biblioteca si hace más de una cosa.


Mason es un ''M'' corto de ser un marco MVC (Modelo-Vista-Controlador). Proporciona funciones de representación (visualización) extensas, por lo que las personas piensan que Mason es un lenguaje de plantillas. Sin embargo, también proporciona bastantes mecanismos de despacho (epsecialmente en forma de dhandlers) y mecanismos de control (que se ajustan naturalmente a los manejadores automáticos).

Hace algunos años escribí un tutorial en línea (en Mason) para mostrar algunas de estas características. Está optimizado para visualización en pantalla completa, y necesita javascript habilitado.

Lo que Mason no le da es una capa de abstracción de base de datos, por lo que debe traer su propio Modelo.

Por lo que yo sé, amazon.com está escrito en Mason, junto con muchos otros sitios .

Si le gusta trabajar con Mason, pero le gustaría tener un Modelo, más juguetes y un pony, entonces puede considerar mirar a Jifty como un marco de aplicación web.


No es un tipo de marco de trabajo Modelo-Vista-Controlador , probablemente esté más cerca de PHP que Ruby on Rails, por ejemplo (y tan malo por lo que he visto de él).


Un sistema de plantillas sería algo así como HTML::Template , es decir, un módulo que solo hace plantillas.

Siento que Mason hace más, de alguna manera tiene un mecanismo de enrutamiento, proporciona manejo de argumentos a través de %ARGS , intialisations a través de %INIT .

También proporciona interfaces para mod_perl , CGI ...

Ahora, no habla con la base de datos, como si quisiera una forma limpia de hacerlo, tendrá que usar Class::DBI , DBIx::Perlish o uno de los otros cientos de módulos de Perl que hace la asignación de objetos, o cualquier otra cosa...


Mason por sí solo no es un marco, es solo un sistema de plantillas PERO con algunas características muy interesantes. Tiene su propia estructura y puedes insertar código perl muy fácilmente en él, también tiene soporte de caché. He visto personas que usan Mason solo para desarrollar una aplicación grande, pero creo que funciona mejor en un marco MVC.

¡Cuídate!


HTML :: Mason es lo que los frameworks quieren ser cuando crezcan. Con HTML :: Mason obtienes:

  • un despachador
  • plantilla
  • almacenamiento en caché
  • explotación florestal
  • modularización extremadamente flexible

Fue diseñado para aplicaciones web multinivel de alto rendimiento, no para complacer a los fanáticos de los patrones de diseño tomados de la programación de escritorio (como lo fue MVC).


No puedo responder la pregunta de si HTML :: Mason es o no es un framework sin mirarlo, pero siempre estoy contento con la siguiente definición ...

"un framework llama a su programa mientras que su programa llama a una biblioteca"


La siguiente definición de marco se toma del libro Gamma sobre Patrones de diseño. "Un marco es un conjunto de clases colaboradoras que conforman un diseño reutilizable para una clase específica de software". Mason, según esa definición, es un marco. Un marco MVC es solo un tipo de marco.