El patrón MVC puede usarse en la creación la capa de servicio, para crear servicios web que devuelven XML, JSON o en otros formatos que no sean HTML, incluso era mucho más fácil que lidiar con otros marcos de servicios, tales como la comunicación de Windows Foundation (WCF), o escribiendo controladores HTTP.
MVC 4 incluye una solución, la Web API ASP.NET (conocido como Web API), un marco que
ofrece el estilo de desarrollo ASP.NET MVC, pero se adapta a la escritura de servicios HTTP. Incluye algunos conceptos ASP.NET MVC para el dominio de servicio HTTP y el suministro de características orientadas a servicios.
Enseguida algunas de las características de la Web API que son similares a MVC, pero adaptadas a los servicios HTTP:
Routing: La Web API ASP.NET utiliza el mismo sistema de definición de rutas URL de asignación para controlar las acciones. Se contextualiza el enrutamiento de servicios HTTP mediante mapeo de verbos HTTP a las acciones por convención, es decir se ha pactado seguir un orden por nombres de los elementos de programación, que hacen que el código sea más fácil de leer y promueve el diseño de servicios REST.
Modelo relacionado y validación: MVC simplifica el proceso de mapeo de valores de entrada (campos de la forma, cokkies, los parámetros de las URL, etc.) para el modelado de valores, Web API mapea automáticamente los valores de las solicitudes HTTP a los valores modelos, El sistema de vinculación es extensible e incluye la misma validación atributo-base se utiliza en el modelo MVC.
Filtros: MVC utiliza filtros para agregar conductas a las acciones a través de atributos. Por ejemplo, la adición de un atributo [Authorize] para una acción MVC prohibirá el acceso anónimo, y dirige la solicitud a la página de inicio de sesión. La Web API también es compatible con algunos de los filtros estándar de MVC (como un servicio optimizado [Autorizar] atributo) y filtros personalizados.
Scaffolding: La traducción de scaffolding es andamiaje, y en efecto este andamiaje permite crear un una estructura que comunica los elementos de MVC para para crear los controladores (Controller) que se comunican con las vistas y estas a su vez con el modelo. Se añaden nuevos controladores de la API Web utilizando el mismo cuadro de diálogo que se utiliza para agregar un controlador MVC o). Así mismo puede utilizar el mismo cuadro de diálogo para que por medio de scaffolding agregar un controlador basado en el modelo de datos de Entity Framework.
Unidad de prueba: Al igual que MVC, la Web API se construye en torno a los conceptos de inyección de dependencia y evitando el uso de estado global.
La Web API también añade algunos nuevos conceptos y características específicas para el desarrollo de servicios HTTP.
Modelo de programación HTTP: La experiencia de desarrollo de Web API está optimizado para trabajar con las peticiones y respuestas HTTP. Hay un modelo de objetos fuertemente tipado HTTP, códigos de estado HTTP y las cabeceras para fácil acceso, etc.
Acciónes basadas en verbos HTTP: En MVC el envío de los métodos de acción es basado en sus nombres. Los métodos en la Web API se pueden automatizar para ser enviados base a lod verbos HTTP. Así, por ejemplo, una petición GET sería enviado automáticamente a un controlador acción nombrada GetItem.
Negociación de contenido: HTTP ha apoyado durante mucho tiempo un sistema de negociación de contenido, en el que los navegadores (y otros clientes HTTP) indican sus preferencias de formato de respuesta, y el servidor responde con el formato preferido más alto que puede soportar. Esto significa que su controlador puede suministrar XML, JSON, y otros formatos (de hecho puede añadir uno propio), respondiendo a lo que el cliente más prefiere. Esto le permite añadir soporte para nuevos formatos sin tener que cambiar el código de controlador.
Configuración basada en Código: A diferencia de la compleja y detallada configuración basada en archivo de WCF. La Web API se configurada por completo a través del código.
Aunque La Web API ASP.NET se incluye con MVC 4, puede ser utilizada por separado. No tiene dependencias de ASP.NET en absoluto, y puede ser alojado fuera de ASP.NET y IIS. Esto significa que puede ejecutar la Web API en cualquier aplicación .NET, incluyendo un servicio de Windows o
incluso una aplicación de consola simple.
El diseño visual de las plantillas predeterminadas para proyectos MVC 1 llego a MVC 3 sin cambios. Actualmente se ha mejorado estas plantillas en MVC 4, HTML and CSS para las plantillas fuern completamente diseñadas.
Debido a la proliferación de smartphones y tabletsen el mercado actual, existe más diversidad que formato de pantalla, esta situación obliga a adaptar los formatos web a estos nuevos dispositivos y la estructura de ellos, se requiere que sitios web inteligentes que se adapten a estas pantallas.
Aparece el termino "responsive web desing" y corresponde a una técnica de diseño a través de CSS para configurar en el momento de detectar el tamaño de la pantalla. Y las nuevas plantillas de MVC 4 están diseñadas bajo esta técnica
Display Modes
Los modos de visualización utilizan un enfoque basado en "convención" para permitir la selección de diferentes puntos de vista sobre la base de la navegador que hace la solicitud.
Cuando el agente de usuario del navegador indica un dispositivo móvil , el motor para la vista observa que el archivo tenga la extensión .cshtml y lo reconoce para dispositivos moviles.
Bulding and Minification
MVC 4 y Librerías de código abiertoAgrupación y minificación son dos técnicas que se puede utilizar en ASP.NET 4.5 para mejorar el tiempo de carga, mediante la reducción del número de peticiones al servidor y reduciendo el tamaño de los activos solicitados,como los archivos CSS y JavaScript ).
Las plantillas de proyectos MVC incluyen las mejores bibliotecas de código abierto como jQuery y Modernizr. A partir del MVC 3, éstas se incluyeron a través NuGet, lo que hace que sea aún más fácil de actualizar ellos y gestionar la integración de software.
- Json.NET: Json.NET es una biblioteca .NET para el manejo de datos en notación JavaScript Object Notación (JSON). Se incluyó en MVC 4 como parte de API Web para el manejo de serialización a formato JSON, para contratos de datos, tipos anónimos, tipos dinámicos, fechas, preservación de referencias a objeto, sangría, notación camel, y otras características para la serialización. Hay también características adicionales de Json.NET, que incluye LINQ to JSON y conversión automática de JSON a XML.
- DotNetOpenAuth: MVC utiliza DotNetOpenAuth para soportar os proveedores de loggin e identificación basados en OAuth OpenID- . El Account Controller está configurado para soporte para Facebook, Microsoft, Google y Twitter; ya que estos son los inicios de sesión construido con OpenID y OAuth, es posible con otros proveedores. Mientras utilice las clases DotNetOpenAuth directamente, MVC 4 también proporciona una OAuthWebSecurity (en el espacio de nombres Microsoft.Web.WebPages.OAuth) para simplificar el común.
Otras características
MVC 4 incluye un una gran cantidad de características. La lista completa se encuentra en las notas de la versión, disponible en http://www.asp.net/whitepapers/mvc4-release-notes. Algunos de los más interesantes que no encajar en cualquiera de los temas anteriores están listados aquí.
La lógica de configuración en App_Start: Las nuevas características son buenas, pero la lógica adicional para las características que son de configuración por código estaba empezando a saturar el método Application_Start de Global.asax. Estas configuraciones se han trasladado a las clases estáticas del Directorio App_Start.
AuthConfig.cs: Usado para configurar los ajustes de seguridad, incluyendo los sitios de OAuth de inicio de sesión.
BundleConfig.cs: Usado para registrar los paquetes utilizados por la agrupación y minificación del sistema. Varios paquetes se añaden por defecto, incluyendo jQuery, jQueryUI, jQuery validación, Modernizr y referencias CSS por omisión.
FilterConfig.cs: Filtros globales MVC.
RouteConfig.cs: Ruta de configuración.
WebApiConfig.cs: Se utiliza para registrar rutas Web API y ajustes de configuración.
- Plantilla de proyecto MVC vacía: MVC 4 ha incluido una plantilla de proyecto vacía, la cual aparecía desde MVC 2, pero la plantilla realmente no esta no era realmente vacía; incluye una estructura de carpetas, un archivo CSS, y una docena de archivos JavaScript. Esta plantilla ha sido renombrada como Basic y ahora la plantilla de proyecto vacío esta vacía.
- Añadir un Controller desde cualquier lugar: Anteriormente, el Visual Studio añadia elemento Controller desde la carpeta Controllers donde aparecía. Sin embargo, el uso de la carpeta era puramente para la organización. (MVC reconocerá cualquier clase que implemente la Interfaz IController como controlador, independientemente de su ubicación en la aplicación.) Las herramientas de Visual Studio para MVC 4 se han modificado para que aparezca el elemento de menú Agregar controlador para cualquier carpeta en su proyecto MVC. Esto le permite organizar sus controladores.
ASP.NET MVC es Open Source
ASP.NET MVC se ha manejado con licencia de código abierto desde la versión inicial, pero sólo era código fuente abierto en lugar de un proyecto completo. Es posible leer el código; incluso se podría modificar, pero no se puede contribuir al código oficial de MVC.
En mayo del 2012 se anuncia Web Stack ASP.NET como código abierto. Este anuncio marcó la transición de ASP.NET MVC, de las páginas Web ASP.NET (incluyendo Razor el motor de vistas), y la API Web ASP.NET a código abierto con licencia para proyectos de código completamente abierto.
Todos los cambios en el código y el seguimiento para estos proyectos se realiza en repositorios de código públicos, y estos se permiten contribuciones de código de la comunidad, si el equipo está de acuerdo que los cambios tienen sentido.
En poco tiempo, varios errores se corrigen y se agregan características que han sido aceptados en la fuente oficial y serán liberados con MVC 4. Puede ver la fuente y los check-ins a medida que ocurren (en http://aspnetwebstack .codeplex.com / SourceControl /list/changesets) e incluso ejecutar las ultimas versiones del código para probar las nuevas características a medida que se escriben.
Referencias:
- Professional ASP.NET MVC 4 de los autores Jon Galloway, Phil Haack, Brad Wilson, K. Scot Allen de editorial Wrox.
- Using HTTP Modules and Handlers to Create Pluggable ASP.NET Components, https://msdn.microsoft.com/en-us/library/aa479332.aspx
No hay comentarios.:
Publicar un comentario