Capítulo II - UPSIN
Transcript of Capítulo II - UPSIN
15
Capítulo II
Estado del arte
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.
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
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].
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.
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
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.
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++
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.
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
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.
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
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
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
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
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.
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
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].
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.
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.
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
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
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.
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.
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
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
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
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:
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
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
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.
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.
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
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
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
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
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>
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
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.
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
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):
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"
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.
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.
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
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