> Manuales > Manual de Microsoft WebMatrix

En este artículo vamos a conocer algunos detalles fundamentales sobre la sintaxis Razor, como los caracteres especiales de codificación, las clases y objetos así como las variables y cadenas.

Estamos aprendiendo acerca del desarrollo de aplicaciones con WebMatrix y dedicando nuestros esfuerzos en estos momentos a aprender Razor.

En el primer artículo sobre esta serie de tres dedicada a Razor conocimos que la denominación más correcta para Razor es la de “motor de vistas”, descubrimos los objetivos que busca su creación y aprendimos a crear el clásico “Hola Mundo”. En este artículo empezaremos a desgranar de forma individual los aspectos fundamentales de Razor.

Los caracteres especiales: @, { } y ;

Hay tres caracteres fundamentales para Razor: la arroba (“@”), las llaves (“{ }”) y el punto y coma (“;”). En cuanto a la arroba, nos permite introducir fragmentos de código a ejecutar en el lado del servidor. Con este carácter podemos introducir sentencias “inline” y sentencias compuestas por una o más líneas de código. Ejemplos de cada uno de estos tipos serían:

<h1>Sentencia inline: Son las @DateTime.Now</h1>
@{ var cadena = "Esto es una sentencia de una sola linea"; }
@{
var otraCadena = "Esto es una sentencia";
otraCadena = otraCadena + "en multiples lineas";
}

En este ejemplo podemos ver ya la participación de los otros dos caracteres especiales: el punto y coma y las llaves. En el caso del punto y coma, sirve para terminar cualquier sentencia que no sea “inline”. Las llaves, por su parte, sirven para definir bloques de código, compuestos por una o más líneas. Cualquiera que haya trabajado con lenguajes cuya sintaxis derive del lenguaje C encontrará tremendamente familiares estas reglas.

Clases y Objetos

Toda la plataforma .NET está orientada a objetos y Razor no iba a ser una excepción. Cuando programemos con WebMatrix y hagamos uso de Razor tendremos que usar clases y objetos. No es el objetivo de este artículo explicar la Programación Orientada a Objetos, campo suficientemente amplio como para haber inspirado centenares de libros en los últimos 25 años. Sin embargo, una explicación lo más ligera y sencilla posible no vendrá mal para quienes se aproximen por primera vez a este concepto.

En la POO tenemos la noción de “Clase” como una forma de representar un concepto del mundo real. La clase, por tanto, va a definir comportamientos y propiedades compartidas por todos aquellos que forman parte de él. Trasladando esto al mundo real, podríamos decir que “Perro” es una clase. Todos aquellos que forman parte de esta clase Perro compartirán en común comportamientos como correr, comer o ladrar, y propiedades como el color, el peso o la edad.

Un objeto es una instanciación concreta de una clase. Es decir, es tomar ese molde o patrón que es la clase para crear un elemento concreto. En el mundo real esto lo podríamos traducir como “mi perro”, “el perro del vecino” o “el perro de la esquina”. Todos ellos pertenecen a un mismo género, la clase “Perro”, y todos ellos van a correr, comer y ladrar, pero tendrán valores distintos para sus propiedades, unos serán blancos, otros más delgados, etc.

Hecho este minimalista esbozo de la relación entre clases y objetos, en Razor vamos a tener a nuestra disposición la programación con clases y objetos. En el ejemplo del “Hola Mundo” descrito en el artículo anterior, vimos cómo, accediendo a la propiedad “Now” del objeto DateTime, obteníamos la fecha actual. No será, sin embargo, la única clase y objeto con la que nos iremos familiarizando conforme nos adentremos en la programación con Razor.

Veremos más adelante como existen clases para gestionar la base de datos, clases para comunicarnos con servicios web tan conocidos como Twitter o Facebook, clases para gestionar la seguridad, etc. Y todas estas clases las instanciaremos en objetos concretos antes de hacer uso de ellas; es decir, antes de invocar a sus métodos. Por ahora es suficiente con conocer esta relación entre clases, objetos, propiedades y métodos.

Variables y Cadenas

Las variables nos van a servir para almacenar información. En Razor podemos elegir entre crearlas como “var” para no tener que darles un tipo, o bien indicarles explícitamente dicho tipo, ya sea “int” para enteros, “string” para cadenas de texto, “decimal” para números decimales, etc. Es importante reseñar que los nombres que les demos a las variables son sensibles a mayúsculas. Es decir, no será lo mismo una variable “tabla” que una variable “Tabla” o “TABLA”. Esto es, en realidad, porque toda la sintaxis de Razor es sensible a mayúsculas, por lo que tampoco podríamos definir una variable como “INT variable”. Veamos algunos ejemplos:

@{
// Declaración de variables con y sin tipo
var variableSinTipo = 5;
int variableConTipo = 5;
int variableCONTIPO = 6; // diferente a la anterior
}

En cuanto a las cadenas, se definen utilizando el carácter comillas dobles, como suele ser habitual. En caso de necesitar escapar un carácter especial, la forma de fácil es utilizar el carácter @. Ojo, no debemos confundir este carácter @ con el otro carácter @ del que hemos estado hablando hasta ahora y que sirve para definir fragmentos de código en Razor. Unos ejemplos a continuación:

@{
// Declaracion de cadenas
var cadena = "Esto es una cadena estandar";
var cadenaBackslash = @"Cadena con backslash \";
var cadenaComillas = @"Cadena con ""comillas""";
}

Conclusiones

Hemos visto un par de las características fundamentales de Razor, como son la forma en que se organizan clases y objetos, los caracteres especiales y el uso de variables y cadenas. En el próximo artículo aprenderemos cómo gestionar bucles y decisiones con Razor.

Javier Holguera

Desarrollador senior con tecnología .NET en Payvision.

Manual