Razor vs Web Forms Paper Majo

13
RAZOR ENGINE VS WEB FORMS INGENIERÍA DE SISTEMAS PROYECTOS 1 PRESENTADO POR: MARÍA JOSÉ CHÁVEZ ESTRADA Cajamarca, Abril Del 2012 DOCENTE: ING. SAMUEL MESTANZA ALCÁNTARA

Transcript of Razor vs Web Forms Paper Majo

Page 1: Razor vs Web Forms Paper Majo

RAZOR ENGINE VS WEB FORMS

INGENIERÍA DE SISTEMAS

PROYECTOS 1

PRESENTADO POR: MARÍA JOSÉ CHÁVEZ ESTRADA

Cajamarca, Abril Del 2012

DOCENTE: ING. SAMUEL MESTANZA ALCÁNTARA

Page 2: Razor vs Web Forms Paper Majo

Razor Enginee vs Web Forms

.

1

RAZOR ENGINE vs WEB FORMS

María José Chávez Estrada

e-mail: [email protected]

[email protected]

RESUMEN: En este documento se hablará acerca de

RAZOR el cual está diseñado para ser un motor de vista

alternativo para ASP.NET MVC. Inicialmente introducido

en WebMatrix y ahora incluido como parte de ASP.NET

MVC 3, asimismo RAZOR permite a los desarrolladores

reemplazar el anticuado <%%> de sintaxis con un

modelo de codificación mucho más limpio que se detalla

a continuación, sobre todo alrededor del símbolo @ sin

perder las características de HTML. Como nuevo

tecnología viene cargada de mejoras sobre tecnologías

antecesoras como las WEB FORMS, trayendo consigo

ventajas y desventajas que se explicaran a detalle.

PALABRAS CLAVE: WEB, RAZOR, Web Forms,

MVC, Compacto, expresivo y fluido.

1 INTRODUCCIÓN: ASP.NET MVC 3

ASP.NET MVC 3 es un marco de trabajo para la

construcción de aplicaciones escalables basadas

en estándares web utilizando patrones de diseño

bien establecidos y el poder del Framework de

ASP.NET.

ASP.NET MVC 3 se basa en ASP.NET MVC 1 y 2,

es la adición de grandes características que

simplifican el código.

El modelo de arquitectura Model-View-Controller

(MVC) separa una aplicación en tres componentes

principales: el modelo, la vista y el controlador. Fue

descrito por primera vez en 1979 por Trygve

Reenskaug, de los laboratorios de Xerox, en la

publicación: “Programación de Aplicaciones en

Smalltalk-80™: Como utilizar Modelo Vista

Controlador”.

La implementación de Microsoft ASP.NET MVC

proporciona una alternativa al modelo de

formularios Web Forms de ASP.NET para crear

aplicaciones web. ASP.NET MVC es un marco de

presentación de poca complejidad y fácil de testear

que, como las aplicaciones basadas en formularios

Web Forms, se integra con características de

ASP.NET como son las páginas maestras y la

autenticación basada en pertenencias

Figura 1: Modelo Vista Controlador

Desde su primera versión ASP.NET MVC ha

tenido el concepto de motor de vistas (View

Engine). Recapitulando: en ASP.NET MVC las

vistas realizan tareas sólo de presentación, no

contienen ningún tipo de lógica de negocio y no

Page 3: Razor vs Web Forms Paper Majo

Razor Enginee vs Web Forms

.

2

acceden a datos. Básicamente se limitan a mostrar

datos y a solicitar datos nuevos al usuario.

Si vienes del mundo de webforms, olvídate del

concepto de Web Controls: no existen en

ASP.NET MVC. No existe el drag and drop, no se

configura propiedades. Las vistas son básicamente

HTML. Y lo que no es HTML son pequeñas

porciones de código de servidor destinadas a

terminar generando HTML para mostrar

información.

El equipo que desarrolló ASP.NET MVC tuvo la

idea de permitir separar la sintaxis de servidor

usada del framework de ASP.NET MVC. ¿El

resultado? Lo que llamamos un motor de vistas de

ASP.NET MVC.

En las versiones 1 y 2, el framework viene con un

único motor de vistas, el llamado motor ASPX, que

usa los clásicos archivos .aspx como vistas de

ASP.NET MVC. Pero ¡ojo! aunque estemos

utilizando archivos .aspx, no son webforms (los

webcontrols no funcionan, no tenemos viewstate ni

el ciclo de vida de webforms y además es que son

vistas de MVC, por lo que sólo deben hacer tareas

de presentación). La sintaxis que usa el motor

ASPX es un poco extensa, es decir que se debe

escribir mucho para ciertas tareas: Existe una gran

cantidad de veces que debe usarse el tag <% y su

parejo %> para indicar dónde empieza y termina el

código de servidor.

Rápidamente empezaron a surgir motores de

vistas alternativos, realizados por la comunidad,

con la intención de tener sintaxis más claras para

nuestras vistas. Algunos ejemplos son Nhaml y

Spark.

Finalmente la versión 3 de ASP.NET MVC vino

acompañada de un nuevo motor de vistas, llamado

Razor. Eso sí, el motor ASPX puede seguir siendo

usado en ASP.NET MVC3, pero honestamente no

hay ninguna razón para hacerlo (salvo en casos de

migraciones, por supuesto): Razor es más claro,

sencillo e intuitivo.

2 RAZOR: A NEW VIEW ENGINE

Como vimos anteriormente ASP.NET MVC

siempre ha apoyado el concepto de "motores de

vista" - que son los módulos conectables que

implementan las diferentes opciones de sintaxis de

la plantilla.

El nuevo motor de vista RAZOR se ha optimizado

en torno a la generación de código HTML diseñado

para ser un motor de vista alternativo

para ASP.NET MVC.

Inicialmente introducido en WebMatrix y

ahora incluye como parte de ASP.NET MVC 3,

Razor permite a los desarrolladores reemplazar

el anticuado <%%> de sintaxis con un modelo de

codificación mucho más limpio, sobre todo

alrededor del símbolo @. Además, ofrece algunas

características excelentes para los escenarios de

la página maestra, al mismo tiempo sin perder el

acceso a las características con las que ya se está

familiarizado como los métodos de ayuda HTML.

Con el objetivo principal de aliviar el dolor en la

autoría de la vista, el motor de vista Razor ha

estado atacando a las siguientes características:

Page 4: Razor vs Web Forms Paper Majo

Razor Enginee vs Web Forms

.

3

Más compacto y más fácil de usar.

Razor tiene como objetivo reducir al

mínimo el número de caracteres y las

pulsaciones de teclas necesarias para

escribir un archivo de vista, en apoyo de

un flujo de trabajo rápido y fluido de

codificación. A diferencia de otras sintaxis

de plantilla existente, los desarrolladores

no tienen que interrumpir su codificación

para indicar de forma explícita los

bloques de servidores dentro del HTML. El

parser de Razor es lo suficientemente listo

como para inferirlo del código. Esto nos

permite una sintaxis más compacta y

expresiva convirtiéndola en limpia, rápida y

divertida de escribir.

Fácil de aprender:

Razor es fácil de aprender de forma rápida

y productiva con un mínimo de conceptos.

Basado en conocimientos de HTML.

No es un nuevo lenguaje:

Conscientemente se decidió no crear un

nuevo lenguaje imperativo con razor. En

su lugar hemos querido permitir a los

desarrolladores a utilizar su actual C # / VB

(u otro) y entregar una sintaxis de formato

de plantilla que permite un impresionante

flujo de trabajo y la construcción de HTML

con el idioma de su elección.

Funciona con cualquier editor de texto:

Razor no requiere una herramienta

específica y le permite ser productivo en

cualquier editor de texto simple y llano (en

el bock de notas funciona muy bien).

Tiene una gran Intellisense:

Razor ha sido diseñado para no requerir

un instrumento o un editor de código, que

contará con el apoyo de la finalización de

instrucciones dentro de Visual Studio.

Pruebas Unitarias:

Razor soporta las pruebas unitarias sin

necesidad de un controlador o un servidor

web, y se puede alojar en cualquier

proyecto de pruebas unitarias.

Elección y Flexibilidad:

Esta versión de ASP.NET MVC incluye un

nuevo "Add-> View" de diálogo que hace

que sea fácil elegir la sintaxis que se

desea utilizar al crear un archivo de vista la

nueva plantilla. Se le permitirá seleccionar

fácilmente cualquiera de los motores de

visualización disponibles que ha instalado

en su máquina - que le da la opción de

utilizar cualquier método vista que sea más

natural para usted.

Figura 2: Add view: Razor

Page 5: Razor vs Web Forms Paper Majo

Razor Enginee vs Web Forms

.

4

3 RAZOR: Sintaxis

Lo que más salta a la vista de Razor es que, a

diferencia del motor ASPX donde tenemos el tag

que inicia el código de servidor y el que lo termina,

sólo hay tag para iniciar código de servidor. El

motor Razor es lo suficientemente inteligente para

saber cuándo termina el código de servidor, sin

necesidad de que lo explicitemos.

Veamos la misma vista de antes, pero ahora

usando Razor:

Las diferencias saltan a la vista, ¿no? En Razor el

símbolo de la arroba (@) marca el inicio de código

de servidor. Y como comentaba antes, no hay

símbolo para indicar que se termina el código de

servidor: el motor Razor deduce cuando termina en

base al contexto.

Una de las técnicas que usa Razor para identificar

implicitamente cuándo termina un bloque de

código es buscar un tag que denote el principio de

una región contenedora. Esta técnica particular –

usando tags para definir bloques con código – es

uno de los principales ingredientes que hace a

Razor tan limpio y productivo en escenarios en los

que es necesaria la creación de HTML.

El uso de la @ funciona de dos maneras básicas:

@expresión: Renderiza la expresión en el

navegador. Así @item.Nombre muestra el

valor de ítem.Nombre. Es decir

@expresión equivale a <%: expresión %>

@{código}: Permite ejecutar un código que

no genera salida HTML. Es decir

@{código} equivale a <% Código %>

NOTITA:

Como hemos visto el motor Razor

interpreta cuando empieza y cuando

termina el código de servidor. Pero no

siempre lo consigue adecuadamente. Por

ejemplo:

@{ int a = 10; int b = 3; }

El valor de 10 - 3 es: @a-b

Genera el siguiente HTML:

El valor de 10 - 3 es: 10-b

Recordad la clave: el motor Razor espera

una y sólo una expresión detrás de la @.

Por eso debemos usar los paréntesis.

El valor de 10 - 3 es: @(a-b)

Múltiples líneas de contenido

Razor hace fácil poder tener varias líneas de

contenido en un mismo elemento HTML. Por

ejemplo, en el siguiente ejemplo el contenido del

@if está dentro de un elemento <p> de HTML – lo

que hace que Razor lo trate como contenido:

Page 6: Razor vs Web Forms Paper Majo

Razor Enginee vs Web Forms

.

5

En escenarios en los que necesitamos varias

líneas de contenido que no estén dentro de un

elemento HTML, podemos usar varias veces los

caractéres @:

Además, también podríamos usar un elemento

<text> para identificar explícitamente el contenido

a Razor:

El código anterior renderizará la misma salida que

la versión anterior con @:. Razor omitirá

automáticamente el tag <text> de la salida y

renderizará el contenido.

Comentarios

Para comentarios Razor ASP.NET, iniciar el

comentario con @ * y terminan con * @. El

comentario puede estar en una línea o varias

líneas

4 RAZOR: NUEVOS HELPERS

Razor también incluye nuevos ayudantes HTML,

tales como las siguientes:

Gráfico: Representa un gráfico, que ofrece

las mismas características que el control

de gráfico de ASP.NET 4.

WebGrid: Representa una cuadrícula de

datos, con la paginación y la funcionalidad

de la clasificación.

Crypto: Utiliza algoritmos de hash para

crear contraseñas adecuadamente salados

y hash.

WebImage: Representa una imagen.

WebMail: Envía un mensaje de correo

electrónico.

5 RAZOR: MEJORAS

Soporte para múltiples motores de vista

El Vista Agregar cuadro de diálogo en ASP.NET

MVC 3 le permite elegir el motor de la vista que

desea trabajar, y el nuevo proyecto de cuadro de

diálogo le permite especificar el motor de la vista

por defecto para un proyecto. Usted puede elegir el

motor de formularios Web Forms vista (ASPX),

maquinilla de afeitar, o un motor de la vista de

código abierto como el Spark , NHaml o NDjango .

Mejoras del controlador: Filtros de Acción Global

A veces se desea realizar la lógica, ya sea antes

se ejecuta un método de acción o después de una

acción se ejecuta el método. Para apoyar esto,

ASP.NET MVC 2, siempre y filtros de acción.

Filtros de acción son atributos personalizados que

proporcionan un medio para añadir declarativa de

pre-acción y el comportamiento posterior a la

Page 7: Razor vs Web Forms Paper Majo

Razor Enginee vs Web Forms

.

6

acción a determinados métodos de acción del

controlador. MVC 3 le permite especificar filtros

globales mediante la adición de ellos a

la GlobalFilters colección.

Nueva propiedad "ViewBag"

MVC 2 controladores son compatibles con

un ViewData que le permite pasar los datos a una

plantilla de vista usando una API en tiempo de

ejecución. En MVC 3, también puede utilizar la

sintaxis un poco más sencilla con la propiedad

ViewBag para lograr el mismo propósito. Por

ejemplo, en lugar de escribir ViewData ["mensaje"]

= "text", se puede escribir ViewBag.Message =

"text" . No es necesario para definir las clases

inflexible de tipos para utilizar el ViewBag. Debido

a que es una propiedad dinámica, usted puede en

lugar de simplemente obtener o establecer las

propiedades y las resolverá de forma dinámica en

tiempo de ejecución.

Figura 3: ViewBag

Los nuevos "tipos de ActionResult"

Los siguientes ActionResult tipos y métodos de

ayuda correspondientes son nuevas o mejoradas

de MVC 3:

HttpNotFoundResult. Devuelve un código

de estado HTTP 404 para el cliente.

RedirectResult. Devuelve una redirección

temporal (HTTP 302 código de estado) o

una redirección permanente (HTTP 301

código de estado), en función de un

parámetro booleano.

HttpStatusCodeResult. Devuelve un

código especificado por el usuario de

estado HTTP.

Las mejoras de JavaScript y Ajax

De forma predeterminada, el Ajax y los ayudantes

de validación de MVC 3 utiliza un enfoque discreto

JavaScript. JavaScript discreto evita la inyección

JavaScript en el HTML en línea. Esto hace que el

código HTML más pequeño y menos atestado y

hace más fácil que cambiar o personalizar las

bibliotecas de JavaScript.

Mejoras en el rutado URL

Se han introducido varias mejoras en el sistema de

rutado de urls. El rutado url es uno de los

componentes fundamentales de un framework web

MVC. Algunas de las mejoras del motor URL son:

Helper methods MapRoute() y IgnoreRoute(), con

estos métodos podremos registrar de una forma

más sencilla reglas de rutado. MapRoute() nos

permite una forma sencilla de añadir nuevas reglas

MVC Route a la colección de rutas. IgnoreRoute()

nos permite eliminar patrones de URL de esa

misma colección.

Page 8: Razor vs Web Forms Paper Majo

Razor Enginee vs Web Forms

.

7

6 WEB FORMS Y ASP.NET MVC:

Funcionamiento

ASP.NET Web Pages con sintaxis de Razor

proporciona una sintaxis de programación simple

para escribir código en páginas web donde el

código basado en servidor se incrusta en el

formato HTML de las páginas web. El código de

Razor se ejecuta en el servidor antes de que la

página se envíe al explorador. Este código de

servidor puede crear dinámicamente contenido de

cliente, es decir, puede generar formato HTML u

otro contenido sobre la marcha y, a continuación,

enviarlo al explorador junto con cualquier código

HTML estático que contenga la página.

Web Pages con sintaxis de Razor proporciona una

alternativa a formularios Web Forms de ASP.NET.

Las páginas de formularios Web Forms se centran

en controles de servidor web que generan código

HTML automáticamente y emulan el modelo de

programación basado en eventos usado para

aplicaciones cliente. En cambio, las páginas de

Razor funcionan más directamente como páginas

HTML estándar, donde el propio usuario puede

crear virtualmente todo el formato HTML y, a

continuación, agregar la funcionalidad alrededor de

ese formato usando el código del servidor.

En general, las páginas de Razor son más ligeras

que las páginas de los formularios Web Forms. Por

esa razón y porque la sintaxis es simple, Razor

puede ser más fácil de aprender para los

programadores y más rápido para desarrollar

páginas web dinámicas.

Las páginas web que incluyen contenido de Razor

tienen una extensión de archivo especial (.cshtml o

.vbhtml). El servidor reconoce estas extensiones,

ejecuta el código que está marcado con sintaxis de

Razor y, a continuación, envía la página resultante

al explorador.

7 ASP.NET MVC vs WEB FORMS:

Comparación

ASP.NET simplifica diversas tareas diarias y, lo

que es más importante, habilitados a los

programadores trabajan en un nivel mayor de

abstracción. Esto permite puedan centrarse más

en las funciones principales de la aplicación Web

que en las tareas comunes alrededor de diseño de

la página Web.

Basada en controles de servidor, ASP.NET permite

a los programadores generar sitios Web y

aplicaciones con conocimientos HTML y JavaScript

mínima de mundo real. El modelo de ASP.NET se

denomina formularios Web Forms y claramente se

inspiró por el modelo escritorio de Windows Forms

(en vez profundamente inspirado por la filosofía de

desarrollo rápido de aplicaciones Visual Basic).

Por lo tanto, ¿por qué Microsoft versión "otro"

marco ASP.NET, denominado ASP.NET MVC?

Ahora que Asp.Net es mucho más corriente en el

trabajo, se hace la pregunta una y otra vez en

cuanto a ¿cuál debe ser utilizado durante el

desarrollo de una aplicación Web?, Veamos los

pros y contras de formularios Web Forms de

ASP.NET y ASP.NET MVC.

Veamos el análisis FODA para cada uno:

Page 9: Razor vs Web Forms Paper Majo

Razor Enginee vs Web Forms

.

8

Asp.Net MVC FODA

Fortalezas

Proporciona un control preciso

sobre HTML representado.

Limpiador HTML generado.

La separación entre la interfaz de usuario

superior y el código.

Es más fácil de realizar pruebas unitarias.

Puede soportar múltiples motores de vista.

El tamaño típico de la página es pequeña.

Fácil integración con frameworks como

jQuery.

Debilidades

No es dirigida por eventos.

No ViewState.

Requiere familiarizarse con el patrón MVC.

Oportunidades

Permite Test Driven Development (TDD) -

que está construido con TDD, por lo

que es mucho más fácil escribir casos de

prueba de unidad y para interceptar el flujo

del programa.

Permite la reutilización de los mismos

modelos para presentar diferentes

interfaces de usuario.

Amenazas

Mayor aceleración y el tiempo de

formación requerido para los

desarrolladores con experiencia limitada o

inexistente en el desarrollo de aplicaciones

web.

Page 10: Razor vs Web Forms Paper Majo

Razor Enginee vs Web Forms

.

9

Asp.Net WebForms FODA

Fortalezas

Proporciona capacidades RAD muy

buenos para el desarrollo.

Gran compatibilidad con el diseñador en

Visual Studio.

La facilidad de desarrollo para aplicaciones

empresariales de datos pesados.

Muy ricas bibliotecas de control y apoyo de

proveedores de terceros.

Un familiar modelo orientado a eventos, en

comparación con el desarrollo de

Windows Forms, y tan fácil para los

desarrolladores para recoger.

Debilidades

Lógica de interfaz de usuario, junto con el

código, y por lo tanto es difícil de separar.

Más difícil de probar la unidad, tan difícil

de utilizar TDD.

Páginas pesadas debido a la gestión del

estado de la vista.

Oportunidades

Genial en la creación de prototipos rápidos

para aplicaciones de negocios. Esto es

muy útil cuando se trata de mostrar una

prueba rápida de los conceptos a los

clientes.

Amenazas

Más difícil de adoptar vistas de interfaz de

usuario, a pesar de los distintos

marcos disponibles (las páginas

principales, temas, etc.)

Page 11: Razor vs Web Forms Paper Majo

Razor Enginee vs Web Forms

.

10

Figura 4: WebForms vs MVC

Con todo, ASP.NET Web Forms y ASP.NET MVC

son funcionalmente equivalentes en el sentido de

que un equipo cualificado puede correctamente

utilizar cualquiera para crear cualquier solución

Web.

Generalizando, debería decir que formularios Web

Forms abarca la filosofía de RAD (Rapid Aplication

Development), mientras que ASP.NET MVC está

orientada a TDD (Test Driven Development).

En los formularios Web Forms, simplemente no

tiene la flexibilidad de ASP.NET MVC. Esto es una

limitación es true. ASP.NET MVC está diseñado

con capacidad de prueba.

Consideraciones Finales:

Formularios Web Forms ASP.NET y ASP.NET

MVC no son competidores en el sentido de que se

debe para reemplazar la otra. Tendrá que elegir

uno, pero diferentes aplicaciones pueden forzar

realizar distintas opciones.

Formularios Web Forms es difícil probar.

ASP.NET MVC requiere administrar la

generación de HTML en un nivel más

detallado.

ASP.NET MVC no es la única manera para

obtener SoC en ASP.NET.

Formularios Web Forms permite ir

aprendiendo a medida.

ViewState se puede controlar o

deshabilitar.

ASP.NET MVC expone arquitectura Web.

ASP.NET MVC se diseñó con capacidad

de prueba y la inserción de dependencia

en la cuenta.

ASP.NET MVC le hacia un mejor diseño

del código.

ASP.NET MVC es joven y carece de un

modelo de componente.

8 CONCLUSIONES

Hemos visto la sintaxis básica del motor de vistas

Razor, y las principales consideraciones que

debemos tener presentes.

Entonces "Razor" proporciona una nueva y

gran visión de motor opción que es más

sencillo para el código centrado en

plantillas. Es un flujo de trabajo de

Page 12: Razor vs Web Forms Paper Majo

Razor Enginee vs Web Forms

.

11

codificación que es rápido, expresivo y

divertido. Su sintaxis es compacto y

reduce la escritura, mientras que al mismo

tiempo, la mejora de la legibilidad del

conjunto de su marcado y el código.

También hemos visto que hay ventajas y

desventajas en formularios Web Forms y

ASP.NET MVC. Sin embargo, muchos

desarrolladores, parecen favorecer

ASP.NET MVC porque representa la única

forma de obtener SoC y capacidad de

prueba en sus aplicaciones.

Es esencial entender las diferencias

estructurales entre los marcos de modo

que puede tomar una decisión correcta.

Con todo, ASP.NET Web Forms y

ASP.NET MVC son funcionalmente

equivalentes en el sentido de que un

equipo calificado puede utilizar

correctamente cualquiera para crear

cualquier solución Web.

Hay dos consideraciones importantes para

elegir entre los dos:

Test Driven Development: La vida

sería mucho más fácil de utilizar

MVC.

Data Driven Aplication: la vida

sería mucho más fácil utilizando

WebForms si la aplicación es de

datos pesados.

Para finalizar una cosilla: Ambos motores

de vistas (ASPX y Razor) se pueden usar

en MVC3 de forma simultánea. El motor de

ASP.NET MVC intentará encontrar primero

una vista .aspx y si no la encuentra

buscará una vista Razor (.cshtml ).

9 REFERENCIAS

[1] ASP.NET Web Pages - Adding Razor Code

http://www.w3schools.com/aspnet/webpages_ra

zor.asp

[2] Desarrollo en Modelo Vista Controlador en C#

con ASP.NET MVC3

Ultima actualización: Agosto 2011

n-modelo-vista-controlador-en-c-con-aspnet-

mvc3

[3] Tutorial: Crear un sitio web con sintaxis de

Razor en Visual Studio

http://msdn.microsoft.com/es-

es/library/gg606533.aspx

[4] Microsoft WebMatrix: Crear web con

ASP.NET RAZOR

Ultima actualización: Nov 30, 2010

rosoft-WebMatrix-Crear-web-con-ASPNET-RAZOR

[5] Experience ASP.NET MVC 3 Beta – the Razor

View Engine

Ultima actualizacion : Diciembre 2011

http://danhartshorn.com/2011/12/experience-asp-

net-mvc-3-beta-the-razor-view-engine/

[6] Razor vs Webforms view engine

Ultima actualizacion: Marzo 2011

http://stackoverflow.com/questions/5261124/razor-

vs-webforms-view-engine-for-new-asp-net-mvc-3-

site

Page 13: Razor vs Web Forms Paper Majo

Razor Enginee vs Web Forms

.

12

[7] Experience ASP.NET MVC 3 Beta - the Razor

View Engine

Ultima actualizacion: Noviembre del 2010

http://dotnetslackers.com/articles/aspnet/Experienc

e-ASP-NET-MVC-3-Beta-the-Razor-View-

Engine.aspx#s19-create-custom-helper-method

[8] Introduction to ASP.NET Web Programming

Using the Razor Syntax

Ultima actualizacion : Junio del 2010

http://www.asp.net/web-pages/tutorials/basics/2-

introduction-to-asp-net-web-programming-using-

the-razor-syntax

[9] El motor de vistas Razor

Ultima actualización: Mayo del 2011

http://www.desarrolloweb.com/articulos/motor-

vistas-razor-dotnet.html

[10] Razor View Engine para ASP.NET MVC 3

Ultima actualizacion : Febrero 2011

http://www.returngis.net/2011/02/razor-view-

engine-para-asp-net-mvc/

[11] ASP.NET MVC 3: Sintaxis de Razor @: y el

tag text

Ultima actualización: Enero 2011

http://speakingin.net/2011/01/30/asp-net-mvc-3-

sintaxis-de-razor-y/

[12] ¿Webforms y ASP.NET MVC juntos? Pues

claro!

Ultima actualización: Mayo 2011

http://geeks.ms/blogs/etomas/archive/2011/05/13/1

91-webforms-y-asp-net-mvc-juntos-pues-

claro.aspx

[13] Introducing “Razor” – a new view engine for

ASP.NET

Ultima actualizacion : Julio del 2010

http://weblogs.asp.net/scottgu/archive/2010/07/02/i

ntroducing-razor.aspx

[14] ASP.NET MVC 3

http://www.asp.net/mvc/mvc3#BM_TheRazorViewE

ngine

[15] MVC 3 con Razor ~ Usando JQuery y

Unobtrusive AJAX

Ultima actualización : Febrero 2011

http://cells.puertadeenlace.net/post/6-MVC-3-con-

Razor-7e-Usando-JQuery-y-Unobtrusive-

AJAX.aspx

[16] Choosing Between WebForms and MVC

http://blog.gadodia.net/choosing-between-

webforms-and-mvc/