Ayer mismo anunciaba Phil Haack la publicación de la segunda preview de ASP.NET MVC 2, que continúa profundizando en las mejoras que ya se incluyeron en la primera entrega.
Según se recoge en el documento de notas del producto, las novedades que podremos encontrar son:
- Abstracción
del proveedor de metadatos, que será útil para implementar nuestros
propios sistemas de obtención de metainformación sobre las clases del
modelo, aunque por defecto se utilizarán los atributos presentes en
System.ComponentModel.DataAnnotations.
- Abstracción del proveedor de validaciones del modelo, que nos permitirá utilizar mecanismos personalizados de validación durante el proceso de binding, que por defecto utilizará también las DataAnnotations.
- Validación
automática en cliente, que aunque permite la utilización de otros
frameworks, la implementación por defecto utiliza el plugin jQuery Validation
para generar en cliente la lógica de validación descrita en los
metadatos de las propiedades del modelo. De momento, soporta las
siguientes
DataAnnotations:
StringLengthAttribute,
para limitar el tamaño máximo de un campo texto.RequiredAttribute
, para indicar la obligatoriedad de introducir un valor.RegexAttribute
, que añade la restricción de obligado cumplimiento de la expresión regular indicada.RangeAttribute
, para especificar el rango de valores de un campo (por ejemplo, un entero).
- Inclusión del filtro
RequireHttpsAttribute
, que aplicado a una acción, fuerza a que ésta sea invocada utilizando el protocolo HTTPS. - Inclusión del helper Html
HttpMethodOverride
, que permite sobrescribir el verbo HTTP enviado por el cliente en aquellos agentes de usuario que no soportan los verbos menos frecuentes (PUT, DELETE…), introduciendo un campo oculto que es detectado posteriormente. - Posibilidad de incluir áreas en un proyecto único, es decir, sin necesidad de crear proyectos independientes, facilitando además el registro de las mismas.
- El atributo
HiddenInputAttribute
permite ahora especificar propiedades del modelo que deben ser renderizadas en cliente con un campo hidden. - Y otras mejoras, de las que selecciono sólo algunas:
Controller.Execute()
lanzará una excepción cuando sea llamado más de una vez en la misma instancia. Dado que una instancia del controlador debe atender exclusivamente a una petición, es una medida que ayuda a prevenir problemas con contenedores IoC configurados para generar singletons, por ejemplo.- Inclusión de nuevos verbos HTTP, como PUT o DELETE para facilitar la creación de sistemas REST.
- Soporte para el tipo de datos
DataType.Password
, haciendo que se rendericen como cuadros de edición de tipo password las propiedades que sean marcadas con este atributo. - Se ha establecido como editor para los booleanos anulables un desplegable con las opciones “No especificado”, “Sí” y “No”.
- Mejoras de eficiencia, introduciendo una caché de expresiones compiladas para los helpers que utilizan sintaxis lambda fuertemente tipada.
- (Podéis ver el resto en el documento de notas del producto).
Enlaces:
No hay comentarios:
Publicar un comentario