Mostrando entradas con la etiqueta webpages. Mostrar todas las entradas
Mostrando entradas con la etiqueta webpages. Mostrar todas las entradas
miércoles, 28 de marzo de 2012
Una novedad que descubro en los tutoriales preliminares de la segunda versión de WebPages, y que por tanto tendremos disponible en las futuras versiones de WebMatrix y ASP.NET MVC 4, es la posibilidad de registrar los scripts y estilos que necesitan nuestros componentes visuales (sean layouts, vistas completas, parciales o helpers), centralizando su carga y evitando duplicidades.
martes, 21 de febrero de 2012
Poquito a poco vamos conociendo algunas novedades que podemos encontrar en ASP.NET MVC 4 que, aunque no sean de gran calado, sí nos pueden resultar útiles en el día a día.
Hoy vamos a comentar dos pequeñas mejoras introducidas en el motor de vistas Razor, lo que implica que son aprovechables desde las futuras versiones tanto de MVC como de Webpages.
Hoy vamos a comentar dos pequeñas mejoras introducidas en el motor de vistas Razor, lo que implica que son aprovechables desde las futuras versiones tanto de MVC como de Webpages.
martes, 31 de mayo de 2011
Desde siempre, C# ha sido el lenguaje por excelencia del framework ASP.NET MVC, y por esta razón es bastante difícil encontrar en la web ejemplos escritos en otros lenguajes, como el popular Visual Basic .NET.
En el caso concreto de la capa Vista, prácticamente nadie escribe ejemplos utilizando Razor y VB.NET, por lo que los desarrolladores que siguen optando por este lenguage para trabajar sobre ASP.NET MVC (e incluso WebPages) lo tienen más complicado para entender y utilizar código existente. Además, a diferencia de lo que podría pensarse, la codificación no es exactamente igual en ambos lenguajes, y a veces no es fácilmente inferible, lo cual añade además un poco de dificultad al usar VB.
En este post vamos a mostrar una tabla de equivalencias entre C# y VB.NET a la hora de codificar distintas construcciones que utilizamos frecuentemente al crear vistas con Razor.
(*) aplicable para instrucciones como if, while, for, foreach, using, switch, etc.
Espero que no se me haya quedado por detrás ninguna de las construcciones habituales. De todas formas, si detectáis alguna ausencia, no dudéis en avisarme y lo incluyo en este mismo post.
Publicado en: Variable not found.
En el caso concreto de la capa Vista, prácticamente nadie escribe ejemplos utilizando Razor y VB.NET, por lo que los desarrolladores que siguen optando por este lenguage para trabajar sobre ASP.NET MVC (e incluso WebPages) lo tienen más complicado para entender y utilizar código existente. Además, a diferencia de lo que podría pensarse, la codificación no es exactamente igual en ambos lenguajes, y a veces no es fácilmente inferible, lo cual añade además un poco de dificultad al usar VB.
En este post vamos a mostrar una tabla de equivalencias entre C# y VB.NET a la hora de codificar distintas construcciones que utilizamos frecuentemente al crear vistas con Razor.
Archivos de vistas o páginas Razor
C# | VB.NET |
nombrearchivo.cshtml | nombrearchivo.vbhtml |
Definición del tipo de datos del Modelo
C# | VB.NET |
@model Persona | @ModelType Persona |
Importación de espacios de nombres
C# | VB.NET |
@using MyApp.Models | @Imports MyApp.Models |
Definición de clase base de la vista
C# | VB.NET |
@inherits ClaseBase | @Inherits ClaseBase |
Bloque de código
C# | VB.NET |
@{ // Código C# } | @Code ' Código VB.NET End Code |
Instrucciones de bloque (*)
C# | VB.NET |
@if(a > b) { // Hacer algo } | @If a > b Then ' Hacer algo End If |
Salida de expresión
C# | VB.NET |
Hola, @Model.Nombre | Hola, @Model.Nombre |
Mezcla de código y marcado
C# | VB.NET |
@if(a > b) { <p>A es mayor que B</p> } | @If a > b Then @<p>A es mayor que B</p> End If |
@if(a > b) { @: una línea de texto o HTML } | @If a > b Then @: una línea de texto o HTML End If |
@if(a > b) { <text> Aquí va texto o HTML </text> } | @If a > b Then @<text> Aquí va texto o HTML </text> End If |
Definición de secciones de un Layout
C# | VB.NET |
@section Encabezado { <h3>Este es el encabezado</h3> } | @Section Encabezado <h3>Este es el encabezado</h3> End Section |
Creación de helpers
C# | VB.NET |
@helper Tabla(int num) { <ul> @for (int i = 1; i < 11; i++) { <li>@num x @i = @(num*i) </li> } </ul> } | @Helper Tabla(num As Integer) @:<ul> For i = 1 To 10 @<li>@num x @i = @(num * i) </li> Next @:</ul> End Helper |
Bloques de funciones
C# | VB.NET |
@functions { int suma(int a, int b) { return a + b; } } | @Functions Function suma(a As Integer, b As Integer) As Integer Return a + b End Function End Functions |
Razor templated delegates
C# | VB.NET |
@{ Func<dynamic, object> bold = @<strong>@item</strong>; } Uso: @bold("Esto en negrilla") | @Code Dim bold = Function(item As Object) @<strong>@item</strong> End Function End code Uso: @bold("Esto en negrilla") |
@helper Lista( Func<dynamic, HelperResult> templ, params dynamic[] args) { foreach(dynamic item in args) { @templ(item) } } Uso: <ul> @Lista(@<li>@item</li>, 1, 2, 3.5, "hola", DateTime.Now) </ul> | @Helper Lista(templ As Func(Of Object, HelperResult), ParamArray args() As Object) For Each item In args @templ(item) Next End helper Uso: <ul> @Lista(Function(item As Object) @<li>@item</li> End Function, 1, 2, 3.5, "hola", DateTime.Now) </ul> |
Espero que no se me haya quedado por detrás ninguna de las construcciones habituales. De todas formas, si detectáis alguna ausencia, no dudéis en avisarme y lo incluyo en este mismo post.
Publicado en: Variable not found.