Sigue a Genbetadev

ASP.NET MVC WebAPI

Como tantas veces, los equipos de desarrollo de herramientas de desarrollo de Microsft nos llevan a los programadores con la lengua fuera desde hace ya más de un lustro.

A las publicaciones, actualizaciones y services packs con novedades mensuales en todo el ecosistema de herramientas, hoy quiero traer un framework que se integra en las soluciones Web MVC 4.0 para construir aplicaciones RESTful, es decir que soporten de forma completa comunicaciones REST (siendo puristas es mucho más que comunicaciones).

Una breve pincelada de REST


Representational State Transfer (Transferencia de Estado Representacional) es un estilo arquitectura de software utilizada para sistemas distribuidos como puede ser la Web en Internet y que, para poder ser llamado así, debe cumplir los siguientes criterios:
  • Identificación del recurso. Se debe nombrar todo de lo que se necesite hablar, como por ejemplo “productos”, “categorías”, “clientes”, etc.
  • Interfaces uniformes. Generalizando, se utiliza los comandos del protocolo de aplicaciones HTTP para las operaciones: GET, PUT, POST, DELETE, etc.
  • Mensajes autodescriptivos. Se debe acceder a los recursos por medio de URI, y la representación de los mismos puede ser diferente. Por ejemplo se puede representar el mismo modelo con XML o con Json.
  • Navegación hipermedia. Las aplicaciones RESTful deben poderse navegar a través de hiperenlaces.
  • Interacciones sin estado. Esto significa que el estado de la aplicación debe ser soportado en el servidor, mientras que el estado del cliente lo ha de ser en el cliente.

En resumen, de un modo muy de brocha gorda, se le llama REST a las aplicaciones que comparten recursos por medio de URI + nombre del recurso + comando HTTP + parámetros y que devuelven la información en XML o en JSON, obviando encapsulamientos complejos como SOAP o llamadas RCP, y que la sencillez de su uso y el poco “peso” de las comunicaciones, han hecho un estándar de facto su uso en las principales API actuales.

Una breve pincelada de MVC 4


Modelo Vista Controlador es un patrón arquitectónico de software que busca la separación clara de las responsabilidades de las piezas de una aplicación Web, de forma que sea más sencillo su mantenimiento, su testing y se tenga un control mucho mayor, que en los webforms, del volumen de datos que se envían al cliente.

MVC divide el código en tres capas diferencias, cada uno con su propia responsabilidad:

  • Vista: Páginas que van a ser enviadas al cliente para ser representadas en el navegador.
  • Controlador: Actúan de controlador entre las Vistas y el Modelo. Recoge las peticiones del usuario que realiza en la Vista, interaccionan con el modelo y deciden que vista es la que debe enviar al cliente para mostrar los datos.
  • Modelo: Representa las reglas de negocio de la aplicación (y el acceso a datos subyacente).

Si bien la inclusión del framework ASP.NET MVC no significa el fin de las aplicaciones Web realizadas con WebForm, sí que ha implicado su decadencia ya que el modelo MVC es bastante más mantenible y robusto, a pesar de tener una curva de aprendizaje más empinada.

¿Qué es ASP.NET WebAPI?


WebApi

ASP.NET WebAPI es el nuevo framework de la familia .NET que tiene como objetivo el facilitarnos en gran medida la construcción de aplicaciones RESTFul orientadas a ofrecer servicios, como podría ser Twiter, World of Warcraft, Amazone o Windows Azure.

Fíjate que estamos hablando de construir un API a nuestra aplicación, y que la fuerza de este framework es hacer sencillo desarrollar un módulo que permita acceder y explotar nuestra información desde cualquier tipo de dispositivo; ya sea un portátil, una tableta o un móvil.

La ventaja, como todo framework, es que nos da hecho el trabajo repetitivo, y nos provee de una arquitectura MVC con unas buenas bases desde la que iniciarnos en el desarrollo. También incluye las referencias para utilizar Entity Framework 5.0, JQuery y, muy importante, construye el proyecto de testing adecuado para el desarrollo en TDD (o casi).

Pero como no hay nada mejor para aprender que el trastear en primer mano, lo mejor es que te pases por la Web de ASP.NET WebAPI, ASP.NET MVC y que descubras por ti mismo la potencia de esta herramienta.

Ah, y si te apetece meterte con el código del framework, solo recordarte que ASP.NET MVC, Razor (el lenguaje de marcado) y WebAPI son Open Source con licencia Apache 2.0 y puedes involucrarte en el desarrollo en la página de ASP.Net en codeplex.

Más información | ASP.NET WebAPI, ASP.NET MVC

Los comentarios se han cerrado

Ordenar por:

4 comentarios