Estructura de las aplicaciones web
Aunque existen muchas variaciones posibles, una aplicación web está normalmente estructurada como una aplicación de tres-capas. En su forma más común, el navegador web ofrece la primera capa y un motor capaz de usar alguna tecnología web dinámica (ejemplo: PHP, Java Servlets o ASP, ASP.NET, CGI, ColdFusion, embPerl, Python (programming language) o Ruby on Rails) constituye la capa de enmedio. Por último, una base de datos constituye la tercera y última capa.
El navegador web manda peticiones a la capa de enmedio que ofrece servicios valiéndose de consultas y actualizaciones a la base de datos y a su vez proporciona una interfaz de usuario.
TECNOLOGÍA A UTILIZAR EN UNA APLICACIÓN WEB?
Lo que queda por decidir una ves que se haya decidido realizar una aplicación Web, es la tecnología que se va a utilizar. Existen muchas opciones para escoger, entre las más comunes encontramos PHP, JSP, ASP, ASP.NET. Se comentaran algunas de las características de estos lenguajes.
PHP
PHP Hypertext Pre-processor (PHP) es una de las tecnologías Web mas extendida en la actualidad, muy sencillo de aprender, realizado inicialmente para trabajar sobre Linux con servidor Apache, pero hoy en día puede alojarse en cualquier servidor. El código fuente esta abierto, por los que los problemas que se presentan son rápidamente controlados, y solucionados; excelente biblioteca de funciones que permite realizar cualquier. Su sintaxis es muy similar a la C y Perl. Se comunica con bases de datos sin necesidad de usar ODBC, una de las características mas relevante que tiene. El análisis léxico para recoger las variables que se pasan en la dirección lo hace PHP de forma automática, librándose el usuario de tener que separar las variables y sus valores.
Es un lenguaje script, no compilado; un lenguaje de bajo nivel donde dificulta la modularización y organización por capa de la aplicación. La orientación a objeto es deficiente para grandes aplicaciones. Todo el trabajo lo realiza el servidor y no delega al cliente, por tanto puede ser más ineficiente a medida que las solicitudes aumenten de número. La legibilidad del código puede verse afectada al mezclar sentencias HTML y PHP.
JSP
JavaServer Pages (JSP) es una tecnología Java que permite generar contenido dinámico para web, en forma de documentos HTML, XML o de otro tipo. Comparten mucha de las ventajas de ASP.NET, sobre todo en cuanto a la programación modular y orientada a objeto. Es multiplataforma.
Uno de sus más grandes problemas es el bajo enfoque de cara al usuario donde da mucho trabajo para presentar páginas web al navegador, así como su excesiva complejidad.
ASP
Active Server Pages (ASP) es la tecnología pionera en las aplicaciones Web que se ejecutan en el servidor, Desarrollado por Microsoft y optimizado para su ejecución en servidores Windows con tecnología NT bajo IIS. Al ser una tecnología propietaria, no tiene la gran cantidad de módulos que PHP, aunque mediante los objetos COM, trabaja fácilmente con archivos dll. Es un tanto desorganizado, utiliza lenguajes de scripting no tipados como VBScript o JScript. No hay una distinción formal entre el contenido de una página y su comportamiento, se pone contenido y esperamos a ver que ocurre.
ASP.NET
Es un conjunto de tecnologías de desarrollo de aplicaciones web comercializado por Microsoft. Rompe totalmente con el pensamiento script que se tenía hasta el momento; el cambio en la arquitectura es radical. Dado que la Web no se lee secuencial, sino que se compila, lo primero que llama la atención es el enorme incremento de velocidad de respuesta del servidor; además el incremento en seguridad y fortaleza es muy grande. ASP.NET introduce el concepto del code-behind, por el que una misma página se compone de dos ficheros: el de la interfaz de usuario y el de código. Con ello se facilita la programación de aplicaciones en múltiples capas, lo que en definitiva se traduce en la total separación entre lo que el usuario ve y lo que la base de datos tiene almacenado. Por tanto, cualquier cambio drástico de especificaciones minimiza los cambios en la aplicación y maximiza la facilidad de mantenimiento. Incorpora un modelo declarativo a la programación web: los controles de servidor funcionan en una página Web simplemente declarándolos. Cuando se carga la página ASP.NET, se instancian los controles listados en la página ASP y es responsabilidad del control emitir código HTML que el navegador pueda entender. Te permite separar completamente la Interfaz de la lógica del Negocio, excelente para hacer Aplicaciones Multicapas. Nos proporciona una mayor seguridad, velocidad, potencia, y facilidad de mantenimiento. Otra ventaja son: los archivos de configuración Web.config y Machine.config permiten realizar operación de configuración en ficheros que hasta ahora había que realizar en el servidor; la eliminación total de la necesidad de frames con la introducción de las masterpages, la estructura de carpetas de las aplicaciones Web y el modelo de compilación de páginas, gran cantidad controles optimizados para el trabajo Web y el acceso y manejos de bases de datos. También se puede utilizar diferentes lenguajes distintos para el desarrollo en ASP.NET.
Por otro lado encontramos a Ajax, que viene de: Asynchronous JavaScript and XML, y describe una técnica desarrollada para crear aplicaciones web interactivas. La finalidad es lograr una sensación de interactividad total al realizar intercambios de información con el servidor sin la necesidad de recargar toda la página web. Ésta técnica usa una combinación de varios elementos, como lo son:
* XHTML o HTML y CSS para desplegar y estilizar la información.
* El DOM accesado por medio de lenguajes de script del lado del cliente, como son JavaScript y JScript.
* El objeto XMLHttpRequest para intercambiar los datos con el servidor web.
* XML que es comúnmente el formato usado para realizar los intercambios de información, aunque cualquier formato puede ser usado.
Finalmente el propósito es brindarle al usuario una manera más sencilla de realizar la navegación, pues con AJAX puedes realizar cambios sin la necesidad de cargar toda la página web nuevamente.