Introducción a Razor
Una característica de WebMatrix es que nos permite crear sitios web dinámicos del tipo Razor. Este nació como opción para programar aplicaciones web en ASP.Net MVC 3. Cabe mencionar que Razor no es un lenguaje de programación, simplemente un motor de vistas. Como sus siglas lo indican MVC Modelo-Vista-Controlador es uno de los patrones de arquitectura mas populares. En MVC se pretende separar completamente la información que gestiona nuestra aplicación (Modelo) de la forma en la que se presenta (la Vista), desacoplando ambas capas mediante una intermedia (el Controlador) que contendrá toda la lógica para trasladar los datos a la presentación visual deseamos realizar.
ASP.NET MVC 3 respeta firmemente estos principios, hasta el punto de existir varias sintaxis con las que expresar de qué modo queremos crear nuestra vista, siendo 100% reutilizables tanto los controladores como los modelos que tengamos por debajo. De este modo han ido naciendo distintos motores de vistas, como Razor, que nos permiten crear dichas vistas de la forma en que nos sintamos más cómodos.
Objetivos de Razor
Son varios los objetivos que Microsoft se ha marcado en la creación de este motor de vistas, entre los que destacaríamos:
- Compacto, expresivo y fluido: se busca reducir la cantidad de código que necesitamos para crear las vistas, evitando que tengamos que denotar de una forma especial cada línea de código procedural. El compilador será lo suficientemente inteligente como para inferir, en muchas ocasiones, qué tipo de código estamos escribiendo.
- Fácil de aprender: aunque esto es siempre relativo, puesto que depende del bagaje previo del desarrollador y de sus capacidades, en este tutorial dejaremos asentados conceptos lo suficientemente amplios como para hacer frente al 80% de la funcionalidad que podamos necesitar de Razor.
- Funciona en cualquier editor de texto, luego no vamos a tener que estar anclados a Visual Studio, WebMatrix o cualquier otra herramienta para crear nuestros ficheros Razor. Obviamente, el soporte al lenguaje es superior en una herramienta como Visual Studio, donde tendremos toda la potencia de IntelliSense a nuestro alcance, que si editamos simplemente con el Bloc de Notas, pero la decisión última será nuestra.
- Testeable: podremos crear test unitarios de las vistas.
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 caracter 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.
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.
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”. 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 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""";
}
Explicado esto entonces procedemos a crear un nuevo documento en blanco de CSHTML. Lo nombramos “Sintaxis básica”.
A continuación escribimos las siguientes líneas de código:
Finalmente ejecutamos el código, con lo cual se mostrará el resultado más o menos como la siguiente imagen.
Ahora vamos a ver algunos tipos de variables en WebMatrix que nos ayudarán a almacenar datos predefinidos.
Vamos a crear un nuevo proyecto WebMatrix CSHTML y lo nombramos “Variables Básicas” y escribimos el siguiente código:
@{
// para enteros con su máximo valor de almacenamiento
int IntegerVariable = 1234567891;
int IntegerVariableOverflow;
unchecked
{
IntegerVariableOverflow = (int) 12345678912;
}
//una variable float con 7 digitos de precision
float FloatVariable = 0.123456789123456789F;
// una varibale double con 15 dígitos de precisión
double DoubleVariable = 0.123456789123456789;
// Una variable string
string StringVariable = "Hello World! :-)";
// Una variable booleana
bool BoolVariable = true;
// Una variable de tipo datetime, usada para almacenar valores de hora y fecha
DateTime DateTimeVariable = DateTime.Now;
}
<!DOCTYPE html>
<html>
<head>
<title>Variables</title>
</head>
<body>
<p>Contents of IntegerVariable: @IntegerVariable </p>
<p>Contents of IntegerVariableOverflow: @IntegerVariableOverflow </p>
<p>Contents of FloatVariable: @FloatVariable </p>
<p>Contents of DoubleVariable: @DoubleVariable </p>
<p>Contents of StringVariable: @StringVariable </p>
<p>Contents of BoolVariable: @BoolVariable </p>
<p>Contents of DateTimeVariable: @DateTimeVariable </p>
</body>
</html>
Debido a que WebMatrix está basado en C#, podemos utilizar los tipos de dicho lenguaje. Aquí la lista de tipos de datos en C#:
http://msdn.microsoft.com/en-us/library/ya5y69ds%28v=VS.80%29.aspx
Al correr la aplicación observaremos algo como lo siguiente:
Variables enteras
Al declarar el "IntegerVariable" el valor numérico usado para la inicialización debe caer dentro del rango requerido de: -2.147.483.648 y 2.147.483.647.
Variables float
Al declarar el "FloatVariable" el valor numérico usado para la inicialización debe estar dentro del rango requerido: ± 1,5 × 10-45 a ± 3,4 × 1038, de lo contrario será redondeado incorrectamente (debido a los 7 dígitos de precisión).
Variables doble
Al declarar el "DoubleVariable" el valor numérico usado para la inicialización debe estar dentro del rango requerido: ± 5,0 × 10-324 a ± 1,7 × 10308, de lo contrario será redondeado incorrectamente (debido a la 15 dígitos de precisión).
Variables de cadena
Al declarar el "StringVariable" podremos almacenar una secuencia de cero o más caracteres Unicode.
Las variables bool
Al declarar el "BoolVariable" podremos almacenar uno de los dos valores: verdadero / falso.
Las variables DateTime
Al declarar el "DateTimeVariable" podremos almacenar valores de fecha y hora (por lo general con ayudantes).
0 comentarios:
Publicar un comentario en la entrada