domingo, 16 de junio de 2013

Conceptos de ASP.NET : Conceptos Web

Patrones utilizados en ASP.NET:

Entre los patrones utilizados en ASP.NET podemos encontrar dos principales : MVC y MVVM.

Patrón MVC (Model-View-Controller)

El patrón MVC es un patrón de arquitectura de software que separa la representación de  la información de la interacción del usario con la misma.
Las partes que conforman este patrón son :

  1. El Modelo: consiste en datos de aplicación, reglas de negocio,lógica y funciones. Este le notifica a sus vistas y controladores asociados cuando ocurre un cambio en su estado. Esta notificación permite a las vistas producir una salida, y a los controladores cambiar la disponibilidad de los comandos.
  2. La Vista: puede ser cualquier representación visible de los datos, como una gráfica o un diagrama. Esta le pide la información necesaria al modelo para presentar la salida al usuario
  3. El Controlador : es el encargado de manejar la entrada, convirtiendola en comandos para la el modelo o la vista.

Patrón MVVM (Model-View-ViewModel)

Es un patrón arquitectural usado en ingeniería de software que se origina en Microsoft como una especialización del modelo MVC introducido por Martin Fowler. Basado extensamente en patrón MVC, el MVVM está dirigido a plataformas de desarrollo de UIs que soporten programación conducida por eventos (event-driven programming), como HTML5, Windows Presentation Foundation (WPF), Silverlight y el framework ZK.


Herramientas utilizadas en ASP .NET :

JavaScript

Es un lenguaje de scripting interpretado, multi-paradigma (soporta OOP, Programación Imperativa y Programación Funcional), basado en prototipos que es dinámico y débilmente tipado. Su sintaxis es influenciada por C y copia muchos nombres y convenciones de JavaScript. Fue lanzado en 1996 por Netscape Communication, dentro de su navegador Netscape Navigator 2.0

AJAX (Asynchronous JavaScript and XML)

Es un grupo de técnicas de desarrollo web interrelacionadas utilizadas del lado del cliente (client-side) para crear aplicaciones web asíncronas. Con AJAX, las aplicaciones web pueden enviar y recibir datos de un servidor, asíncronamente (en segundo plano) sin interferir con la visualización y comportamiento de la página existente. A pesar de su nombre, el uso de XML no es requerido, en su lugar se utiliza JSON y las peticiones no necesitan ser asíncronas.

En el artículo que acuña el término AJAX, Jesse James Garret explica que las siguientes tecnologías son incorporadas: 
  • HTML y CSS, para la representación.
  • El Document Object Model (DOM) para la presentación dinámica e interacción de los datos.
  • XML para el intercambio de datos, y XSLT para su manipulación.
  • El Objeto XMLHttpRequest para la comunicación asíncrona.
  • JavaScript para unir todas estas tecnologías.
Sin embargo, JSON ha desplazado el uso de XML y, por tanto, XSLT.

jQuery

Es una librería multi-plataforma diseñada para simplificar el client-side scripting de HTML.Su síntaxis está diseñada para que sea fácil navegar por un documento, seleccionar elementos del DOM, crear animaciones, manejar eventos, crear aplicaciones AJAX,entre otros usos. También permite a los desarroladores crear plugins. Fue lanzado en 2006 por Jhon Resig.


REST (Representational State Transfer)

Es un estilo de arquitectura de software para sistemas distribuidos como la WWW (World Wide Web) y es uno de los modelos de diseño de web API predominantes.
El término REST fue introducido y definido en el 2000 por Roy Fielding, uno de los principales autores de las especificaciones 1.0 y 1.1 del Hypertext Transfer Protocol (HTTP) y fue desarrollado por por el el W3C Technical Architecture Group (TAG) en paralelo con HTTP/1.1.

REST describe las siguientes 6 restricciones o reglas (constraints) aplicadas a la arquitectura, mientras dejan la implementación de los componentes individuales libres :

1 - Cliente/Servidor 

Una interfaz uniforme separa los clientes de los servidores. La separación de preocupaciones significan que, por ejemplo, los clientes no tienen que preocuparse por el almacenamiento de datos, la cual queda a discreción de cada servidor, de manera que la portabilidad del cliente es mejorada. 
Los servidores no tienen que preocuparse de la interfaz o estado de usuario, de manera que los servidores son mas simples y escalables. Los servidores y clientes pueden ser cambiados y reemplazados independientemente, siempre y cuando la interfaz entre ellos no sea alterada.

2 - Sin estado (Stateless)

La comunicación entre cliente y servidor se ve limitada además porque ningún contexto de cliente se debe almacenar en el servidor entre las solicitudes. Cada petición de cualquier cliente contiene toda la información necesaria para atender la solicitud, y cualquier estado de sesión se llevará a cabo en el cliente.

3 - Cacheable

Como en la World Wide Web, los clientes pueden almacenar en caché las respuestas. Las respuestas deben por lo tanto, de manera implícita o explícita, se definirse como almacenables en caché, o no, para evitar que los clientes puedan reutilizar datos obsoletos o inadecuados en respuesta a otras peticiones. El cacheo bien manejado elimina parcial o completamente algunas interacciones cliente-servidor, mejorando además la escabilidad y rendimiento.

4 - Sistema de Capas (Layered System)

Un cliente no puede decir ordinariamente si está conectado directamente al servidor final, o a un intermediario a lo largo del camino. Servidores intermediarios pueden mejorar la escalabilidad del sistema, permitiendo el equilibrio de carga y proporcionando caches compartidas. También pueden hacer cumplir las políticas de seguridad.

5 - Código bajo demanda (opcional)

Los servidores pueden temporalmente extender o personalizar la funcionalidad de un cliente mediante la transferencia de código ejecutable. Ejemplos de esto incluyen componentes compilados como Java applets y scripts client-side como JavaScript.

6 - Interfaz Uniforme

Tener una interfaz uniforme entre los clientes y los servidores simplifica y desacopla la arquitectura, lo que hace que cada parte pueda desarrollarse independientemente.

Un servicio que cumpla con todos los requisitos anteriores, se dice que es RESTful, pero si viola alguno no puede ser considerado como tal.


RESTful Web API

Una RESTful Web API (también llamado RESTful web service) es una web API implementada utilizando los principios HTTP y REST. Es una colección de recursos con cuatro aspectos definidos:

  •   La URI base para la web API, como htt://ejemplo.com/recursos/
  • El Content-type o MIME de los datos soportados por la web API. Generalmente se utiliza JSON.
  • El conjunto de operaciones soportados por la web API usando verbos HTTP (GET,POST,PUT,DELETE).
  • La API debe ser hypertext driven.

MEGA, Facebook, Twitter,Amazon,Yahoo,entre otros ofrecen una API para desarroladores basada en REST.


No hay comentarios:

Publicar un comentario