lunes, 10 de marzo de 2014

Estándares Web , Validación De Aplicaciones y Páginas Web

Qué son los Estándares Web

Un estándar es un conjunto de reglas normalizadas que describen los requisitos que deben ser cumplidos por un producto, proceso o servicio, con el objetivo de establecer un mecanismo base para permitir que distintos elementos hardware o software que lo utilicen, sean compatibles entre sí.
El W3C, organización independiente y neutral, desarrolla estándares relacionados con la Web también conocidos como Recomendaciones, que sirven como referencia para construir una Web accesible, interoperable y eficiente, en la que se puedan desarrollar aplicaciones cada vez más robustas.
En la creación de las Recomendaciones del W3C participan sus Miembros (más de 400 organizaciones, distribuidas a lo largo de todo el mundo y de diversos ámbitos: grandes empresas de hardware o software, centros investigadores, universidades, administraciones públicas, etc.), el Equipo del W3C, expertos invitados, y cualquier usuario de la Web que quiera mostrar su opinión. Todos ellos trabajan conjuntamente a través de un proceso basado en el consenso, la neutralidad y la transparencia de la información.

   Funcionan

La creación de un estándar Web requiere un proceso controlado, que consta de varias etapas que aseguran la calidad de la especificación. Este proceso permite la intervención de todos los usuarios de las tecnologías, con el objetivo de que puedan aportar su conocimiento y opiniones para la mejora de los documentos.
Tras este proceso, elaborado por especialistas en la materia, se obtienen unos estándares de calidad, y al estar disponible para todo el mundo, las especificaciones se depuran exhaustivamente antes de ser consideradas como Recomendación.
Estos estándares, están sujetos a la Política de Patentes del W3C, lo que permite que sean utilizados libremente por toda la comunidad Web. 
Generalmente, lo que el término “Estándares Web” abarca incluye las siguientes áreas:

  •        Código HTML/XHTML válido
  •        Código semánticamente correcto.
  •        Separación del contenido (HTML/XHTML), presentación (CSS) e interacción                    (JavaScript).

Código HTML/XHTML válido.


Aunque para la mayor parte de las personas esto sólo se refiere al código HTML/XHTML, hay también instrumentos para validar el código CSS. Básicamente, validar el HTML/XHTML consiste en verificar que el código de la página web esté escrito de acuerdo a las definiciones dadas por el doctype que se ha elegido para el documento
.
Es muy importante elegir el doctype con cuidado, porque va a afectar la manera en que el código HTML/XHTML es interpretado y qué modo de layout va a ser activado en los distintos navegadores web. Teniendo código válido, no va a tener que apoyarse en los mecanismos de manejo de error que varían en cada navegador web, sino que el código se supone va a ser renderizado de la misma manera por todos.

Herramientas para validar código

Hay numerosos instrumentos de validación en línea, así como complementos para varios navegadores web. Los más populares:


Código Semánticamente Correcto

Algo que a menudo es pasado por alto, es el significado del código semánticamente correcto. La idea es que cada contenido en una página Web debería estar marcado con una etiqueta que comunique su sentido, su valor y objetivo. La explicación de esto es que se deben usar elementos apropiados según el contexto.

Ejemplos de código

Este código es pobre semánticamente

<div class="page-heading">Titulo de la pagina</div>
<div class="text-paragraph">Algo de texto explicando de qué se trata este sitio.</div>
<a class="menu-item" href="/item-1">Menu item 1</a> <a class="menu-item" href="/item-2">Menu item 2</a> <a class="menu-item" href="/item-3">Menu item 3</a>


Este código es rico semánticamente

<h1>Titulo de la pagina</h1>
Algo de texto explicando de que se trata este sitio< /p>
<ul class="menu">
        <li><a href="/item-1">Menu item 1</a></li>
        <li><a href="/item-2">Menu item 2</a></li>
        <li><a href="/item-3">Menu item 3</a></li>
</ul>
 
Las pautas y las recomendaciones para escribir código semántico correctamente son bastante fáciles de seguir.  Simplente usar etiquetas de encabezado (h1-h6) para los diferentes tipos de títulos, etiquetas de párrafo (p) para párrafos de textos, etiquetas de listas (ul, ol, li, etc.) para cualquier clase de listado de tenga, y así sucesivamente.

Esto además le ayudará a identificar con más facilidad las partes de una página Web, y va a disminuir el tiempo de carga del documento porque estará utilizando menos código. Al mismo tiempo simplificará notablemente el mantenimiento de su sitio. Y, no hay que olvidarse de algo muy importante: esto le también ayudará con el SEO (optimización para motores de búsqueda), porque el código semántico ayudará a Google y otros motores de búsqueda a entender correctamente e indexar cada trozo del código, maximizando los resultados.

Separación de contenido (HTML/XHTML), presentación (CSS) e interacción (JavaScript)


Hay varios motivos que fundamentan por qué es vital separar el HTML/XHTML, el CSS y el código JavaScript. Estos tipos de código tienen objetivos muy diferentes, y cómo usarlos debe ser pensado con cuidado.

Razones principales para la separación:

Velocidad: los archivos externos .css y .js se guardan en el caché del navegador del usuario después de la primera carga, esto disminuye los tiempos de carga y mejorará la experiencia de uso.
Claridad: es más fácil saber donde buscar y colocar el código, cada parte cumple su propio objetivo.
Reusabilidad: puede fácilmente comentar y referenciar el codigo. Y reutilizarlo en todo el sitio.
Mantenimiento: El código HTML o XHTML está en una ubicación central, y se desprende el código de presentación (css) e interaccion (js) en archivos externos. Siendo muy fácil aplicarlos a todas las páginas del sitio.

Glosario

Dato: información que se puede y ser manipulada para llenar un campo de información

Información. Conjunto de datos organizados que  se refieren a un tema definido o en específico.


Sistema: partes, elementos organizados y relacionados que interactúan entre sí para lograr un objetivo por medio de un software


Sistema de información: medio que se utiliza para transmitir y organizar la información para luego  pasar ser pasada  de un lugar a otro por en el momento adecuado 


Medios para transmitir información: la tecnología es una herramienta más efectiva para transmitir información   







Clase: Es una construcción que se utiliza como un modelo para crear objetos de ese tipo. El modelo describe el estado y contiene el comportamiento que todos los objetos creados a partir de esa clase tendrán.


Programación orientada a Objetos.: usa los objetos en sus interacciones, para diseñar aplicaciones y programas informáticos  Está basado en varias técnicas, incluyendo herencia, cohesión, abstracción polimorfismo , acoplamiento y encapsulamiento


Lenguaje de programación: es un lenguaje diseñado para describir el conjunto de acciones consecutivas que un equipo debe ejecutar

Base de datos: Es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso.





Objeto: Los objetos del mundo real comparten dos características: Todos tienen estado y comportamiento. Los perros tienen estado (nombre, color, raza, hambriento) y comportamiento (ladrando, buscando, meneando la cola). Las bicicletas también tienen un estado (marcha actual, cadencia de pedaleo actual, velocidad actual) y comportamiento (cambio de marcha, cambio de cadencia de pedaleo, frenar). Identificar el estado y el comportamiento de los objetos del mundo real es una gran ayuda para empezar a pensar en términos de programación orientada a objetos.

ESTRUCTURA DE UN OBJETO

Un objeto puede considerarse como una especie de cápsula dividida en tres partes:

1 – RELACIONES: Permiten que el objeto se inserte en la organización y están formadas esencialmente por punteros a otros objetos.

2 – PROPIEDADES: Distinguen un objeto determinado de los restantes que forman parte de la misma organización y tiene valores que dependen de la propiedad de que se trate. Las propiedades de un objeto pueden ser heredadas a sus descendientes en la organización.

3 – METODOS: Son las operaciones que pueden realizarse sobre el objeto, que normalmente estarán incorporados en forma de programas (código) que el objeto es capaz de ejecutar y que también pone a disposición de sus descendientes a través de la herencia.

Clase: Las clases son abstracciones que representan a un conjunto de objetos con un comportamiento e interfaz común. Podemos definir una clase como "un conjunto de cosas (físicas o abstractas) que tienen el mismo comportamiento y características.
Las clases presentan el estado de los objetos a los que representan mediante variables denominadas atributos. Cuando se instancia un objeto el compilador crea en la memoria dinámica un espacio para tantas variables como atributos tenga la clase a la que pertenece el objeto.
Los métodos son las funciones mediante las que las clases representan el comportamiento de los objetos. En dichos métodos se modifican los valores de los atributos del objeto, y representan las capacidades del objeto.

Programación orientada a objetos: Es un paradigma de programación que usa los objetos en sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsula
miento. En la actualidad, existe una gran variedad de lenguajes de programación que soportan la orientación a objetos.
El término de Programación orientada a objetos indica más una forma de diseño y una metodología de desarrollo de software que un lenguaje de programación, ya que en realidad se puede aplicar el Diseño Orientado a Objetos a cualquier tipo de lenguaje de programación.
La programación Orientada a objetos (POO) es una forma especial de programar, más cercana a como expresaríamos las cosas en la vida real que otros tipos de programación. Con la POO tenemos que aprender a pensar las cosas de una manera distinta, para escribir nuestros programas en términos de objetos, propiedades, métodos y otras cosas que veremos rápidamente para aclarar conceptos y dar una pequeña base que permita soltarnos un poco con este tipo de programación.

Framework: O infraestructura digital, es una estructura conceptual y tecnológica de soporte definido, normalmente con artefactos o módulos de software concretos, que puede servir de base para la organización y desarrollo de software. Típicamente, puede incluir soporte de programas, bibliotecas, y un lenguaje interpretado, entre otras herramientas, para así ayudar a desarrollar y unir los diferentes componentes de un proyecto.
.NET Framework es una tecnología que admite la compilación y la ejecución de la siguiente generación de aplicaciones y servicios Web XML. El diseño de .NET Framework está enfocado a cumplir los objetivos siguientes:
  • Proporcionar un entorno coherente de programación orientada a objetos, en el que el código de los objetos se pueda almacenar y ejecutar de forma local.
  • Proporcionar un entorno de ejecución de código que minimiza los conflictos en el despliegue y versionado de software.
  • Ofrecer un entorno de ejecución de código que promueva la ejecución segura del mismo.
  • Proporcionar un entorno de ejecución de código que elimine los problemas de rendimiento de los entornos en los que se utilizan scripts o intérpretes de comandos.
  • Ofrecer al programador una experiencia coherente entre tipos de aplicaciones muy diferentes, como las basadas en Windows o en el Web.
Cliente: se utiliza para hacer referencia a las personas o entidades que hacen usufructo de los recursos o servicios que brinda otra. El origen de la aplicación de este término debe buscarse en la antigua Roma, siendo el individuo económicamente inferior, quien se ponía al servicio de uno de mayor rango en una relación, que no estaba regulada y que otorgaba, al de mayor rango, un importante prestigio social. Esta definición resulta la esencia del término, que sin embargo se va desmembrando y reinventando de acuerdo con el ámbito que lo utilice. Son muchos los campos que toman el término y lo aplican en su contexto, pero siempre sobre la base de ser una persona u organización que, voluntariamente, recibe algo a cambio de otra cosa que entrega.

Un servicio: es un conjunto de actividades que buscan para responder a las necesidades de un cliente. Los servicios incluyen una diversidad de actividades desempeñadas por un crecido número de funcionarios que trabajan para el estado (servicios públicos) o para empresas particulares (servicios privados); entre estos pueden señalarse los servicios de: electricidad, agua potable, aseo, teléfono, telégrafo, correo transporte, educación, cibercafés, sanidad y asistencia social. Se define un marco en donde las actividades se desarrollarán con la idea de fijar una expectativa en el resultado de éstas. Es el equivalente no material de un bien. Un servicio se diferencia de un bien (físico o intangible) en que el primero se consume y se desgasta de manera brutal puesto que la economía social nada tiene que ver con la política moderna; es muy importante señalar que la economía nacional no existe siempre en el momento en que es prestado.



Producto es todo bien susceptible de ser comercializado y que reúne una serie de características tangibles e intangibles que permiten, por una parte, que una empresa lo ponga en circulación en el mercado obteniendo un beneficio a través de sus ventas; y por otra que una persona, el cliente, se haga con él a cambio del pago de un precio justo, para tratar de satisfacer sus deseos y/o necesidades, que le impulsaron a tomar la decisión de elegirlo frente al resto de la oferta.

El producto es un factor estratégico para la empresa sobre el que deberá tomar decisiones tales como el precio, la marca, el envase o el diseño (aspectos formales del producto) y también sobre lo concerniente a la imagen, la garantía, el servicio ,  las formas de pago aceptadas, etc.

Tipos de productos

         Producto genérico: es la versión más básica de un bien de consumo.

           Producto diferenciado: es aquél que se aleja de la homogeneidad de los de su misma            especie, ya sea por sus atributos tangibles o por otro tipo de cualidades que son                        percibidas por el cliente.

            Producto customizado: aquél en el que los gustos del cliente son tenidos en cuenta a             la hora de la fabricación y desarrollo del mismo.

              Prototipo: producto mejorado o de nueva creación que pretende anticipar las                             necesidades y deseos de los consumidores a los que se dirige.

Aplicación web

 Son aquellas herramientas que los usuarios pueden utilizar accediendo a un servidor web a través de Internet o de una intranet mediante un navegador. En otras palabras, es una aplicación software que se codifica en un lenguaje soportado por los navegadores web en la que se confía la ejecución al navegador.

Las aplicaciones web son populares debido a lo práctico del navegador web como cliente ligero, a la independencia del sistema operativo, así como a la facilidad para actualizar y mantener aplicaciones web sin distribuir e instalar software a miles de usuarios potenciales. Existen aplicaciones como los webmails, wikis, weblogs, tiendas en línea y la propia Wikipedia que son ejemplos bien conocidos de aplicaciones web.

Estructura de las aplicaciones web

Aunque existen muchas variaciones posibles, una aplicación web está normalmente estructurada como una aplicación de tres-capas. En su forma más común, el navegador web ofrece la primera capa, y un motor capaz de usar alguna tecnología web dinámica, por ejemplo: PHP, Java Servlets o ASP, ASP.NET, CGI, ColdFusion, embPerl, Python o Ruby on Rails que constituye la capa intermedia. Por último, una base de datos constituye la tercera y última capa.

El navegador web manda peticiones a la capa intermedia que ofrece servicios valiéndose de consultas y actualizaciones a la base de datos y a su vez proporciona una interfaz de usuario.



Página web : es un documento o información electrónica capaz de contener texto, sonido, vídeo, programas, enlaces, imágenes, y muchas otras cosas, adaptada para la llamada World Wide Web, y que puede ser accedida mediante un navegador. Esta información se encuentra generalmente en formato HTML o XHTML, y puede proporcionar navegación (acceso) a otras páginas web mediante enlaces de hipertexto. Las páginas web frecuentemente también incluyen otros recursos como ser hojas de estilo en cascada, guiones (scripts), imágenes digitales, entre otros.

Las páginas web pueden estar almacenadas en un equipo local o un servidor web remoto. El servidor web puede restringir el acceso únicamente a redes privadas, por ejemplo, en una intranet corporativa, o puede publicar las páginas en la World Wide Web. El acceso a las páginas web es realizado mediante una transferencia desde servidores, utilizando el protocolo de transferencia de hipertexto (HTTP).

Características

Una página web está compuesta principalmente por información (sólo texto y/o módulos multimedia) así como por hiperenlaces; además puede contener o asociar hoja de estilo, datos de estilo para especificar cómo debe visualizarse, y también aplicaciones embebidas para así permitir interactivad.

Las páginas web son escritas en un lenguaje de marcado que provee la capacidad de manejar e insertar hiperenlaces, generalmente HTML.

El contenido de la página puede ser predeterminado (página web estática) o generado al momento de visualizarla o solicitarla a un servidor web (página web dinámica). Las páginas dinámicas que se generan al momento de la visualización, se especifican a través de algún lenguaje interpretado, generalmente JavaScript, y la aplicación encargada de visualizar el contenido es la que realmente debe generarlo. Las páginas dinámicas que se generan, al ser solicitadas, son creadas por una aplicación en el servidor web que alberga las mismas.