Introducción a la Programación Web

Generalidades

Ante el primer contacto con este nuevo entorno de desarrollo, es fácil marearse ante la gran variedad de “tecnologías”: HTML, CSS, Javascript, JQuery, PHP, MySQL, ASP.NET, Bootstrap, SQL Server, Ruby on Rails y muchas más.

La respuesta a este problema es que toda tecnología web puede clasificarse en una categoría. Todas las tecnologías de una misma categoría son esencialmente equivalentes, y decidir cuál usar es una decisión burocrática (aunque, como siempre, algunas tecnologías son mejores que otras en ciertas situaciones).

Una vez que sabemos a qué categoría pertenece una tecnología, ya entendemos el 60% sobre ella. El resto es conseguir una buena referencia para la API y la sintaxis.

Esquema general de una aplicación web

Toda aplicación web hace básicamente lo mismo, más allá de qué combinación de tecnologías use:

  1. Proveer una interfaz de consulta/ingreso de datos (frontend): Para que el usuario ingrese datos. Dichos datos, en conjunto, suelen llamarse “query” porque son usados para consultar o pedir dinámicamente un servicio provisto por la máquina o máquinas que alojan el web server (puede haber más de una).
  2. Transmitir la query al web server.
  3. Hacer procesamiento del lado del servidor (backend): El web server procesa los datos recibidos usando una especie de “middleware”.
  4. Armar el resultado a devolver: El formato está definido por la query.
  5. Devolver los resultados al cliente.
  6. Hacer procesamiento del lado del cliente: Puede ser tan simple como mostrar HTML o tan complejo como hacer cálculos, ordenar u otros manejos extra.

Veamos cómo algunos ejemplos de aplicaciones web entran en este esquema. Las posibles combinaciones de tecnologías son muchísimas. Entre ellas:

  • El cliente 1)le pide al web browser que 2) contacte un servidor web usando el protocolo HTTP y 3) le pida un 4) documento HTML específico que el servidor 5)devuelve para que 6) el browser del cliente lo muestre.
  • Tenemos un 1) cliente Java (una JVM que corre en la máquina del cliente) que 2) envía un pedido encriptado a un Java Web Server que 3) procesa el pedido con una Servlet Java que usa un objeto CORBA para generar sistemáticamente 4) datos de negocio en formato XML con una hoja de estilo XSL asociada que es 5) enviada al cliente para 6) mostrarse en su browser como una tabla.

Tipos de tecnologías web

Antes dijimos que toda aplicación web pertenece a una categoría. Existen diversas clasificaciones, pero una de las más sencillas es la siguiente:

  • Presentation: Permiten definir cómo mostrar la información en el cliente. Ejemplos: HTML, CSS. Hay quienes ponen aparte las tecnologías usadas para enviar los datos: JSON, SOAP, RESTful services.
  • Server-side scripting (backend): Cuando las páginas estáticas no son suficientes, es necesario generarlas en el servidor. Esto es posible usando lenguajes de server-side scripting. Ejemplos: PHP, ASP.NET, Perl, Python, Ruby.
  • Client-side scripting (frontend): Hoy en día, todos los navegadores tienen engines de scripting. Esto permite ejecutar código en la máquina del cliente, lo cual permite ahorrar recursos del servidor y permite hacer las páginas más "interactivas". Ejemplos: Javascript (estándar de facto).
  • Data Access: Motores de base de datos. Esto es lo mismo que en el entorno Desktop. Ejemplos: MySQL, SQL Server, Oracle.

Bibliotecas de client-side scripting

Programar con Javascript "pelado" es bastante engorroso y propenso a error. Por eso han surgido varias bibliotecas que hacen más productivo el desarrollo: JQuery, Bootstrap, MochiKit, prototype, mootools. Aparte de estas bibliotecas "livianas", existen frameworks que proveen un mayor conjunto de funcionalidad: AngularJS, YUI, Dojo, Backbone. Entre todas estas, JQuery se ha erigido como un estándar de facto.

Comments

Popular posts from this blog

VB.NET: Raise base class events from a derived class

Apache Kafka - I - High level architecture and concepts

Upgrading Lodash from 3.x to 4.x