viernes, 22 de julio de 2016

Editor de páginas web (Dreamweaver)

¿Qué es de Dreamweaver?

Dreamweaver es un software fácil de usar que permite crear páginas web profesionales.
Las funciones de edición visual de Dreamweaver permiten agregar rápidamente diseño y funcionalidad a las páginas, sin la necesidad de programar manualmente el código HTML. Se puede crear tablas, editar marcos, trabajar con capas, insertar comportamientos JavaScript, etc., de una forma muy sencilla y visual.  También dispone de herramientas de administración de sitios dirigidas a principiantes como, por ejemplo, la habilidad de encontrar y reemplazar líneas de texto y código por cualquier tipo de parámetro especificado, hasta el sitio web completo. El panel de comportamientos también permite crear JavaScript básico sin conocimientos de código.

Características de Dreamweaver

  1.  La aplicación permite crear sitios de forma totalmente gráfica, y dispone de funciones para acceder al código HTML generado.
  2.  Permite la conexión a un servidor, a base de datos, soporte para programación en ASP, PHP, JavaScript, cliente FTP integrado, etc.
  3. Ofrece la posibilidad de crear botones flash, formularios, JavaScript, y más, es de gran ayuda además de poder insertar elementos web, encontramos una gran precisión en la importación de información de Word y Excel, con las funciones de copiar y pegar.


Reseña Histórica

La evolución de Dreamweaver. Desde su lanzamiento en 1997, Dreamweaver de Macromedia se ha convertido en la solución estándar de la industria para el desarrollo profesional de la Web y, actualmente, más de 3,2 millones de profesionales utilizan Dreamweaver para desarrollar sus sitios Web. Con su tecnología Roundtrip HTML, que protege la calidad del código cuando el usuario alterna entre la vista del código y la del diseño, Dreamweaver es la solución pionera para el desarrollo profesional de sitios visuales en Internet. 

En el año 2000, en respuesta a la creciente popularidad de las tecnologías de servidor entre los desarrolladores de la Web, Macromedia presentó Dreamweaver UltraDev, que, además de la funcionalidad de Dreamweaver, ofrecía una serie de herramientas para crear aplicaciones Web en ASP, JSP y Para facilitar las funciones cada vez más amplias de los profesionales de la Web, en el mes de mayo de 2002, Macromedia lanzó Dreamweaver MX, que combinaba las mejores funciones de desarrollo de UltraDev y las principales funciones de edición del código de HomeSite en el entorno básico de Macromedia hacia un entorno de desarrollo único para los profesionales de la Web, que les permitiera crear una gran variedad de sitios y aplicaciones de acuerdo con sus preferencias: con codificación manual, diseño visual o con una combinación de ambos. 

Dreamweaver MX tuvo una extraordinaria acogida y fue la herramienta de desarrollo Web más galardonada de la historia, e incluso más que todas las versiones anteriores de Dreamweaver. Con el lanzamiento de Dreamweaver MX 2004 en septiembre se incorporar una revolucionaria función de soporte para el diseño y el desarrollo. Al incorporar la tecnología CSS al flujo de trabajo de todos los usuarios, Dreamweaver ponía al alcance de cualquiera el desarrollo de sitios Web basado en estándares, dando así un paso decisivo que contribuyó a la adopción generalizada de los estilos CSS por los profesionales de la Web.

Dreamweaver 8 se ha creado a partir de las versiones anteriores, pero se ha ampliado su funcionalidad en ámbitos esenciales como XML y CSS, y se ha agilizado el flujo de trabajo para que los usuarios puedan hacer más cosas en las más avanzadas metodologías de diseño profesional, Dreamweaver 8 pone de manifiesto el potencial que representa para la comunidad Web el desarrollo abierto basado en estándares y mejora, al mismo tiempo, las herramientas básicas que necesitan los profesionales.

Dreamweaver es compatible con todas las principales tecnologías de servidor como, por ejemplo, ColdFusion, PHP, ASP, ASP.NET y JSP, para que los desarrolladores, más expertos o menos expertos, puedan dar vida a sus versiones

Versioness:



Ventajas

  1.  Excelente para trabajos profesionales
  2. Destaca su soporte de los estándares del World Wide Web Consortium
  3. Utiliza la tecnología web como CSS y Java Script
  4. Se puede diseñar y crear páginas web sin conocimiento de código HTML
  5. Permite previsualizar las páginas web en casi todos los navegadores
  6. Permite el uso de extinciones como HTML y Java Script.

Desventajas


  1. Precio demasiado elevado
  2. Tiene una interfaz confusa que puede intimidar a los usuarios nuevos.
  3. La interfaz simple apunta y cliquea de Dreamweaver anima a los usuarios, y especialmente a los alumnos jóvenes, a no involucrarse en aprender el lenguaje de los códigos, tales como HTML y PHP

La maravilla del bluefish

Bluefish

¿Qué es bluefish?

Bluefish es un software editor HTML multiplataforma POSIX y con licencia GPL, lo que lo convierte en software libre. Bluefish está dirigido a diseñadores web experimentados y programadores y se enfoca en la edición de páginas dinámicas e interactivas. Es capaz de reconocer diversos lenguajes de programación y de marcas.

Bluefish corre en muchos de los sistemas operativos compatibles con POSIX (Portable Operating System Interface) tales Linux, FreeBSD, MacOS-X, OpenBSD, Solaris y Tru64. Emplea principalmente las bibliotecas GTK y C posix. La última versión que trabajó con GTK 1.0 ó 1.2 es la 0.7. La versión actual requiere como mínimo GTK versión 2.0 (o superior), libpcre 3.0 (o superior), libaspell 0.50 o superior (opcional) para corrección de ortografía y gnome-vfs (opcional) para archivos remotos.


Historia del Bluefish

El desarrollo del proyecto Bluefish inicia bajo un nombre diferente. Un buen (y a la vez libre) editor de texto dirigido al desarrollo web no estaba disponible. Es por ello que Olivier Sessink inicia el proyecto Prosite en el año de 1997, es importante resaltar que prácticamente simultáneamente Chris Mazuc trabajaba en un editor HTML. Gracias a una lista de correo de GTK ambos desarrolladores comentan sus iniciativas y deciden trabajar juntos. Olivier tiene un editor básico mientras que Chris posee muchos diálogos HTML. Mezclan su código y este nuevo proyecto recibe el nombre de Thtml.


Posteriormente se incorpora al equipo de trabajo Neil Millar quien se encarga de agregarle el selector de colores y la integración con Weblint. Surge entonces la necesidad de un logo, mucho más fresco y llamativo, pues iban a aparecer las primeras versiones públicas y se quería ofrecer un producto con una imagen y un nombre más atrayente. Es en este momento, cuando Neil plantea como nuevo nombre: Bluefish y acompaña su propuesta de un hermoso pez azul que sugiere como logo. Estos continúan siendo los nombre y logo actuales.

Con el paso del tiempo se unieron más desarrolladores y Bluefish comenzó a acaparar la atención de la comunidad de código abierto.

Versiones:


Las siguientes versiones corresponden a las series 1.x.x:
  • Revisión 1.1.6: 2008-03-28
  • Revisión 1.1.5: 2007-10-14
  • Revisión 1.1.3: 2008-03-13
  • Revisión 1.1.2: 2008-01-03
  • Revisión 1.0.7: 2006-11-01
  • Revisión 1.0.6: 2006-09-26
  • Revisión 1.0.5: 2006-02-04
  • Revisión 1.0.4: 2005-08-28
  • Revisión 1.0.3: 2005-08-16
  • Revisión 1.0.2: 2005-07-03
  • Revisión 1.0.1: 2005-06-13
  • Revisión 1.0.0: 2005-01-10
Versiones nuevas, serie 2.x.x:

  • Revisión 2.0.0-rc1: 2009-12-23
  • Revisión 2.0.0: 2010-02-15
  • Revisión 2.0.3: 2011-03-11
  • Revisión 2.2.0: 2011-11-25
  • Revisión 2.2.1: 2011-12-23
  • Revisión 2.2.2: 2012-03-01
  • Revisión 2.2.3: 2012-06-28
  • Revisión 2.2.4: 2013-02-12
  • Revisión 2.2.5: 2014-02-10
  • Revisión 2.2.6: 2014-04-21

jueves, 23 de junio de 2016

Arquitectura Cliente-Servidor

Arquitectura de las aplicaciones Web.

Una aplicación Web es proporcionada por un servidor Web y utilizada por usuarios que se Conectan desde cualquier punto vía clientes Web (browsers o navegadores). La arquitectura de un Sitio Web tiene tres componentes principales:
  • Un servidor Web
  • Una conexión de red
  • Uno o más clientes

Las aplicaciones Web están basadas en el modelo Cliente/Servidor que gestionan servidores web, y que utilizan como interfaz páginas web. Las páginas Web son el componente principal de una aplicación o sitio Web. Los browsers piden páginas (almacenadas o creadas dinámicamente) con información a los servidores Web.
  • Los Servidores de Aplicaciones actúan como enlace entre los servidores Web y los Servidores de Bases de datos.
  •   Se fomenta la escalabilidad del sistema, la seguridad y la reutilización de código.Partes que componen el sistema

Cliente: Programa ejecutable que participa activamente en el establecimiento de las conexiones. Envía una petición al servidor y se queda esperando por una respuesta. Su tiempo de vida es finito una vez que son servidas sus solicitudes, termina el trabajo.

Servidor: Es un programa que ofrece un servicio que se puede obtener en una red. Acepta la petición desde la red, realiza el servicio y devuelve el resultado al solicitante. Al ser posible implantarlo como aplicaciones de programas, puede ejecutarse en cualquier sistema donde exista TCP/IP y junto con otros programas de aplicación. El servidor comienza su ejecución antes de comenzar la interacción con el cliente. Su tiempo de vida o de interacción es “interminable”.

Arquitectura Cliente-Servidor

En el mundo de TCP/IP las comunicaciones entre computadoras se rigen básicamente por lo que se llama modelo Cliente-Servidor, éste es un modelo que intenta proveer usabilidad, flexibilidad, interoperabilidad y escalabilidad en las comunicaciones. El término Cliente/Servidor fue usado por primera vez en 1980 para referirse a PC’s en red.

Su funcionamiento es sencillo: se tiene una máquina cliente, que requiere un servicio de una máquina servidor, y éste realiza la función para la que está programado (nótese que no tienen que tratarse de máquinas diferentes; es decir, una computadora por sí sola puede ser ambos cliente y servidor dependiendo del software de configuración).

Definición Funcional: se puede definir la computación Cliente/Servidor como una arquitectura distribuida que permite a los usuarios finales obtener acceso a la información en forma transparente aún en entornos multiplataforma. En el modelo cliente servidor, el cliente envía un mensaje solicitando un determinado servicio a un servidor (hace una petición), y este envía uno o varios mensajes con la respuesta (provee el servicio).

Los clientes y los servidores pueden estar conectados a una red local o una red amplia, como la que se puede implementar en una empresa o a una red mundial como lo es la Internet. Bajo este modelo cada usuario tiene la libertad de obtener la información que requiera en un momento dado proveniente de una o varias fuentes locales o distantes y de procesarla como según le convenga. Los distintos servidores también pueden intercambiar información dentro de esta arquitectura.

La separación entre cliente y servidor es una separación de tipo lógico, donde el servidor no se ejecuta necesariamente sobre una sola máquina ni es necesariamente un sólo programa. Los tipos específicos de servidores incluyen los servidores web, los servidores de archivo, los servidores del correo, etc. Mientras que sus propósitos varían de unos servicios a otros, la arquitectura básica seguirá siendo la misma.

Cuando implantar Cliente servidor

1. Cambios estructurales y organizativos.

2. Cambios en organigramas.

3. Respuesta dinámica de mercado.

4. Cambio en procesos de negocio.

Tareas del programa maestro
  • Abrir un puerto local bien conocido al cual pueda acceder los clientes.

  •  Esperar las peticiones de los clientes.
  • Elegir un puerto local para las peticiones que llegan en informar al cliente del nuevo puerto, (innecesario en la mayoría de los casos).

  •  Iniciar un programa esclavo o proceso hijo que atienda la petición en el puerto local, (el esclavo cuando termina de manejar una petición no se queda esperando por otras).

  • Volver a la espera de peticiones mientras los esclavos, en forma concurrente, se ocupan de las anteriores peticiones.

Clasificación de los servidores

Cliente Servidor

1. Servidores con estado.

2. Servidores sin estado.

3. Servidores concurrentes

Características de la arquitectura Cliente-Servidor
  • Las tareas del cliente y del servidor tienen diferentes requerimientos en cuanto a recursos de cómputo como velocidad del procesador, memoria, velocidad y capacidades del disco e input-output devices.

  • Se establece una relación entre procesos distintos, los cuales pueden ser ejecutados en la misma máquina o en máquinas diferentes distribuidas a lo largo de la red.

  • Existe una clara distinción de funciones basadas en el concepto de”servicio”, que se establece entre clientes y servidores.

  • La relación establecida puede ser de muchos a uno, en la que un servidor puede dar servicio a muchos clientes, regulando su acceso a los recursos compartidos.

  • Los clientes corresponden a procesos activos en cuanto a que son estos los que hacen peticiones de servicios. Estos últimos tienen un carácter pasivo, ya que esperan peticiones de los clientes.

  • No existe otra relación entre clientes y servidores que no sea la que se establece a través del intercambio de mensajes entre ambos. El mensaje es el mecanismo para la petición y entrega de solicitudes de servicios.

  • El ambiente es heterogéneo. La plataforma de hardware y el sistema operativo del cliente y del servidor no son siempre los mismos. Precisamente una de las principales ventajas de esta arquitectura es la posibilidad de conectar clientes y servidores independientemente de sus plataformas.

  • El concepto de escalabilidad tanto horizontal como vertical es aplicable a cualquier sistema Cliente-Servidor. La escalabilidad horizontal permite agregar más estaciones de trabajo activas sin afectar significativamente el rendimiento. La escalabilidad vertical permite mejorar las características del servidor o agregar múltiples servidores.

Ventajas del esquema Cliente-Servidor

Existencia de plataformas de hardware cada vez más baratas. Esta constituye a su vez una de las más palpables ventajas de este esquema, la posibilidad de utilizar máquinas mucho más baratas que las requeridas por una solución centralizada, basada en sistemas grandes (mainframes). Además, se pueden utilizar componentes, tanto de hardware como de software, de varios fabricantes, lo cual contribuye considerablemente a la reducción de costos y favorece la flexibilidad en la implantación y actualización de soluciones.
  •  Facilita la integración entre sistemas diferentes y comparte información, permitiendo por ejemplo que las máquinas ya existentes puedan ser utilizadas pero utilizando interfaces más amigables el usuario. De esta manera, se puede integrar PCs con sistemas medianos y grandes, sin necesidad de que todos tengan que utilizar el mismo sistema operativo.
  • Al favorecer el uso de interfaces gráficas interactivas, los sistemas construidos bajo este esquema tienen una mayor y más intuitiva con el usuario. En el uso de interfaces gráficas para el usuario, presenta la ventaja, con respecto a uno centralizado, de que no siempre es necesario transmitir información gráfica por la red pues esta puede residir en el cliente, lo cual permite aprovechar mejor el ancho de banda de la red.
  •  La estructura inherentemente modular facilita además la integración de nuevas tecnologías y el crecimiento de la infraestructura computacional, favoreciendo así la escalabilidad de las soluciones.
  •  Contribuye además a proporcionar a los diferentes departamentos de una organización, soluciones locales, pero permitiendo la integración de la información.
Desventajas
  •  El mantenimiento de los sistemas es más difícil pues implica la interacción de diferentes partes de hardware y de software, distribuidas por distintos proveedores, lo cual dificulta el diagnóstico de fallas.
  •  Cuenta con muy escasas herramientas para la administración y ajuste del desempeño de los sistemas.
  •  Es importante que los clientes y los servidores utilicen el mismo mecanismo (por ejemplo sockets o RPC), lo cual implica que se deben tener mecanismos generales que existan en diferentes plataformas.
  •  Hay que tener estrategias para el manejo de errores y para mantener la consistencia de los datos.
  •  El desempeño (performance), problemas de este estilo pueden presentarse por congestión en la red, dificultad de tráfico de datos, etc.
Los componentes de una aplicación web son:

1. Lógica de negocio.

 Parte más importante de la aplicación.
  • Define los procesos que involucran a la aplicación.
  •  Conjunto de operaciones requeridas para proveer el servicio.
2. Administración de los datos.
  •  Manipulación de BD y archivos.
3. Interfaz
  • Los usuarios acceden a través de navegadores, móviles, PDAs, etc.
  •  Funcionalidad accesible a través del navegador
Las aplicaciones web se modelan mediante lo que se conoce como modelo de capas, Una capa representa un elemento que procesa o trata información. Los tipos son:
  •  Modelo de dos capas: La información atraviesa dos capas entre la interfaz y la administración de los datos.
  •  Modelo de n-capas: La información atraviesa varias capas, el más habitual es el modelo de tres capas.
Modelo de dos Capas.

Gran parte de la aplicación corre en el lado del cliente (fat client). Las capas son:
  •  Cliente (fat client): La lógica de negocio está inmersa dentro de la aplicación que realiza el interfaz de usuario, en el lado del cliente.
  •  Servidor: Administra los datos.
Las limitaciones de este modelo son.
  •  Es difícilmente escalable
  •  Número de conexiones reducida
  •  Alta carga de la red.
  •  La flexibilidad es restringida
  •  La funcionalidad es limitada.
Arquitectura de 3 capas

Definición: Es un estilo de programación, su objetivo primordial es la separación de la capa de presentación, capa de negocio y la capa de datos. La ventaja principal: Es el desarrollo se puede llevar a cabo en varios niveles y, en caso de que sobrevenga algún cambio. En el diseño de sistemas informáticos actuales se suele usar las arquitecturas multilineal o Programación por capas.

Además, permite distribuir el trabajo de creación de una aplicación por niveles; cada grupo de trabajo está totalmente abstraído del resto de niveles, de forma que basta con conocer la API que existe entre niveles.

 API (Application Programming Interface) 
  • Es el conjunto de funciones y procedimientos o métodos que ofrece cierta biblioteca para ser utilizado por otro software como una capa de abstracción.
Ejemplos:  
  • Microsoft Framework .NET 
  • OpenGL
  •  API for SCSI device interfacing
  • Javascript-C de Mozilla 
  • Symfony para PHP.
Las capas de este modelo son:

Capa de presentación. (Parte en el cliente y en el servidor)- Esta capa es la que ve el usuario, presenta el sistema al usuario, le comunica la información y captura la información del usuario en un mínimo de proceso. Esta capa se comunica únicamente con la capa de negocio. También es conocida como interfaz gráfica y debe tener la característica de ser quot;amigablequot; para el usuario generalmente se presentan como formularios. Recoge la información del usuario y la envía al servidor (cliente)
  •  Manda información a la capa de proceso para su procesado
  •  Recibe los resultados de la capa de proceso
  • Generan la presentación
  • Visualiza la presentación al usuario (cliente)
Capa de negocio (servidor web)  Aquí es donde, se reciben las peticiones del usuario y se envían las respuestas tras el proceso. S e denomina capa de negocio (e incluso de lógica del negocio) porque es aquí donde se establecen todas las reglas que deben cumplirse. Esta capa se comunica con la capa de presentación, para recibir las solicitudes y presentar los resultados, y con la capa de datos, para solicitar al gestor de base de datos para almacenar o recuperar datos de él.
  •  Toda aplicación tiene código para implementar reglas de negocios.
  • Se puede seleccionar almacenar la lógica de negocios sobre cada estación de cliente, u optar por ejecutar la lógica de negocios sobre un servidor de aplicaciones.
  •  No toda la lógica de negocio es la misma algunas no requieren un frecuente acceso a los datos, pero una interface de usuario robusta necesitara de la lógica de negocios para la validación en la entrada de campos, cálculos en tiempo real u otras interacciones de usuarios.
  •  Recibe la entrada de datos de la capa de presentación
  •  Interactúa con la capa de datos para realizar operaciones
  •  Manda los resultados procesados a la capa de presentación
ADO.NET. El ADO.NET es un conjunto de componentes del software que pueden ser usados por los programadores para acceder a datos y a servicios de datos. 
  • Data provider.- Estas clases proporcionan el acceso a una fuente de datos, como Microsoft SQL Server y Oracle.
  • DataSets
Los objetos DataSets, un grupo de clases que describen una simple base de datos relacional en memoria. Representa una base de datos entera puede contener las tablas y relaciones
  • Objeto DataTable representa una sola tabla en la base de datos.
  • DataSet es llenado desde una base de datos por un DataAdapter cuyas propiedades
Connection y Command Conjunto común de clases de utilidad:
  •  Connection: Conexión con la fuente de datos.
  •  Command: Acción en la fuente de datos
  •  Parameter: Parámetro para un procedimiento almacenado.
  • DataAdapter: Puente fuente de datos y dataSet
  • DataReader: Procesar lista de resultados un registro a la vez.
CAPA DE DATOS (Servidor de datos) Es donde residen los datos y es la encargada de acceder a los mismos. Está formada por uno o más gestores de bases de datos que realizan todo el almacenamiento de datos, reciben solicitudes de almacenamiento o recuperación de información desde la capa de negocio.
  •  Almacena los datos
  •  Recupera datos
  •  Mantiene los datos
  •  Segura la integridad de los datos