¡Preprocesador de plantillas Razor!

Los chicos de Xamarin no dejan de sorprender, si el otro día Lluis Sanchez presentó la increíble herramienta XWT, hoy es el turno de Michael Hutchinson presentando el preprocesador de plantillas Razor. Lo he probado, y es una auténtica pasada. En su blog podemos ver una entrada (publicada hace un par de horas) de cómo usarla en un proyecto MonoTouch, y asegurando que sirve para prácticamente cualquier tipo de proyecto. Yo os haré una demostración en un proyecto de Consola.

En primer lugar debemos descargarnos los fuentes de MonoDevelop y compilarlos (hay mucha documentación en la red sobre esto). A continuación, creamos un nuevo proyecto de consola al que llamaremos TemplateRazor. Creamos una Clase, Foo, con el siguiente código:

   1:  namespace TemplateRazor
   2:   
   3:  {
   4:   
   5:  public class Foo
   6:   
   7:  {
   8:   
   9:  public string Salute {
  10:   
  11:  get{return "Hello Razor";}}
  12:   
  13:  }
  14:   
  15:  }
  16:   

Añadimos un nuevo fichero, HelloWorld.cshtml, desde TextTemplating->Preprocessed Razor Template y escribimos:

   1:  @model Foo
   2:   
   3:  <html>
   4:   
   5:  <body>
   6:   
   7:  @Model.Salute;
   8:   
   9:  </body>
  10:   
  11:  </html>



Ya tendríamos nuestra plantilla lista (si os fijáis nos ha creado dos ficheros un .cshtml y .cs). Ahora sólo falta mostrar el contenido en algún navegador, pero por motivos didácticos vamos a ver el código que nos genera en la consola, para ello:

   1:  using System;
   2:   
   3:  namespace TemplateRazor
   4:   
   5:  {
   6:   
   7:  class MainClass
   8:   
   9:  {
  10:   
  11:  public static void Main (string[] args)
  12:   
  13:  {
  14:   
  15:  var template = new HelloWorld(){Model = new Foo()};
  16:   
  17:  Console.WriteLine(template.GenerateString());
  18:   
  19:  }
  20:   
  21:  }
  22:   
  23:  }
  24:   

Y ¡voilá!

PD Podéis encontrar el proyecto de ejemplo en github.

1 Comentario

  1. jmgomez

    11 diciembre, 2012 at 11:28 am

    Actualización: Han publicado la documentación oficial en:

    http://monodevelop.com/Documentation/Preprocessed_Razor_Templates

Responder a jmgomez Cancelar respuesta

Tu dirección de correo electrónico no será publicada.

*