capítulo ii - upsin

46
15 Capítulo II Estado del arte

Upload: others

Post on 24-May-2022

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Capítulo II - UPSIN

15

Capítulo II

Estado del arte

Page 2: Capítulo II - UPSIN

16

Los “sistemas Web” o también conocido como “aplicaciones Web” son aquellos que

están creados e instalados no sobre una plataforma o sistemas operativos (Windows,

Linux). Sino que se alojan en un servidor en Internet o sobre una intranet (red local).

Su aspecto es muy similar a páginas Web que vemos normalmente, pero en realidad

los ‘sistemas Web’ tienen funcionalidades muy potentes que brindan respuestas a

casos particulares. Los sistemas Web se pueden utilizar en cualquier navegador Web

(chrome, Firefox, Internet Explorer, etc.) sin importar el sistema operativo. Para

utilizar las aplicaciones Web no es necesario instalarlas en cada computadora ya que

los usuarios se conectan a un servidor donde se aloja el sistema.

Las aplicaciones Web trabajan con bases de datos que permiten procesar y mostrar

información de forma dinámica para el usuario.

Los sistemas desarrollados en plataformas Web, tienen marcadas diferencias con

otros tipos de sistemas, lo que lo hacen muy beneficioso tanto para las empresas

que lo utilizan, como para los usuarios que operan en el sistema. En la actualidad la

importancia de los sistemas web puede considerarse debido a que ofrecen a las

empresas los siguientes beneficios:

- Alcance Mundial de los productos y servicios ofrecidos: Esto se debe a que

cualquier persona en cualquier parte del mundo puede acceder a ella siempre y

cuando cuente con Internet.

- Competición con las empresas más grandes: En el medio de Internet el sitio web

será comparable con el de las más grandes empresas a nivel mundial.

- Disponibilidad las 24 horas del día, los 365 días del años: Siempre y cuando el

servidor donde está alojado el sitio web se mantenga funcionando correctamente, un

sitio web puede permanecer mostrando ganancias para una empresa.

- Reducción en Costos Corporativos: Los sitios web permiten a las empresas ahorrar

una gran cantidad de recursos, principalmente en el área de telefonía, ya que la

comunicación con el cliente puede hacerse directamente mediante el sitio web,

además reduce la cantidad de personal requerido.

- Brinda una Imagen más Profesional: El contar con un sitio hace que los clientes

consideren seria a una empresa.

- Multiplataforma: Los sitios web pueden ser visualizados en diversos dispositivos.

Page 3: Capítulo II - UPSIN

17

Un diseño web consiste en la planificación, diseño, implementación y mantenimiento

de sitios web. Además como el uso de algunos lenguajes de programación que

participan en la creación de algunos sitios o sistemas web además que esos

lenguajes de programación ayudan mucho en dicho diseño.

Editores para el desarrollo de un Sistema web

Para crear páginas y aplicaciones web es necesario contar con un editor de texto

plano y nuestra imaginación. El propio Bloc de notas o similar que viene con

Windows sirve perfectamente. No obstante siempre viene bien contar con el soporte

que brindan ciertas herramientas especializadas.

Las más potentes ofrecen todo tipo de ayuda contextual para no recordar cada

detalle de los cientos de atributos de CSS y etiquetas HTML disponibles, vista previa

de las páginas que se estén creando, soporte de navegadores, validación de

etiquetas, verificación de accesibilidad, y muchas otras cuestiones avanzadas [7].

CoffeCup

Un editor multiplataforma Windows, Mac y gratuito con soporte para multitud de

características: ayuda contextual a la escritura de código, vista previa del resultado a

medida que escribimos, etc (ver imagen 7). La versión gratuita se ve recortada frente

a la de pago, pero aun así es una buena opción también [8].

Características: Editor de código HTML. Drag and drop. Ftp integrado. 25000

gráficos y fotos. Interfaz sencilla.

Ventajas: Facilidad de uso. Tiene mucho JavaScript

Desventajas: Es Share y tiene ciertos banners de publicidad. Versión límite, aunque

tiene se puede seguir usando. No es realmente gratuito

Page 4: Capítulo II - UPSIN

18

Imagen 7. CoffeCup

TextWrangler

Editor gratuito para Mac especializado en escritura de código HTML, CSS y

JavaScript (ver imagen 8). Se asemeja mucho a Notepad++ o a Sublime pero es más

limitado. Es uno de los más conocidos y utilizados en Mac [9]. Su principal

desventaja es su interfaz, que no ha evolucionado con el paso del tiempo.

Imagen 8. TextWrangler

TextMate

Es un editor de texto desarrollado para la plataforma de Mac. Su licencia tiene un

costo de 60 dólares. La herramienta cuenta con una comunidad seguidora y su sitio

web, permite que los usuarios puedan acezar al blog, manual, wiki y la comunidad

(ver imagen 9) [10].

Page 5: Capítulo II - UPSIN

19

Características: Interfaz gráfica, el manejo sencillo de los archivos. Manejo de

Scripts.

Ventajas: Manejo de bloques, menú de marcadores, buscado entre documentos.

Desventajas: No cuenta con smart-tags, costo de la licencia.

Imagen 9. TextMate

Dreamweaver

Dreamweaver aunque es de pago, es una de las herramientas más utilizadas para la

creación de sitios web. Desarrollada para los grupos de usuarios principiantes y

avanzados (ver imagen 10). La importancia que brinda su herramienta de

extensiones la cual permite añadir funciones a Dreamweaver desarrolladas por

Adobe, comunidad de usuarios u otros, las cuales le agregar funcionalidades a esta

aplicación [11].

Características: Plataformas Windows y MAC, disponible en varios idiomas,

completamiento muy bueno, coloreado en las sintaxis del código, lenguajes: HTML,

Coldfusion, PHP, ASP VBScript, ASP.NET C#, JavaScript, XML, XSLT, CSS,

ActionScript, JSP, entre otros. Incluye Framework para AJAX, administrador CSS,

compatibilidad con dispositivos móviles, integración con Adobe Photoshop y Adobe

Fireworks.

Ventajas: Genera código bastante limpio, permite la creación de páginas en

diferentes lenguajes, creación de plantillas, definición de sitio.

Desventajas: Requiere de conexión a Internet para registrar el producto, requiere

como mínimo de 512 MB de RAM para poder instalarlo, costo de la licencia.

Page 6: Capítulo II - UPSIN

20

Kompozer

Kompozer es un editor web WYSIWYG basado en Nvu, que cuenta con licencia GPL.

Creado con el fin de ser una alternativa libre a Adobe Dreamweaver, surge luego de

Nvu, quien dejo de ser desarrollado. Fue bautizado con el nombre de Kompozer

debido a que el mismo estaba registrado por Linspire (ver imagen 11). Compatible

con las plataformas Windows, MAC, Linux, Debían, RedHat [12].

Características: Incluido administrador de ficheros vía FTP, editor CSS, barras de

herramientas administrables, validador HTML.

Ventajas: Fácil de usar, software libre, multiplataforma, soporte para varios idiomas.

Desventajas: Pocas opciones para el desarrollo, puede dificultar el desarrollo de una

aplicación, al contar pocas herramientas que nos agilicen el trabajo.

Aptana Studio

Aptana es un IDE para el desarrollo web. Incorpora características completas,

sincronización, y administración de proyectos (ver imagen 11). Permite incorporarle

funciones mediante plugins. Soporte para las plataformas Microsoft Windows, Mac y

Imagen 11. Kompozer

Imagen 10. Dreamweaver

TextMate

Page 7: Capítulo II - UPSIN

21

Linux. Está enfocado principalmente a JavaScript y AJAX. Cuenta con una Edición

gratis para la comunidad y otra Profesional de pago. Luego de algunos años de la

creación de este proyecto Aptana recibió muchas descargas que lo hacen popular

[13].

Características: Desarrollo HTML, CSS, JavaScript, soporte para AJAX, incluye

librerías AJAX más populares (JQuery, Prototype, YUI, Spry, entre otras), soporte

para el desarrollo Adobe AIR y iPhone mediante plugins, desarrollo Ruby on Rails,

PHP mediante plugins, protocolos de comunicación FTP.

Ventajas: Permite comprobar la compatibilidad de las funciones con los diferentes

navegadores, multiplataforma, sincronización con carpetas locales y remotas, incluye

plugins para Eclipse.

Desventajas: Consumo de recursos.

Imagen 12. Aptana Studio

Notepad++

Es gratuito y además Open Source aunque solo funciona bajo Windows. Dispone de

multitud de plugins para extender su funcionalidad, y como es muy popular hay

muchos donde elegir (ver imagen 13). Va mucho más allá que el bloc de notas ya

que ofrece sintaxis coloreada, estructuración de código (para poder plegar y

desplegar zonas cubiertas por etiquetas), soporte de otros muchos lenguajes de

programación, etc. Está bien tenerlo a mano para pruebas o ediciones rápidas [14].

Ventajas: Reconoce gran variedad de lenguajes de programación,

Desventajas: No sirve para hacer grandes textos. No tiene tanta funcionalidad en

este aspecto.

Page 8: Capítulo II - UPSIN

22

BlueGriffon

Este excelente editor WYSIWYG utiliza por debajo el motor de rende rizado de

Firefox para visualizar las páginas a medida que se van editando (ver imagen 14).

Cuenta con ayudas a la escritura de código (como las “miguitas de pan” de la parte

de abajo o el acceso a la estructura jerárquica de la página), y ofrece incluso la

posibilidad de probar en tiempo real transformaciones 3D de CSS3 sin abandonar el

editor (ventajas de utilizar el motor Gecko de Mozilla). Es gratuito, Open Source y

multiplataforma (Windows, Mac y Linux) y está disponible en Español entre otros

muchos idiomas [15].

Ventajas: Cumple con los estándares web W3C.Puede crear y editar páginas

conforme HTML 4, XHTML 1.0,HTML 5y XHTML 5.

Desventajas: Hay ciertas funcionalidades del programa las que sólo se puede

acceder a través de extensiones pagas.

Sublime Text

Un editor de texto avanzado para programadores, multiplataforma. Aunque es

bastante espartano lo cierto es que todo el que invierte tiempo en aprender a

dominarlo luego no lo quiere dejar, ya que aumenta mucho la productividad a la hora

Imagen 14. BlueGriffon

Imagen 13. Notepad++

Page 9: Capítulo II - UPSIN

23

de escribir código (ver imagen 15). No ofrece muchas de las características de ayuda

al programador web que sí ofrecen la mayoría de los otros entornos, por lo que es

recomendable sobre todo si se trabajara mucho directamente con código,

especialmente JavaScript [16].

Ventajas: Es muy ligero, multiplataforma, la curva de aprendizaje es mínima si no es

que nula lo cual implica que es fácil de usar e intuitivo, su auto complemento

funciona muy bien y cuenta con muchas características.

Desventajas: La desventaja es que principalmente es un software que tenga

propietario, aunque se puede descargar de forma gratuita.

Imagen 15. Sublime Text

JetBrains WebStorm

Soporta otros lenguajes como CoffeeScript, TypeScript y Node.js, y multitud de

librerías de JavaScript, sistemas de control de código, testeo unitario, etc. Es muy

espectacular la capacidad de editar y ver en tiempo real los cambios en un Chrome,

incluso en aplicaciones de tipo SPA/AJAX (ver imagen 16). Es multiplataforma, no es

gratuito, pero su precio (solamente 44€ para uso individual) es un regalo para todo lo

que ofrece.

Page 10: Capítulo II - UPSIN

24

Imagen 16. JetBrains WebStorm

Microsoft Visual Studio Express for Web

Está disponible en varios idiomas (incluyendo el español) y su única limitación es que

sólo funciona bajo Windows (ver imagen 17). Es decir, que si se trabaja en Mac o

Linux no puede ser utilizado. Tiene un entorno integrado de desarrollo (IDE)

espectacular. Aunque, al igual que el anterior, es una herramienta técnica orientada a

programadores y con muchas otras posibilidades avanzadas, ofrece un soporte

estupendo para diseño de páginas Web, con editores avanzados de HTML, CSS y

JavaScript, capacidad de depuración, ayuda contextual para todos los lenguajes,

validadores de código, validadores de accesibilidad, visualización real de cómo van a

quedar las páginas, etc. [17].

Imagen 17. Microsoft Visual Studio Express for Web

Page 11: Capítulo II - UPSIN

25

Komodo

Komodo pertenece a la familia de los IDE Integrated Development Environment. La

misma es una aplicación de pago. Esta herramienta permita la programación en

lenguajes dinámicos (ver imagen 18). Disponible para las plataformas Linux, MAC y

Windows [18].

Características: Soporte para lenguajes: CSS, HTML, Javascript, XML, Perl, PHP,

Python, Ruby, auto completamiento de código, chequeo de sintaxis, colores en la

sintaxis, vista previa del HTML, administrador de proyectos, permite añadir

extensiones o plugin para añadir características.

Ventajas: Rápido y cómodo, ayuda a agilizar el desarrollo de nuestra aplicación.

Desventajas: Costo de la licencia, no incluye un depurador.

Imagen 18. Komodo

Quanta Plus

Quanta es un Editor HTML basado en el código de Bluefish (ver imagen 19). Es un

proyecto opensource, bajo la licencia GPL. Disponible para plataformas Linux, bajo el

entorno KDE [19].

Características: Administrador de proyectos, soporte HTML, XML, PHP, CSS,

plantillas, soporte de plugins, integrado vista previa de los archivos.

Ventajas: Gratuito, fácil de utilizar, brinda color al código, rápido, completamiento de

código.

Page 12: Capítulo II - UPSIN

26

Desventajas: Dificulta la rapidez de desarrollo.

Imagen 19. Quanta Plus

NVU

Es un editor compatible con las plataformas Windows, MAC y Linux. Es un proyecto

opensource, con licencias MPL/GPL/LGPL (ver imagen 20). NVU está basado en la

plataforma de Mozilla y en el diseño de Gecko. Desarrollado principalmente por

Linspire [20].

Características: Administrador de sitios mediante FTP, Editor CSS, Incluye

validador HTML y CSS.

Ventajas: Muy rápido, fácil de usar, permite mantenimiento según los estándares

W3C, soporte para XML y CSS.

Desventajas: Solo permite el trabajo mediante tablas, muy pocas opciones, soporte

para pocos lenguajes.

Imagen 20. NVU

Page 13: Capítulo II - UPSIN

27

Coda

Es un editor de texto creado por la gente de Panic para el sistema operativo mac,

orientado al desarrollo web. Integra un gestor de sites, cliente SSH, editor visual de

hojas de estilo. Su licencia tiene un costo de 79 dólares. Su versión 1,1 soporta JPS-

HTML y ActionScript (ver imagen 21).

Características: Interface cómodo e intuitivo, el editor de texto incorpora auto-

completación para los lenguajes más comunes, organización de archivos abiertos en

pestañas, trabaja de manera fluida, funciona para el sistema operativo Mac.

Ventajas: Incorpora un potente editor de texto, maneja lenguajes HTML, XHTML,

CSS, Javascript, Java, Perl, Python, Ruby y SQL. Dispone de conexión Terminal por

SSH.

Desventajas: Costo de la licencia, no es compatible con otros sistemas operativos,

solo Mac.

Imagen 21. Coda

Zend Studio

Es un IDE por sus siglas en inglés (Integrated Development Environment) destinado

a desarrolladores profesionales. Es un IDE propietario, compatible con las

plataformas Linux, MAC y Windows. Incluye todos los componentes necesarios

durante el ciclo de vida de una aplicación en PHP. Incluye editor, análisis,

depuración, optimizadores de código y herramientas de base de datos (ver imagen

Page 14: Capítulo II - UPSIN

28

22). Zend Studio permite agiliza el desarrollo web y permite simplificar proyectos

complejos [21].

Características: Excelente completamiento de código, coloreado en la sintaxis del

código, administración avanzada de proyectos, múltiples lenguajes, incorpora el

Framework de Zend, PHP Documentor, manual de PHP. Integración con subversión,

los navegadores, integración avanzada con FTP. Soporte para Web Services, PHP4,

PHP5 y SQL.

Ventajas: Agiliza el trabajo, cuenta con un buen depurador, infinitas opciones que

permiten un desarrollo profesional de las aplicaciones.

Desventajas: Requiere Licencia de pago, no incluye editor visual HTML, un poco

complejo. [22]

NetBeans

NetBeans es un IDE creado originalmente como una alternativa libre a el IDE de

Java. NetBeans soporta múltiples lenguajes (PHP, JavaFX, C/C++, JavaScript, etc.),

y frameworks. NetBeans fue hecho open source en el 2000 por Sun Microsystems

quien permaneció siendo el principal patrocinador del proyecto hasta el 2010 cuando

fueron adquiridos por Oracle (ver imagen 23). NetBeans es gratuito, open source, y

multiplataforma. Cuenta con una enorme comunidad de soporte que se encarga de

proveer plugins, tutoriales y todo tipo de entrenamiento.

Imagen 22. Zend Studio

Imagen 23. NetBeans

Miguel Angel

Alvarez

Page 15: Capítulo II - UPSIN

29

EditRocket

EditRocket es un editor de texto y código fuente, que soporta múltiples lenguajes,

con funciones básicas de autocompletado, búsqueda y resaltado de sintaxis (ver

imagen 24). Además integra su propio cliente FTP y SFTP, corrector ortográfico y un

convertidor de texto a HTML. EditRocket puede ser instalado en Windows, Linux o

Mac gratuitamente por un periodo de prueba de 30 días, posteriormente requiere la

compra de una licencia para poder seguir siendo usado.

Imagen 24. EditRocket

Frameworks para el desarrollo de un Sistema web

Un framework de aplicaciones web es un tipo de framework que permite el desarrollo

de sitios web dinámicos, web services (servicios web) y aplicaciones web. El

propósito de este tipo de framework es permitir a los desarrolladores construir

aplicaciones web y centrarse en los aspectos interesantes, aliviando la típica tarea

repetitiva asociada con patrones comunes de desarrollo web. La mayoría de los

frameworks de aplicaciones web proporcionan los tipos de funcionalidad básica

común, tales como sistemas de templates (plantillas), manejo de sesiones de

usuario, interfaces comunes con el disco o el almacenamiento en base de datos de

contenido cacheado, y persistencia de datos. Normalmente, los frameworks de

aplicación web además promueven la reutilización y conectividad de los

Page 16: Capítulo II - UPSIN

30

componentes, así como la reutilización de código, y la implementación de bibliotecas

para el acceso a base de datos.

Ruby on Rails

Ruby on Rails es un framwork de aplicaciones web, que además de ser

de código abierto funciona bajo el paradigma MVC (ver imagen 25). Está escrito en

Ruby, que es un lenguaje de programación, de hecho dicho con más propiedad Rails

es el framework, y Ruby el lenguaje, aunque para usos prácticos al framework lo

llamaremos Ruby on Rails. El framework Ruby on Rails junto con el lenguaje

permiten la programación de manera rápida, y con la menor cantidad

de código posible, además como usan el modelo MVC el mantenimiento del código

de Ruby on Rails es bastante fácil. Una de las características más bellas de Ruby on

Rails es que crea automáticamente las Bases de Datos y los formularios,

claro permitiéndote modificar el diseño de estos últimos. Las Gemas de Ruby on

Rails es la manera en que se distribuyen librerías, y son de gran ayuda para otros

usuarios del framework, ya que nos ahorran código.

Ruby, tiene un gran competidor que es Python, el cual tiene características similares.

Aunque a diferencia de Ruby Python tiene varios frameworks populares, lo que

dispersa a la comunidad, en cambio Rails es tan popular que hay muchas personas

que piensan que Ruby on Rails es un lenguaje y no un framework [23].

Ventajas:

Cuenta con código libre.

Tiene una extensa comunidad detrás de él que la respalda.

Favorece en el ahorro de líneas de código.

Tiene una forma más fácil de interactuar con

Desventajas:

No es un lenguaje muy conocido.

Primero se tiene que aprender el lenguaje Ruby.

Page 17: Capítulo II - UPSIN

31

Imagen 25. Ruby on Rails

Codeigniter

Codeigniter es un entorno de desarrollo abierto que permite crear webs dinámicas

con PHP. Su principal objetivo es ayudar a que los desarrolladores, puedan realizar

proyectos mucho más rápido que creando toda la estructura desde cero, proveyendo

un rico juego de librerías para tareas comúnmente necesarias, así como una

interface simple y estructura lógica para acceder a esas librerías. Codeigniter permite

enfocarse creativamente en su proyecto minimizando la cantidad de código

necesaria para una tarea dada (ver imagen 26). Este Framework se encuentra

desarrollado bajo una licencia open source Apache/BSD-style, así que lo puede usar

donde más guste [24].

Características de CodeIgniter

• Framework en PHP: Comodidad en el lenguaje.

• Sencillez y excelente rendimiento. • Extensa comunidad: Foros, soporte.

• Documentación.

• Participación activa en su desarrollo. La propia organización del framework

fomenta el buen uso del MVC.

• Mejora la seguridad: Visibilidad y vulnerabilidades.

• Separa el core del framework de nuestro futuro código.

• Flexible a nuestras modificaciones en dicha estructura.

Imagen 26. Ruby on Rails

Page 18: Capítulo II - UPSIN

32

Kohana

Kohana es un framework de PHP5 que sigue la arquitectura MVC (Modelo-Vista-

Controlador) (ver imagen 27) [25].

Imagen 27. Kohana

Django

Ventajas:

Desarrollo rápido y ágil, puede hacer aplicaciones web enteras en un corto tiempo

No se necesita crear tablas y relaciones en la base de datos, (ver imagen 28) Django

lo hace por si solo de una manera limpia y normalizada. Madurez (Django a pesar de

tener pocos años es un framework muy maduro, ya que está hecho para resolver

problemas de la vida cotidiana). Se puede usar no solo para páginas webs, si no

para muchos otros formatos. Usa el modelo MTV (Modelo - Template - Vista).

Desventajas:

A pesar de un framework de rápido desarrollo entender todos los conceptos de MTV

puede llevar un tiempo. No sirve archivos estáticos necesitaras hacer un hack al

servidor web o usar otro servidor web.

Imagen 28. Django

CakePHP

Este framework se utiliza para el desarrollo de aplicaciones basadas el lenguaje

PHP, es uno de los llamados modelo-vista-controlador, este separa los datos y la

lógica de negocio de una aplicación de la interfaz de usuario y el módulo encargado

de gestionar los eventos y las comunicaciones (ver imagen 29). CakePHP se

encuentra actualmente en la versión 2.5.6 y es distribuido por la empresa Cake

Software Fundation y es considerado como un software de distribución libre [26].

Page 19: Capítulo II - UPSIN

33

Imagen 29. CakePHP

Zend Framework

Zend Framework es un framework open source para el desarrollo de aplicaciones y

servicios web con PHP 5 (ver imagen 30). Está implementado utilizando código

100% orientado a objetos. Los componentes tienen poco acoplamiento entre ellos lo

cual permite a los desarrolladores utilizarlos separadamente. Principalmente este

framework ofrece una implementación MVC robusta y de alto rendimiento,

abstracción para interactuar con bases de datos, un componente que implementa el

rende rizado de formularios HTML, validación y filtrado. Además posee otros

componentes tales como Zend_Auth y Zend_Acl los cuales proveen autenticación de

usuarios y autorización de acceso a los recursos contra los almacenes de

credenciales más comunes.

El principal sponsor del proyecto 'Zend Framework' es Zend Technologies, pero

muchas otras compañías como Google, Microsoft y StrikeIron se han asociado con

Zend para proveer interfaces para los web services y otras tecnologías que ellos

quisieron que estuviesen disponibles para los desarrolladores de Zend [27].

Ventajas:

Reduce el "time to market" de las aplicaciones, permitiendo ofrecer presupuestos

más ajustados Estandariza los procesos más frecuentes, dotándolos de gran

robustez Facilita el mantenimiento de las aplicaciones Ofrece muchas facilidades

para el acceso a recursos avanzados (Web services securizados, por ejemplo) que

de otro modo resultan bastante más costosos de desarrollar A diferencia de otros

frameworks, es posible utilizarlo en modo "desacoplado", es decir, aquellas clases o

componentes que sean necesarios en cada proyecto, sin arrastrar todo el framework

detrás para cualquier pequeña necesidad.

Page 20: Capítulo II - UPSIN

34

Imagen 30. CakePHP

Yii

Yii es un framework genérico de programación Web que puede ser utilizado para

todo tipo de aplicaciones Web. Gracias a que es liviano de correr y está equipado

con soluciones de cacheo sofisticadas, es adecuado para desarrollar aplicaciones de

gran tráfico como portales, foros, sistemas de administración de contenidos (CMS),

Sistemas de comercio electrónico (e-commerce), etc (ver imagen 31).

Imagen 31. Yii

Pylons

Es framework ligero y hace mucho énfasis en la flexibilidad y el rápido desarrollo. Es

un proyecto de código abierto que se desarrolla un conjunto de marcos te

aplicaciones web escritas en Python (ver imagen 32) [28].

Características:

Combina las mejores ideas de lenguajes de programación como Ruby, Perl Y

Python. Proporciona un marco estructurado web para extremadamente flexible.

Ventajas:

Único en ser mínimo y flexible.

Page 21: Capítulo II - UPSIN

35

Componentes elegidos cuidadosamente.

Es necesario entre componentes potentes.

Desventajas:

Comunidad más pequeña que turbogears y djano.

Documentación insuficiente y caótica

Catalyst

Catalyst es una estructura de código libre para aplicaciones web escrito en Perl.

Soporta la arquitectura MVC, así como soporta algunos patrones web experimentales

(ver imagen 33). Está altamente inspirado en Ruby on Rails, Maypole y Spring.

Catalyst promueve el re-utilizamiento de los módulos de Perl que ya soportan bien lo

que requieren las páginas Web.

La forma en que Catalyst soporta la arquitectura MVC es la siguiente:

La parte de Modelo (Model) es manejada por medio

de DBIx:Class, Plucene, Net::LDAP u otras clases modelo.

La parte de Vista (View) es usualmente manejada por Template

Toolkit, Mason o HTML::Template.

La parte de Control (Controller) es escrita por el autor, por supuesto. Grandes

pedazos de funcionalidad usualmente se pueden conseguir con los plugins de

Catalyst

Imagen 32. Yii

Page 22: Capítulo II - UPSIN

36

Symfony

Symfony es un completo framework diseñado para optimizar el desarrollo de las

aplicaciones web basado en el patrón Modelo Vista Controlador (ver imagen 34).

Para empezar, separa la lógica de negocio, la lógica de servidor y la presentación de

la aplicación web. Proporciona varias herramientas y clases encaminadas a reducir el

tiempo de desarrollo de una aplicación web compleja. Además, automatiza las tareas

más comunes, permitiendo al desarrollador dedicarse por completo a los aspectos

específicos de cada aplicación. El resultado de todas estas ventajas es que no se

debe reinventar la rueda cada vez que se crea una nueva aplicación web.

Symfony está desarrollado completamente en PHP 5.3. Ha sido probado en

numerosos proyectos reales y se utiliza en sitios web de comercio electrónico de

primer nivel. Symfony es compatible con la mayoría de gestores de bases de datos,

como MySQL, PostgreSQL, Oracle y Microsoft SQL Server. Se puede ejecutar tanto

en plataformas Unix, Linux, etc. como en plataformas Windows [29].

Imagen 34. Symfony

Imagen 33. Catalyst

Page 23: Capítulo II - UPSIN

37

TurboGears

TurboGears es un megaframework para desarrollo web de código abierto, escrito

en Python. Fue creado en el año 2005 por Kevin, es un stack web completo, que

abarca desde Pylons, SQLAlchemy, Genshi, Mako, Reponze y ToscaWidgets. Está

diseñado basado en la arquitectura Modelo–vista–controlador parecido

a Stratus o Ruby on Rails, diseñado para generar rápidamente aplicaciones web

en Python y que sean fáciles de mantener (ver imagen 35)[30].

Imagen 35. TurboGears

Tipos de servidores web para el desarrollo de un Sistema web

Un servidor web es un programa informático que procesa una aplicación del lado del

servidor realizando conexiones bidireccionales y/o unidireccionales y síncronas o

asíncronas con el cliente generando o cediendo una respuesta en cualquier lenguaje

o Aplicación del lado del cliente.

Apache

Es el más común y más utilizado en todo el mundo. Además, es gratuito (cómo no), y

de código abierto, así que podríamos decir que corre sobre cualquier plataforma (ver

imagen 36) [31].

Ventajas:

Es altamente configurable

Se desarrolla dentro del proyecto HTT

Tiene amplia aceptación en la red

Posee licencia freware gracias a su amplio nivel de capacitación, su costo y su

compatibilidad con los sistemas operativos.

Page 24: Capítulo II - UPSIN

38

Posee código abierto y el fácil de conseguir ayuda o soporte.

Desventajas:

Este incluye formatos de configuración no estándar

No cuenta con una buena administración.

Falta de integración.

Imagen 36. Apache

Microsoft IIS

Sólo funciona sobre sistemas Windows (ver imagen 37) [32].

Ventajas:

Es configurable y administrable en internet.

Proporciona capacidades de servidor web integrado.

Al momento de la instalación permite elegir que servidor web va a correr.

Desarrolla y es compatible con las aplicaciones con un único entorno de alojamiento

de aplicaciones integrado con compatibilidad.

Desventajas:

Tiende a limitarse en las versiones que no son de la familia server.

Posee vulnerabilidades.

Este servidor no es multiplataforma, solo funciona bajo Windows.

Page 25: Capítulo II - UPSIN

39

Imagen 37. Microsoft IIS

Sun Java System Web Server

Este producto pertenece a la casa Sun, y suele empalarse sobre entorno de este

sistema. Sin embargo, como Apache, es multiplataforma, y recientemente Sun ha

decidido distribuirlo con licencias de código abierto (BSD concretamente) [33].

Ngnix

Este es un servidor Web muy ligero y corre sobre sistemas Unix y Windows.

Se ha convertido en el 4º servidor HTTP más popular de la red y también se

distribuye bajo licencia BSD [34].

Ventajas: Multiplataforma: Nginx se puede instalar en diferentes sistemas Unix

(GNU/Linux, BSD, Solaris, Mac OS X, etc.) y también en Windows. Ligero: Consume

menos recursos para realizar la misma función que otros servidores web. Alto

rendimiento: ‘Aguanta’ más y responde más rápido comparado con otros servidores

web. Proxy inverso: Se puede usar como proxy inverso para cachear el contenido de

los sistemas webs.

Desventaja: Módulos dinámicos: No se pueden instalar nuevos módulos sin tener

que compilar Nginx con el módulo deseado y volver a instalarlo. Documentación: No

existe mucha información para resolver según qué problemas comparado con otros

servidores.

Lighttp

Este servidor Web es otro de los más ligeros que hay en el mercado. Está

especialmente pensado para hacer cargas pesadas sin perder balance, utilizando

Page 26: Capítulo II - UPSIN

40

poca RAM y poca de CPU. Algunas páginas populares que lo usan son YouTube,

Wikipedia y otras que soportan gran tráfico diariamente. También es gratuito y se

distribuye bajo licencia BSD [35].

Ventajas: Gestión de archivos: Los ficheros estáticos del servidor son procesados

únicamente por el núcleo que además usa un conjunto muy reducido de

instrucciones por lo que prácticamente podemos decir que van del disco duro al

socket aumentando así el número de peticiones por segundo que el servidor admite

sin que ello repercuta en la CPU. Esta ventaja cobra vital importancia si nuestra

aplicativo a trabajar con una considerable cantidad de archivos estáticos como son

las fotos, vídeos, documentos…

Streaming: Otra ventaja y que está muy relacionada con el anterior punto, es la

posibilidad de usar lighttp como servidor de streaming bajo demanda tanto de

archivos de baja calidad (flv) como archivos de alta calidad en formato h.264

(mp4) aunque para este último, y al igual que ocurre en otros servidores, hay que

pagar una licencia por tratarse de un plugin creado por terceros.

Proxy: Pero si este servidor resulta realmente práctico es por la posibilidad de

usarlo como proxy entre el servidor y los usuarios. De esta forma centralizamos

todas las peticiones en un único servidor y protegemos el resto de servidores de

posibles ataques sin que el usuario lo perciba.

Desventajas: En primer lugar se tiene que recordar que aunque una cosa sea mejor

que otra, esto no implica que esta última sea mala; a día de hoy se estima que el

60% de los servidores que existen a lo largo de todo el mundo funcionan con Apache

y eso ya supone una garantía. En segundo lugar, la comunidad que define Apache y

que es la encargada de crear nuevas funcionalidades a la par que resuelve

incidencias [36].

Servidores de base de datos para el desarrollo de un sistema web

Un servidor de bases de datos se utiliza para almacenar, recuperar y administrar los

datos de una base de datos. El servidor gestiona las actualizaciones de datos,

permite el acceso simultáneo de muchos servidores o usuarios web y garantiza la

Page 27: Capítulo II - UPSIN

41

seguridad y la integridad de los datos. Y cuando se habla de datos, se puede estar

hablando sobre millones de elementos a los que acceden al mismo tiempo miles de

usuarios. Así como sus funciones básicas, el software de servidores de bases de

datos ofrece herramientas para facilitar y acelerar la administración de bases de

datos. Algunas funciones son la exportación de datos, la configuración del acceso de

los usuarios y el respaldo de datos.

¿Cómo se usan las bases de datos?

Las bases de datos tienen todo tipo de usos, como gestión de documentos, gestión

de registros, índices de motores de búsqueda, para servidores de correo electrónico

y para brindar contenido dinámico de páginas web. Una persona, aplicación o script

de página web puede consultar la base de datos con el lenguaje SQL. Los servidores

de bases de datos se usan en el alojamiento de páginas web para insertar contenido

en páginas web dinámicas. Las páginas dinámicas utilizan diseños de tipo estándar

que son llenadas con información en función de la dirección URL de la página, o de

otras variables como las credenciales de usuario o las acciones que se realicen en la

página.

¿Cuáles son los servidores de bases de datos más conocidos?

Oracle: Oracle Database es un sistema de tipo objeto-relacional desarrollado

por Oracle Corporation (ver imagen 38). Se considera a Oracle Database como uno

de los sistemas de bases de datos más completos, destacando: soporte

de transacciones, estabilidad, escalabilidad, y soporte multiplataforma. Su dominio en

el mercado de servidores empresariales había sido casi total hasta que

recientemente tiene la competencia del Microsoft SQL Server y de la oferta de

otros RDBMS con licencia libre como PostgreSQL, MySQL o Firebird [37].

.Ventajas:

1.-Oracle es el motor de base de datos relacional más usado a nivel mundial.

2.-Puede ejecutarse en todas las plataformas, desde una Pc hasta un

Page 28: Capítulo II - UPSIN

42

supercomputador.

3.-Oracle soporta todas las funciones que se esperan de un servidor "serio": un

lenguaje de diseño de bases de datos muy completo (PL/SQL) que permite

implementar diseños "activos", con triggers y procedimientos almacenados, con una

integridad referencial declarativa bastante potente.

4.-Permite el uso de particiones para la mejora de la eficiencia, de replicación e

incluso ciertas versiones admiten la administración de bases de datos distribuidas

Desventaja:

1.- Una de las versiones más recientes de Oracle es la 8, y desde que el lanzamiento

original de la 8 se sucedieron varias versiones con correcciones hasta alcanzar la

estabilidad con la versión 8.0.3. El motivo de tantos fallos fue la remodelación del

sistema de almacenamiento por causa de la introducción de extensiones orientadas

a objetos.

2.- El mayor inconveniente de Oracle es su precio. Incluso las licencias del personal

Oracle son extensiones caras. Otro problema es la necesidad de ajustes. Un error

frecuente consiste en pensar basta instalar el Oracle en un servidor y enchufas

directamente las aplicaciones clientes.

SQL Server

Microsoft SQL Serveres un sistema de manejo de bases de datos del modelo,

desarrollado por la empresa Microsoft [38]. El lenguaje de desarrollo utilizado (por

línea de comandos o mediante la interfaz gráfica de Management Studio)

esTransact-SQL (TSQL), una implementación del estándar ANSI del lenguaje SQL,

Imagen 38. Oracle:

Page 29: Capítulo II - UPSIN

43

utilizado para manipular y recuperar datos (DML), crear tablas y definir relaciones

entre ellas (DDL) (ver imagen 39).

Ventajas:

1.- Es un sistema de gestión de base de datos.

2.- Es útil para manejar y obtener datos de la red.

3.- No permite olvidarnos de los ficheros que forman la base de datos.

4.- SQL permite administrar permisos a todo. También permite que alguien conecte

su SQL a otros SQL,

Desventajas:

1.-Utiliza mucha memoria RAM para la instalación y utilización del software.

2.- No se puede utilizar como practicas porque se prohíbe muchas cosas, tiene

restricciones en lo particular.

3.- La relación, la calidad y el precio está muy abajo comparado con Oracle.

DB2

DB2 es una marca comercial, propiedad de IBM, bajo la cual se comercializa

un sistema de gestión de base de datos (ver imagen 40). DB2 versión 9 es un motor

de base de datos relacional que integra XML de manera nativa, lo que IBM ha

llamado pureXML, que permite almacenar documentos completos dentro del tipo de

datos XML para realizar operaciones y búsquedas de manera jerárquica dentro de

éste, e integrarlo con búsquedas relacionales [39].

Ventajas: Se trata nuevamente de una de las bases de datos "históricas". La

arquitectura física es muy similar a la de Oracle. También puede ejecutarse en varias

Imagen 39. SQL Server

Page 30: Capítulo II - UPSIN

44

plataformas: existe incluso una versión "personal" para Windows 95/98. El SQL de

DB2 es muy potente. Es especialmente interesante la implementación de triggers.

Desventajas: Es similar a Oracle en el precio. Los procedimientos almacenados de

DB2 deben programarse en lenguajes externos: C, Java, Visual basic, etc. ¿Por qué

esto es desventaja? No sólo porque obliga a utilizar un lenguaje adicional, sino

principalmente porque nos hace depender de otro compilador que casi siempre está

ligado a la plataforma o sistema operativo.

Imagen 40. DB2

Sybase

Sybase Inc. (NYSE:SY) fue una compañía dedicada al desarrollo de tecnología. Fue

fundada en Berkeley, California (EE.UU.), en1984, y operó como empresa

independiente hasta que SAP anunció su plan de adquirirla en mayo de 2010 (ver

imagen 41) [40].

Ventajas: Rapidez – Consultas hasta 100 veces más rápidas que un sistema de

gestión de base de datos (SGBD) tradicional. Menor costo total de propiedad – Usa

algoritmos sofisticados de compresión que reducen el volumen de almacenamiento

hasta en un 70 por ciento, comparado con un SGBD tradicional. Facilidad de uso –

Más fácil de mantener que aplicaciones empresariales tradicionales de almacén de

datos; no requiere de afinamiento intensivo. Escalabilidad – Ofrece escalabilidad de

usuarios y datos casi lineal, para grandes volúmenes de usuarios y datos. También

soporta multiplexación, especialmente en ambientes GNU/Linux en donde la

escalabilidad a nivel de CPU puede ser limitada. Flexibilidad – Sybase IQ viene

Page 31: Capítulo II - UPSIN

45

empaquetado en diferentes ediciones, dependiendo de las necesidades de

procesamiento de consultas de la organización.

Desventajas: Sybase es muy popular como gestor de base de datos, pero no es el

gestor usual que podemos tener en casa o en una pequeña empresa. Es un gestor

orientado a las grandes corporaciones y una de sus principales bazas es su enorme

seguridad, ya que es un producto sobre el que no suelen aparecer muchas

vulnerabilidades. No sólo por el hecho de que tanto Sybase como Oracle son

productos complejos de por sí, sino por el hecho de que el patrón específico de

auditoria cambia radicalmente para ambos sistemas.

Imagen 41. Sybase

MySQL

MySQL es un sistema de gestión de bases de datos relacional, multihilo

y multiusuario con más de seis millones de instalaciones. MySQL AB —desde enero

de 2008 una subsidiaria de Sun Microsystems y ésta a su vez de Oracle

Corporation desde abril de 2009— desarrolla MySQL como software libre en un

esquema de licenciamiento dual (ver imagen 42) [41].

Ventajas: MySQL software es Open Source. Velocidad al realizar las operaciones,

lo que le hace uno de los gestores con mejor rendimiento. Bajo costo en

requerimientos para la elaboración de bases de datos, ya que debido a su bajo

consumo puede ser ejecutado en una máquina con escasos recursos sin ningún

problema. Baja probabilidad de corromper datos, incluso si los errores no se

producen en el propio gestor, sino en el sistema en el que está. Su conectividad,

velocidad, y seguridad hacen de MySQL Server altamente apropiado para acceder

bases de datos en Internet.

Page 32: Capítulo II - UPSIN

46

Desventajas: Un gran porcentaje de las utilidades de MySQL no están

documentadas. No es intuitivo, como otros programas (ACCESS) [42].

Imagen 42. MySQL

Frameworks responsivos

Bootstrap

Bootstrap es una excelente herramienta para crear interfaces de usuario limpias y

totalmente adaptables a todo tipo de dispositivos y pantallas, sea cual sea su tamaño

(ver imagen 43). Además, Bootstrap ofrece las herramientas necesarias para crear

cualquier tipo de sitio web utilizando los estilos y elementos de sus librerías [43].

Ventajas:

Utiliza componentes y servicios creados por la comunidad web, tales como: HTML5

shim, Normalize.css, OOCSS, jQuery UI, LESS y GitHub. Es un conjunto de buenas

prácticas que perduran en el tiempo. Quizás dentro de sus características más

destacadas, podríamos mencionar. La implementación de HTML5 + CSS3. El famoso

Grid system, que por defecto incluye 12 columnas fijas o fluidas, dependiendo de si

tu diseño será responsivo o no. Hay una enorme comunicad que soporta este

desarrollo y cuenta con implementaciones externas como WordPress, Drupal, SASS

o jQuery UI.

Desventajas:

Es necesario adaptarse a su forma de trabajo, si bien su curva de aprendizaje es

liviana, deberás comprender y familiarizarte con su estructura y nomenclatura. Debes

adaptar tu diseño a un grid de 12 columnas, que se modifican según el dispositivo.

Aquí empiezan los problemas, Bootstrap por defecto trae anchos, márgenes y altos

de línea, y realizar cambios específicos.

Page 33: Capítulo II - UPSIN

47

Imagen 43. Bootstrap

Foundation

Foundation 3 es un framework fácil de usar, potente y flexible para la construcción de

prototipos, generando código de producción en cualquier tipo de dispositivo (ver

imagen 44).

Skeleton

Skeleton es una colección de recursos css y javascript pueden ayudar a construir

sitios web accesibles a los distintos dispositivos que hoy en día cuentan con internet

(ver imagen 45). Básicamente lo que hace Skeleton es dividir en columnas en la

página, de tal forma que cuando se recarga el navegador estas columnas cambian

automáticamente de tamaño, permitiendo su correcta visualización en distintos

dispositivos [44].

Imagen 45. Skeleton

Imagen 44. Foundation

Page 34: Capítulo II - UPSIN

48

HTML5 Boilerplate

En 2010, HTML5 Boilerplate se convirtió en uno de los primeros, y, posteriormente,

las herramientas de desarrollo web de código abierto de front-end más populares

para conseguir sitios web HTML5 y aplicaciones web en marcha y funcionando en

poco tiempo. Es una compilación de soluciones de desarrollo web que permiten a los

sitios web soportar los navegadores web modernos (ver imagen 46). Se incluyen en

HTML5 Boilerplate es una plantilla móvil fácil HTML, iconos de marcador de posición,

se restablece CSS para normalizar / normalizar sus valores de las propiedades de

hojas de estilo, preguntas de los medios estándar para las pantallas de visualización

populares, una navaja HTML5 para los navegadores web no modernas, y más [45]

.

Montage HTML5 Framework

Montage HTML5 Framework de código abierto para la creación de aplicaciones

modernas. Esta biblioteca JavaScript utiliza declarativa de unión que fácilmente le

ayuda a mantener sus datos de aplicaciones y la interfaz de usuario en sincronía.

Montage también tiene una característica llamada “Blueprints” de metadatos

asociativamente vinculante sobre sus objetos de aplicaciones - una función bastante

ingeniosa para hacer frente a un montón de elementos de página dinámicos (ver

imágenes 47).

Imagen 47. Montage HTML5 Framework

Imagen 46. HTML5

Boilerplate

Page 35: Capítulo II - UPSIN

49

Less Framework

Less Framework es un marco frontal moderna para la construcción de diseños

sensibles. Similar a esqueleto (discutido anteriormente), Menos Marco se centra en

ser sólo un marco de cuadrícula de diseño simple y llanamente (ver imagen 48).

Dispone de 4 diseños pre-construidos: Por defecto, Tablet, Móviles y ancha móvil

[46].

Imagen 48. Less Framework

Pure

Pure es un framework para desarrollo web nacido en Mayo de 2013 y con una

particularidad que lo diferencia del resto: sólo utiliza CSS (ver imagen 49). Basado en

Normalize.css, soporta el diseño adaptativo, está orientado a dispositivos móviles y

permite crear lindos layouts para tus sitios muy fácilmente. Todo esto con una librería

pequeña que pesa 4.4KB. Lo increíble de Pure es que no sólo puedes usar las

herramientas que ellos ponen a tu disposición, sino que también puedes extenderlas.

Es un framework que lleva el minimalismo al desarrollo web pero por estar basado en

CSS no cuenta con ninguna herramienta JavaScript.

Imagen 49. Pure

Page 36: Capítulo II - UPSIN

50

Lenguajes para crear un sistema web

Actualmente existen diferentes lenguajes de programación para desarrollar en la

web, estos han ido surgiendo debido a las tendencias y necesidades de las

plataformas. Desde los inicios de Internet, fueron surgiendo diferentes demandas por

los usuarios y se dieron soluciones mediante lenguajes estáticos. A medida que paso

el tiempo, las tecnologías fueron desarrollándose y surgieron nuevos problemas a

dar solución. Esto dio lugar a desarrollar lenguajes de programación para la web

dinámica, que permitieran interactuar con los usuarios y utilizaran sistemas de Bases

de Datos [47].

Lenguaje HTML

Desde el surgimiento de internet se han publicado sitios web gracias al

lenguaje HTML. Es un lenguaje estático para el desarrollo de sitios web (acrónimo en

inglés de HyperText Markup Language, en español Lenguaje de Marcas

Hipertextuales). Desarrollado por el World Wide Web Consortium (W3C). Los

archivos pueden tener las extensiones (htm, html).

Sintaxis:

<html> (Inicio del documento HTML)

<head>

( Cabecera )

</head>

<body>

( Cuerpo )

</body>

</html>

<b> </b> Negrita

<p> </p> Definir parrafo

<etiqueta> Apertura de la etiqueta

</etiqueta> Cierre de la etiqueta

Page 37: Capítulo II - UPSIN

51

Ventajas:

Sencillo que permite describir hipertexto.

Texto presentado de forma estructurada y agradable.

No necesita de grandes conocimientos cuando se cuenta con un editor de

páginas web o WYSIWYG.

Archivos pequeños.

Despliegue rápido.

Lenguaje de fácil aprendizaje.

Lo admiten todos los exploradores.

Desventajas:

Lenguaje estático.

La interpretación de cada navegador puede ser diferente.

Guarda muchas etiquetas que pueden convertirse en “basura” y dificultan la

corrección.

El diseño es más lento.

Las etiquetas son muy limitadas.

Lenguaje JavaScript

Este es un lenguaje interpretado, no requiere compilación. Fue creado por Brendan

Eich en la empresa Netscape Communications. Utilizado principalmente en páginas

web. Es similar a Java, aunque no es un lenguaje orientado a objetos, el mismo no

dispone de herencias. La mayoría de los navegadores en sus últimas versiones

interpretan código Javascript. El código Javascript puede ser integrado dentro de

nuestras páginas web. Para evitar incompatibilidades el World Wide Web Consortium

(W3C) diseño un estándar denominado DOM (en inglés Document Object Model, en

su traducción al español Modelo de Objetos del Documento) [47].

Sintaxis: <script type="text/javascript"> ... </script>

Page 38: Capítulo II - UPSIN

52

Ventaja:

Lenguaje de scripting seguro y fiable.

Los script tienen capacidades limitadas, por razones de seguridad.

El código Javascript se ejecuta en el cliente.

Desventaja:

Código visible por cualquier usuario.

El código debe descargarse completamente.

Puede poner en riesgo la seguridad del sitio, con el actual problema llamado

XSS (significa en inglés Cross Site Scripting renombrado a XSS por su

similitud con las hojas de estilo CSS).

Lenguaje PHP

Es un lenguaje de programación utilizado para la creación de sitio web. PHP es un

acrónimo recursivo que significa “PHP Hypertext Pre-processor”, (inicialmente se

llamó Personal Home Page). Surgió en 1995, desarrollado por PHP Group. PHP es

un lenguaje de script interpretado en el lado del servidor utilizado para la generación

de páginas web dinámicas, embebidas en páginas HTML y ejecutadas en el servidor.

PHP no necesita ser compilado para ejecutarse. Para su funcionamiento necesita

tener instalado Apache o IIS con las librerías de PHP. La mayor parte de su sintaxis

ha sido tomada de C, Java y Perl con algunas características específicas. Los

archivos cuentan con la extensión php.

Sintaxis:

<?

$mensaje = “Hola”;

echo $mensaje;

?>

<?php

Page 39: Capítulo II - UPSIN

53

$mensaje = “Hola”;

echo $mensaje; ?>

Ventaja:

Muy fácil de aprender.

Se caracteriza por ser un lenguaje muy rápido.

Soporta en cierta medida la orientación a objeto. Clases y herencia.

Es un lenguaje multiplataforma: Linux, Windows, entre otros.

Capacidad de conexión con la mayoría de los manejadores de base de datos:

MysSQL, PostgreSQL, Oracle, MS SQL Server, entre otras.

Capacidad de expandir su potencial utilizando módulos.

Posee documentación en su página oficial la cual incluye descripción y

ejemplos de cada una de sus funciones.

Es libre, por lo que se presenta como una alternativa de fácil acceso para

todos.

Incluye gran cantidad de funciones.

No requiere definición de tipos de variables ni manejo detallado del bajo nivel.

Desventaja:

Se necesita instalar un servidor web.

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.

La programación orientada a objetos es aún muy deficiente para aplicaciones

grandes.

Dificulta la modularización.

Dificulta la organización por capas de la aplicación.

Page 40: Capítulo II - UPSIN

54

Lenguaje ASP

Es una tecnología del lado de servidor desarrollada por Microsoft para el desarrollo

de sitio web dinámicos. ASP significa en inglés (Active Server Pages), fue liberado

por Microsoft en 1996. Las páginas web desarrolladas bajo este lenguaje es

necesario tener instalado Internet Information Server (IIS). ASP no necesita ser

compilado para ejecutarse. Existen varios lenguajes que se pueden utilizar para crear

páginas ASP. El más utilizado es VBScript, nativo de Microsoft. ASP se puede hacer

también en Perl and Jscript (no JavaScript). El código ASP puede ser insertado junto

con el código HTML.

Sintaxis:<% %>

Ventaja:

Usa Visual Basic Script, siendo fácil para los usuarios.

Comunicación óptima con SQL Server.

Soporta el lenguaje JScript (Javascript de Microsoft).

Desventaja:

Código desorganizado.

Se necesita escribir mucho código para realizar funciones sencillas.

Tecnología propietaria.

Hospedaje de sitios web costosos.

Lenguaje ASP.NET

Este es un lenguaje comercializado por Microsoft, y usado por programadores para

desarrollar entre otras funciones, sitios web. ASP.NET es el sucesor de la tecnología

ASP, fue lanzada al mercado mediante una estrategia de mercado denominada NET.

El ASP.NET fue desarrollado para resolver las limitantes que brindaba tu antecesor

ASP. Creado para desarrollar web sencillas o grandes aplicaciones. Para el

Page 41: Capítulo II - UPSIN

55

desarrollo de ASP.NET se puede utilizar C#, VB.NET o J#. Los archivos cuentan con

la extensión (aspx). Para su funcionamiento de las páginas se necesita tener

instalado IIS con el Framework .Net.

Ventaja:

Completamente orientado a objetos.

Controles de usuario y personalizados.

División entre la capa de aplicación o diseño y el código.

Facilita el mantenimiento de grandes aplicaciones.

Incremento de velocidad de respuesta del servidor.

Mayor velocidad.

Mayor seguridad.

Desventaja:

Mayor consumo de recursos.

Lenguaje Python

Es un lenguaje de programación creado en el año 1990 por Guido van Rossum, es el

sucesor del lenguaje de programación ABC. Python es comparado habitualmente

con Perl. Los usuarios lo consideran como un lenguaje más limpio para programar.

Permite la creación de todo tipo de programas incluyendo los sitios web. Su código

no necesita ser compilado, por lo que se llama que el código es interpretado. Es un

lenguaje de programación multiparadigma, lo cual fuerza a que los programadores

adopten por un estilo de programación particular [47]:

Programación orientada a objetos.

Programación estructurada.

Programación funcional.

Programación orientada a aspectos.

Sintaxis:

def dibujar_muneco(opcion):

Page 42: Capítulo II - UPSIN

56

if opcion == 1:

C.create_line(580, 150, 580, 320, width=4, fill="blue")

C.create_oval(510, 150, 560, 200, width=2, fill='PeachPuff'

Ventajas:

Libre y fuente abierta.

Lenguaje de propósito general.

Gran cantidad de funciones y librerías.

Sencillo y rápido de programar.

Multiplataforma.

Licencia de código abierto (Opensource).

Orientado a Objetos.

Portable.

Desventajas:

Lentitud por ser un lenguaje interpretado.

Lenguaje Ruby

Es un lenguaje interpretado de muy alto nivel y orientado a objetos. Desarrollado en

el 1993 por el programador japonés Yukihiro “Matz” Matsumoto. Su sintaxis está

inspirada en Phyton, Perl. Es distribuido bajo licencia de software libre (Opensource).

Ruby es un lenguaje dinámico para una programación orientada a objetos rápida y

sencilla.

Sintaxis:

puts "hola"

Page 43: Capítulo II - UPSIN

57

Ventajas:

Existe diferencia entre mayúsculas y minúsculas.

Múltiples expresiones por líneas, separadas por punto y coma “;”.

Dispone de manejo de excepciones.

Ruby puede cargar librerías de extensiones dinámicamente si el (Sistema

Operativo) lo permite.

Portátil.

Desventajas:

Permite desarrollar soluciones a bajo Costo.

Software libre.

Multiplataforma.

Lenguaje CSS

Hoja de estilo en cascada o CSS (siglas en inglés de cascading style sheets) es un

lenguaje usado para definir y crear la presentación de un documento estructurado

escrito en HTML o XML (y por extensión en XHTML). El World Wide Web

Consortium (W3C) es el encargado de formular la especificación de las hojas de

estilo que servirán de estándar para los agentes de usuario o navegadores [47].

Sintaxis:

H1, H2, H3, H4, H5, H6 {

color: red;

font-family: sans-serif }

Ventajas:

Algunas ventajas de utilizar CSS (u otro lenguaje de estilo) son:

Control centralizado de la presentación de un sitio web completo con lo que se

agiliza de forma considerable la actualización del mismo.

Page 44: Capítulo II - UPSIN

58

Optimización del ancho de banda de la conexión, pues pueden definirse los

mismos estilos para muchos elementos con un sólo selector; o porque un mismo

archivo CSS puede servir para una multitud de documentos.

Mejora en la accesibilidad del documento, pues con el uso del CSS se evitan

antiguas prácticas necesarias para el control del diseño (como las tablas), y que

iban en perjuicio de ciertos usos de los documentos, por parte de navegadores

orientados a personas con algunas limitaciones sensoriales.

Desventajas: Algunas limitaciones que se encuentran en el uso del CSS hasta la

versión CSS2.1, vigente, pueden ser:

Los selectores no pueden usarse en orden ascendente según la jerarquía del

DOM (hacia padres u otros ancestros) como se hace mediante XPath

La razón que se ha usado para justificar esta carencia por parte de la W3C, es

para proteger el rendimiento del navegador, que de otra manera, podría verse

comprometido. XSLT soporta en la actualidad un mayor número de sistemas

operativos. Así mismo, también es mejor para trabajar con la mayoría de

buscadores de Internet. Dificultad para el alineamiento vertical; así como el

centrado horizontal se hace de manera evidente en CSS2.1, el centrado vertical

requiere de diferentes reglas en combinaciones no evidentes, o no estándares.

Ausencia de expresiones de cálculo numérico para especificar valores (por

ejemplo margin-left: 10% – 3em + 4px; ).

Un borrador de la W3C para CSS3, propone calc() para solventar esta limitación.

Page 45: Capítulo II - UPSIN

59

Tablas comparativas

Tablas de tecnologías usadas frecuentemente por ciertos desarrolladores (ver tabla 1

y tabla, ventajas y desventajas 2)

Nombre

CodeIgniter

Nombre Django

Caracteristicas Comodidad en el

lenguaje.

Caracteristicas

Ventajas Sencillez y

excelente

rendimiento.

Extensa

comunidad: Foros,

soporte.

Ventajas Desarrollo rápido y

ágil

Desventajas Desventajas A pesar de ser un

framework de

rápido desarrollo

entender todos los

conceptos de MTV

puede llevar un

tiempo.

Tabla 1. Frameworks

Page 46: Capítulo II - UPSIN

60

Nombre

SQL Server Nombre

MySQL

Caracteristicas Caracteristicas

Ventajas Es un sistema de

gestión de base

de datos.

Es útil para

manejar y obtener

datos de la red.

Ventajas Velocidad al

realizar las

operaciones, lo

que le hace uno

de los gestores

con mejor

rendimiento

Desventajas Utiliza mucha

memoria RAM

para la instalación

y utilización del

software.

Desventajas Un gran

porcentaje de las

utilidades de

MySQL no están

documentadas.

Tabla 2. Bases de datos