Revista 100% Verde

Asp.net mvc 3

Por Soloelectronicos @soloelectronico

ASP.NET MVC 3es un entorno  para la construcción de aplicaciones web escalables basadas en estándares usando patrones de diseño bien establecidas y el poder de ASP.NET y. NET Framework   basándose   en ASP.NET MVC 1 y 2 y  la adición de grandes características que simplifican  el código

Se instala de lado a lado con ASP.NET MVC 2, y es gratuito ( se puede  descargar  el instalador aquí).

Las  características principales

  • Extensible integrada del sistema de andamiaje a través NuGet
  • HTML 5 plantillas de proyecto habilitados
  • Vistas Expresivo, incluyendo el nuevo motor de vistas Razor
  • Ganchos potentes con la inyección de dependencias y Acción Global Filtros
  • Soporte JavaScript rico con discreta JavaScript, jQuery Validation y JSON vinculante

Este post  deberia proporcionar una visión general de muchas de las nuevas características que se incluyen en esta versión, organizada en las características    ya citadas

Andamios extensibles con la integración MvcScaffold

El nuevo sistema de andamios hace más fácil para recoger y empezar a utilizar de manera productiva si eres completamente nuevo para el marco, y para automatizar tareas comunes de desarrollo si tienes experiencia y ya sabes lo que estás haciendo.

Esto es apoyado por el nuevo paquete de andamios NuGet llamado MvcScaffolding. El término “Andamios” es utilizado por muchas tecnologías de software en el sentido de “generar rápidamente un esquema básico de software que a continuación, puede editar y personalizar”. El paquete de andamios que estamos creando para ASP.NET MVC es muy beneficioso en varios escenarios:

  • Si estás aprendiendo ASP.NET MVC, por primera vez, ya que le ofrece una manera rápida de conseguir algunos, el código de trabajo útil, que luego se puede editar y adaptar de acuerdo a sus necesidades. Esto le ahorra el trauma de ver una página en blanco y que no tiene idea por dónde empezar!
  • Si conoces ASP.NET MVC bien y ahora está explorando una nueva tecnología add-on como un mapeador objeto-relacional, un motor de vista, una biblioteca de pruebas, etc, porque el creador de esa tecnología puede tener también creó un paquete de andamios para ello.
  • Si su trabajo implica la creación repetida clases o archivos de cierta clase similares, ya que puede crear andamios personalizadas que accesorios de la prueba de salida, scripts de implementación, o cualquier otra cosa que necesiten. Todo el mundo en su equipo puede utilizar sus andamios personalizados, también.

Otras características en MvcScaffolding incluyen:

  • Soporte para C # y VB proyectos
  • El apoyo a la Navaja y motores de vista ASPX
  • Soporta andamios en áreas ASP.NET MVC y el uso de la vista personalizada layouts / maestros
  • Puede personalizar fácilmente la salida mediante la edición de plantillas de T4
  • Puede agregar completamente nuevas andamios utilizando la lógica PowerShell personalizada y plantillas T4 personalizado.Estos (y los parámetros personalizados que les has dado) aparecen automáticamente en la lista para rellenar la ficha de la consola.
  • Usted puede conseguir los paquetes que contienen NuGet andamios adicionales para las diferentes tecnologías (por ejemplo, hay una prueba de concepto de una para LINQ to SQL ahora) y mezclar y combinar

El ASP.NET MVC 3 Herramientas actualización incluye un gran apoyo de Visual Studio para este sistema de andamios, tales como:

  • Agregar controlador de diálogo es ahora compatible con andamios automática llena de crear, leer, actualizar y eliminar acciones del controlador y las vistas correspondientes. Por defecto, este andamiaje código de acceso a datos utilizando código de EF Primera.
  • Agregar controlador de diálogo apoya andamios extensibles a través de paquetes NuGet como MvcScaffolding. Esto permite conectar los andamios personalizados en el cuadro de diálogo que le permitirá crear andamios para otras tecnologías de acceso a datos como NHibernate o incluso JET con ODBCDirect si usted está tan inclinado!

HTML 5 Plantillas de proyecto

El cuadro de diálogo Nuevo proyecto incluye una casilla de verificación Habilitar HTML 5 versiones de plantillas de proyecto. Estas plantillas apalancamiento Modernizr 1.7 para proporcionar soporte de compatibilidad para HTML 5 y CSS 3 en los navegadores de nivel inferior.

El Razor View Engine

ASP.NET MVC 3 viene con un nuevo motor de vista llamada Razor que ofrece los siguientes beneficios:

  • Sintaxis Razor es limpia y concisa, lo que requiere un número mínimo de pulsaciones de teclas.
  • Razor es fácil de aprender, en parte debido a que está basado en las lenguas existentes, como C # y Visual Basic.
  • Visual Studio incluye IntelliSense y colorización código para la sintaxis Razor.
  • Vistas Razor pueden ser unidad probada sin necesidad de que se ejecuta la aplicación o iniciar un servidor web.

Algunas de las nuevas características de afeitar son las siguientes:

  • @model sintaxis para especificar el tipo que se pasa a la vista.
  • @* *@ sintaxis de comentario.
  • La capacidad de especificar los valores predeterminados (como layoutpage ) una vez para un sitio completo.
  • El Html.Raw método para mostrar texto sin HTML-codificarlo.
  • Soporte para compartir código entre múltiples puntos de vista (_viewstart.cshtml o archivos _viewstart.vbhtml).

Razor también incluye nuevos ayudantes HTML , tales como las siguientes:

  • Chart . Representa un gráfico, que ofrece las mismas características que el control de gráfico en ASP.NET 4.
  • WebGrid . Representa una cuadrícula de datos, con la paginación y la funcionalidad de ordenación.
  • Crypto . Utiliza algoritmos de hash para crear contraseñas correctamente salados y hash.
  • WebImage . Representa una imagen.
  • WebMail . Envía un mensaje de correo electrónico.

Soporte para múltiples View Motores

El cuadro de diálogo Agregar vista en ASP.NET MVC 3 le permite elegir el motor de vista que desea trabajar, y el cuadro de diálogo Nuevo proyecto permite especificar el motor de la vista por defecto para un proyecto. Usted puede elegir el motor de vista de formularios Web Forms (ASPX), Maquinilla de afeitar, o un motor de vista de código abierto, como Spark , NHaml o NDjango .

Las mejoras del controlador

Acción Global Filtros

A veces se desea realizar la lógica, ya sea antes un método de acción se ejecuta o después de un método de acción se ejecuta. Para apoyar esto, ASP.NET MVC 2 proporciona filtros de acción. Filtros de acción son los atributos personalizados que proporcionan un medio declarativas para añadir pre-acción y el comportamiento posterior a la acción de los métodos de acción del controlador específicos. Sin embargo, en algunos casos, es posible que desee especificar pre-acción o comportamiento posterior a la acción que se aplica a todos los métodos de acción. MVC 3 permite especificar filtros globales mediante su inclusión en el GlobalFilters colección.

Nuevo “ViewBag” Propiedad

MVC 2 controladores admiten una ViewData propiedad que le permite pasar datos a una plantilla de vista usando un enlace en tiempo de API diccionario. En MVC 3, también se puede utilizar la sintaxis un poco más sencilla con el ViewBag propiedad para lograr el mismo propósito. Por ejemplo, en lugar de escribir ViewData["Message"]="text" , puede escribir ViewBag.Message="text" . No es necesario para definir las clases de tipo fuerte para utilizar la ViewBag propiedad. Debido a que es una propiedad dinámica, en su lugar puede simplemente obtener o establecer propiedades y va a resolverlos de forma dinámica en tiempo de ejecución. Internamente, ViewBagpropiedades se almacenan como pares de nombre / valor en el ViewData diccionario. (Nota: en la mayoría de las versiones preliminares de MVC 3, el ViewBag propiedad fue nombrado el ViewModel propiedad.)

Nuevos tipos “ActionResult”

Los siguientes ActionResult tipos y los correspondientes métodos auxiliares son nuevas o mejoradas en MVC 3:

  • HttpNotFoundResult . Devuelve un código de estado HTTP 404 al cliente.
  • RedirectResult . Devuelve una redirección temporal (HTTP 302 código de estado) o una redirección permanente (HTTP 301 código de estado), dependiendo de un parámetro booleano. Junto con este cambio, el controlador de clase ahora tiene tres métodos para realizar las redirecciones permanentes: RedirectPermanent , RedirectToRoutePermanent yRedirectToActionPermanent . Estos métodos devuelven una instancia de RedirectResult con la Permanent propiedad establecida en true .
  • HttpStatusCodeResult . Devuelve un código de estado HTTP especificado por el usuario.

JavaScript y Mejoras Ajax

Por defecto, el Ajax y ayudantes de validación en MVC 3 utilizan un enfoque discreto JavaScript. JavaScript no obstructivo evita inyectando inline JavaScript en páginas HTML. Esto hace que el HTML más pequeño y menos desordenada, y hace que sea más fácil que cambiar o personalizar bibliotecas JavaScript. Ayudantes de validación en MVC 3 también utilizan el jQueryValidate plugins por defecto. Si quieres MVC 2 comportamiento, puede desactivar JavaScript discreto usando un ajuste del archivo web.config.

La validación del lado del cliente habilitado de manera predeterminada

En versiones anteriores de MVC, es necesario llamar explícitamente al Html.EnableClientValidation método desde un punto de vista con el fin de permitir la validación del lado del cliente. En MVC 3 esto ya no es necesario porque la validación del lado del cliente está habilitada de forma predeterminada. (Se puede desactivar esto usando una configuración en el archivo web.config.)

Para la validación del lado del cliente para trabajar, usted todavía tiene que hacer referencia a las bibliotecas de jQuery y jQuery validación apropiados en su sitio. Puede organizar las bibliotecas en su propio servidor o hacer referencia a ellos desde una red de distribución de contenidos (CDN) como los CDN de Microsoft o Google.

Validador remoto

ASP.NET MVC 3 es compatible con el nuevo RemoteAttribute clase que le permite tomar ventaja del soporte de validación remota el jQuery validación de plug-in. Esto permite a la biblioteca de validación en el cliente para llamar automáticamente un método personalizado que se define en el servidor con el fin de realizar la lógica de validación que se pueda hacer del lado del servidor.

En el siguiente ejemplo, la Remote atributo especifica que la validación del cliente llamará a una acción llamada UserNameAvailable en elUsersController clase con el fin de validar el UserName de campo.

 Clase de usuario pública 
 {
     [Remoto ("Usuarios" "UserNameAvailable",)]
     Nombre de usuario public string {get; set;}
 }

El siguiente ejemplo muestra el controlador correspondiente.

 public class UsersController 
 { 
     UserNameAvailable public bool (string nombre de usuario) 
     { 
         if (MyRepository.UserNameExists (nombre de usuario)) 
         { 
             volver "false"; 
         } 
         volver "true"; 
     } 
 }

JSON Compatibilidad con enlaces

ASP.NET MVC 3 incluye compatibilidad con el enlace integrado JSON que permite métodos de acción para recibir datos JSON codificada y modelo-se unen a los parámetros de método de acción. Esta capacidad es útil en escenarios de plantillas de cliente y el enlace de datos.(Plantillas de cliente que permiten dar formato y mostrar un solo dato o conjunto de elementos de datos mediante el uso de plantillas que se ejecutan en el cliente.) MVC 3 le permite conectar fácilmente plantillas de cliente con métodos de acción en el servidor que envía y recibe datos JSON.

Mejoras del Modelo Validación

“DataAnnotations” Atributos de metadatos

ASP.NET MVC 3 es compatible con DataAnnotations atributos de metadatos, como DisplayAttribute .

Clase “ValidationAttribute”

El ValidationAttribute clase mejoró en el. NET Framework 4 para apoyar una nueva IsValid sobrecarga que proporciona más información sobre el contexto de validación actual, como lo está siendo validada objeto. Esto permite a los más ricos escenarios donde se puede validar el valor actual sobre la base de otra propiedad del modelo. Por ejemplo, el nuevo CompareAttribute atributo le permite comparar los valores de dos propiedades de un modelo. En el siguiente ejemplo, el ComparePassword propiedad debe coincidir con laPassword de campo con el fin de ser válida.

  Clase de usuario pública
 { 
     [Obligatorio]
     public String Contraseña {get; set;} 
     [Obligatorio, Compara ("Password")] 
     ComparePassword public string {get; set;} 
 }

Interfaces de validación

El IValidatableObject interfaz le permite realizar la validación a nivel de modelo, y que le permite ofrecer a los mensajes de error de validación que son específicos para el estado de todo el modelo, o entre dos propiedades dentro del modelo. MVC 3 ahora recupera los errores de laIValidatableObject interfaz al enlazar el modelo y banderas o resalta automáticamente afectada campos dentro de una vista con los helpers de formularios incorporados en HTML.

El IClientValidatable interfaz permite ASP.NET MVC para descubrir en tiempo de ejecución si un validador tiene soporte para la validación del cliente. Esta interfaz ha sido diseñado de modo que puede ser integrado con una variedad de marcos de validación.

Para obtener más información acerca de las interfaces de validación, consulte la sección Validación del Modelo Mejoras de MVC 3 Vista Previa entrada en el blog de ​​Scott Guthrie . (Sin embargo, tenga en cuenta que la referencia a “IValidateObject” en el blog debe ser “IValidatableObject”.)

Mejoras de Dependency Injection

ASP.NET MVC 3 ofrece un mejor soporte para la aplicación de la inyección de dependencias (DI) y para la integración con la inyección de dependencia o Inversión de Control contenedores (COI). Apoyo a la DI se ha añadido en las siguientes áreas:

  • Controladores (registro y la inyección de las fábricas de controlador, la inyección de los controladores).
  • Vistas (registro y la inyección de motores de vista, la inyección de dependencias en las páginas de vista).
  • Filtros de acción (localización y la inyección de filtros).
  • Aglutinantes modelo (que registran y se inyectan).
  • Proveedores de validación del modelo (que registran y se inyectan).
  • Los proveedores de metadatos de modelo (que registran y se inyectan).
  • Proveedores de precio (que registran y se inyectan).

MVC 3 es compatible con la Common Servicio de Busqueda biblioteca y cualquier contenedor DI que apoya de esa bibliotecaIServiceLocator interfaz. También permite una nueva IDependencyResolver interfaz que hace que sea más fácil la integración de marcos DI.

Otras características nuevas

Integración NuGet

ASP.NET MVC 3 se instala automáticamente y permite NuGet como parte de su configuración. NuGet es un gestor de paquetes de código abierto gratuito que hace que sea fácil encontrar, instalar y utilizar. NET bibliotecas y herramientas en sus proyectos. Funciona con todos los tipos de proyecto de Visual Studio (incluidas las de formularios Web Forms de ASP.NET y ASP.NET MVC).

NuGet permite a los desarrolladores que mantienen los proyectos de código abierto (por ejemplo, proyectos como Moq, NHibernate, Ninject, StructureMap, NUnit, Windsor, RhinoMocks y Elmah) para empaquetar sus bibliotecas y registrarlos en una galería en línea. Es entonces fácil para. NET los desarrolladores que desean utilizar una de estas bibliotecas para encontrar el paquete e instalarlo en proyectos en los que están trabajando.

Con el ASP.NET 3 Update de herramientas, plantillas de proyecto incluyen bibliotecas preinstaladas paquetes NuGet de JavaScript, por lo que se pueden actualizar a través de NuGet. Entity Framework Code First está también pre-instalado como un paquete NuGet.

Parcial de páginas caché de resultados

ASP.NET MVC ha apoyado la caché de resultados de las respuestas a toda página desde la versión 1. MVC 3 también soporta parcial de la página de caché de salida, lo que le permite almacenar en caché fácilmente regiones o fragmentos de una respuesta.

Control granular sobre la validación de solicitud

ASP.NET MVC ha incorporado en la validación de las solicitudes que ayuda automáticamente a proteger contra XSS y ataques de inyección HTML. Sin embargo, a veces usted quiere deshabilitar explícitamente la validación de solicitudes, por ejemplo, si desea que los usuarios publican contenido HTML (por ejemplo, en las entradas de blog o contenidos CMS). Ahora puede agregar un AllowHtml atributo a modelos o modelos de vista para desactivar la validación de solicitudes en función de cada propiedad durante el enlace de modelo.

Extensible Cuadro de diálogo “Nuevo proyecto”

En ASP.NET MVC 3 puede agregar plantillas de proyecto, motores de vista y marcos de proyectos de prueba unitaria para el cuadro de diálogo Nuevo proyecto.

Mejoras Andamios Plantilla

ASP.NET MVC 3 plantillas de andamios hacen un mejor trabajo de identificación de propiedades primarias clave en los modelos y manejarlos apropiadamente que en versiones anteriores de MVC. (Por ejemplo, las plantillas de andamios ahora se aseguran de que la clave principal no se andamiaje como un campo de formulario editable.)

Por defecto, los andamios de crear y editar ahora utilizan la Html.EditorFor helper en lugar de la Html.TextBoxFor ayudante. Esto mejora el soporte para los metadatos sobre el modelo en forma de atributos de anotación de datos cuando el cuadro de diálogo Agregar vista genera una vista.

Nuevas sobrecargas para “Html.LabelFor” y “Html.LabelForModel”

Nuevos sobrecargas del método se han añadido para los LabelFor y LabelForModel métodos auxiliares. Las nuevas sobrecargas que permiten especificar o anular el texto de la etiqueta.

Auxiliar del Controlador sin sesión

En ASP.NET MVC 3 se puede indicar si desea que una clase de controlador para utilizar el estado de sesión, y si es así, si el estado de sesión se debe leer / escribir o de sólo lectura

Nueva Clase “AdditionalMetadataAttribute”

Puede utilizar los AdditionalMetadata atribuyen a poblar la ModelMetadata.AdditionalValues ​​diccionario para un modelo de propiedad.Por ejemplo, si un modelo de vista tiene una propiedad que se debe mostrar sólo a un administrador, puede anotar que la propiedad como se muestra en el siguiente ejemplo:

 public class ProductViewModel 
 {
     [AdditionalMetadata ("AdminOnly", true)]
     RefundCode public string {get; set;}
 }

Estos metadatos se pondrá a disposición de cualquier plantilla de visualización o el editor cuando se representa un modelo de descripción del artículo. Es hasta usted para interpretar la información de metadatos.

AccountController mejoras

El AccountController en la plantilla de proyecto de Internet se ha mejorado mucho.

Nueva plantilla de proyecto Intranet

Una nueva plantilla de Intranet Proyecto está incluido, que permite la autenticación de Windows y elimina la AccountController.

Fuente  aqui


ASP.NET MVC 3

Volver a la Portada de Logo Paperblog