.net templates template-engine nvelocity

.net - ¿Está muerto el proyecto NVelocity? ¿Hay alternativas?



templates template-engine (10)

Estoy buscando un motor de plantillas para .NET / C # para generar notificaciones de correo electrónico en mi aplicación. Leí sobre NVelocity en el pasado y creo que se ajustaría a mis necesidades, pero parece que este proyecto está muerto.

¿Seguiría recomendando utilizar NVelocity para ese propósito o podría sugerir alguna alternativa?

Nota: Encontré algunos otros motores de plantillas, pero estos son en su mayoría "motores de visualización" para ASP.NET MVC (Brail, NHaml, etc.). Pero creo que esto no es lo que estoy buscando.


Como NVelocity parece haber muerto (de nuevo), sugeriría DotLiquid . No puedo decir mucho por ahora porque todavía lo estoy evaluando, pero parece prometedor (y se construye como una biblioteca MonoTouch / MonoDroid para lo que me preocupa).

ACTUALIZACIÓN [11 de junio de 2012]

La restricción de tener clases / colecciones "seguras" como modelos puede ser una fuente importante de dolores de cabeza. Al evaluar este motor, es posible que desee comenzar desde este punto.



Hay proyecto en codeplex.

http://www.codeplex.com/NVelocity

Descripción del proyecto: NVelocity es un puerto de framework de código fuente Java muy popular de código abierto, velocidad 1.6. NVelocity es una biblioteca .Net pura escrita en C # que actualmente se dirige a Framework versión 3.5.

El código fuente inicial registrado parece ser directamente de svn.castleproject.org.

La persona que creó el proyecto CodePlex (nombre de usuario: TerryLiang) también creó uno en agosto desde nLucene. Para ese proyecto, ha realizado alrededor de 50 registros desde entonces, así que quizás esté planeando hacer un trabajo serio en ese proyecto.


No hay nada malo con NVelocity, excepto que es difícil encontrar la versión más actualizada del proyecto. Por lo general, Google se convierte en el antiguo enlace de sourceforge como primer golpe, y el enlace de Codeplex es el siguiente más común. El lugar para conseguirlo es desde el castillo, como lo mencionó Pervez Choudhury. Usamos la versión Castle de NVelocity en el trabajo, y es genial.

Hay otra opción que surgió en los años desde que se hizo esta pregunta por primera vez, y esa es la T4 de Microsoft. La mayoría de la gente piensa que T4 es un generador de precompilación, así fue como se lanzó por primera vez, pero en realidad ahora puede usarlo para generar una clase de generador y generar generación dinámica en tiempo de ejecución. Se llama plantilla T4 preprocesada y puede leer más sobre esto here . La ventaja es que ya está integrado en Visual Studio, por lo que no necesita hacer nada especial para ponerse en marcha.


No puedo DotLiquid a Sorin por DotLiquid , así que solo quiero agregar mi comentario, parece una gran plataforma en desarrollo activo.

Y con las características que tienen en la versión troncal (no en la versión dll publicada), puede usar pocos sin la necesidad de heredar de ninguna clase base si las registra de esta manera:

foreach (var type in {Assembly}.GetTypes()) Template.RegisterSafeType(type, type.GetProperties().Select(p => p.Name).ToArray());

Y esto resolvió los dolores de cabeza que mencionó Sorin.

StringTemplate también es una gran cosa, pero las plantillas son demasiado estrictas y limitantes, son vistas muy puras y no es práctico usarlas ...


No veo una razón para no usar NVelocity (la bifurcación del proyecto Castle). Es estable y sus necesidades específicas (plantillas de correo electrónico) probablemente no sean tan complejas como las de otros proyectos que utilizan NVelocity, por lo que no debe esperar ningún problema.



Puede usar la versión Java original (y actualizada con frecuencia) de Velocity en .Net utilizando IKVM para convertirla en un ensamblaje. He utilizado la velocidad con éxito de esta manera para la generación de código en .Net. También puede echar un vistazo a StringTemplate. Hay versiones java y C # de StringTemplate. Puede encontrar un mini-tutorial rápido sobre el uso de Velocity en .Net here . http://www.stringtemplate.org/ embargo, http://www.stringtemplate.org/ un vistazo a http://www.stringtemplate.org/ , ya que creo que es un motor de plantillas más limpio (soy un converso reciente).


Recomendaría usar XSLT para las plantillas. Sí, se necesita un poco más de tiempo para aprender la tecnología, pero tiene una solución de plantilla mucho más flexible que cualquier otra cosa.


The Castle Project bifurcó el proyecto y lo ha estado manteniendo, y más recientemente lanzó la versión 1.1.1 el 10 de diciembre de 2010. Más detalles se pueden encontrar en el sitio de Castle Projects NVelocity . También le han hecho una serie de mejoras, cuyos detalles se pueden encontrar en su página de mejoras de NVelocity . Parece que el proyecto ya está muerto y en MonoRail 3, ha sido reemplazado por Castle Blade, que se basa en Razor.

Si está buscando una alternativa, le sugiero el motor Razor view de ASP.Net MVC3 o Spark View Engine .

El proyecto de código abierto RazorEngine permite usar el motor de Razor View fuera de ASP.Net MVC o las páginas web para que pueda usarlo para generar correos electrónicos con plantillas.