martes, 2 de diciembre de 2008

Codigo de Barra

  • DEFINICIÓN

  • Dibujo formado por barras y espacios paralelos, que codifica información mediante las anchuras relativas de estos elementos. Los códigos de barras representan datos en una forma legible por las máquinas, y son uno de los medios más eficientes para la captación automática de datos.

    Esta información puede ser leída por dispositivos ópticos, los cuales envían la información leída hacia una computadora como si la información se hubiera tecleado.

    El código de barras almacena datos que pueden ser reunidos de manera rápida y con una gran precisión y ofrecen con un método simple y fácil la codificación de información de texto que puede ser leída por lectores electrónicos de bajo costo.

    Los códigos de barras se pueden imaginar como si fueran la versión impresa del código Morse, con barras angostas ( y espacios) representando puntos, y barras. El lector decodifica el código de barras a través de la digitalización proveniente de una fuente de luz que cruza el código y mide la intensidad de la luz reflejada por los espacios blancos. El patrón de la luz reflejada se detecta a través de una foto diodo el cual produce una señal eléctrica que coincide exactamente con el patrón impreso del código de barras. Luego esta señal es decodificada de regreso de acuerdo con la información original por circuitos electrónicos de bajo costo. Debido a que el diseño de muchas simbologías de código de barras no marca diferencia alguna, se puede digitalizar el código de barras de derecha a izquierda o viceversa.

    La información es leída por dispositivos ópticos los cuales envían la información a una computadora como si la información hubiese sido tecleada. Un símbolo de código de barras es la visualización física de un código de barras. Una simbología es la forma en que se codifica la información en las barras y espacios del símbolo de código de barras.

    Los Código de barras han sido creados para identificar objetos y facilitar el ingreso de información eliminando la posibilidad de error en la captura.

    Su estructura básica consiste de zona de inicio y término en la que se incluye: un patrón de inicio, uno o más caracteres de datos, opcionalmente unos o dos caracteres de verificación y patrón de término. Esta ampliamente difundido en el comercio y en la industria, siendo que una computadora se conecta a través de la interfaz puerto de serie. Posibilita la recolección de datos con rapidez, muy baja tasa de errores, facilidad y bajo costo, en comparación con la lectura visual de códigos numéricos seguida de entrada manual por teclado.

    Uno de los medios más modernos, y que está tomando cada vez un mayor auge, de introducir información en una computadora es por medio de una codificación de barras verticales.

    Cada vez son más los productos que llevan en su etiqueta uno de estos códigos donde, por medio de las barras verticales de color negro, se consigue una identificación para todo tipo de productos, desde libros hasta bolsas de papas fritas.

    Esta codificación ha sido definida de forma estándar por la Organización de Estándares Internacionales y, en ella, cada una de las líneas tiene un determinado valor dependiendo, en principio, de su presencia o ausencia y también de su grosor.

    En general los códigos de barra no son descifrables por las personas. Las lectoras son las encargadas de convertirlos en unos y ceros que irán a la computadora.

    Representan caracteres de información mediante barras negras y blancas dispuestas verticalmente. El ancho de las barras y espacios puede ser variable, siendo la más ancha un múltiplo de la mas angosta. En binario las barras significaran unos y los espacios ceros.

  • CLASES DE CODIGOS DE BARRAS

  • Uno de los códigos de barras mas corrientes es el UPC (Universal Product Code). Emparentado con el UPC, existe el código ISBN, usado en la cubierta de libros y revistas, también de 12 dígitos, así como el código 39 codifica números y letras para usos generales, siendo muy popular. Este código se usa mucho en la industria y para inventarios.

    Otro es el código entrelazado 2 de 5 (ITF), puede ser de cualquier longitud, pero con un numero par de dígitos, siendo que codifica dos dígitos por vez. Este es uno de los pocos códigos en que los espacios en blanco tienen significado. Al presente existen unos 20 códigos de barra.

    También existen códigos de barra en 2 dimensiones, que se deben escanear mediante un escáner o una cámara fotográfica digital. Una de las más utilizadas es el símbolo internacional de número de artículo, llamado símbolo EAN por las siglas en inglés de la Asociación Europea para la Numeración de Artículos.

    Este símbolo se emplea en el comercio abierto para identificar los productos al pasar del fabricante a los mayoristas, distribuidores y minoristas, y de ahí al cliente final.

    El código de barras EAN-13 representa el número de artículo indicado debajo del mismo, y no contiene ninguna información sobre el producto al que identifica. Toda la información sobre el producto figura en una base de datos, y se accede a ella indicando el número de artículo. Cada una de las empresas que utilizan el sistema EAN recibe un bloque de números de artículos que puede emplear para identificar todos sus productos. Estos bloques son asignados por una organización nacional de numeración, que a su vez recibe los números del organismo rector internacional, EAN Internacional.

    Cada código de barras EAN-13 está formado por:

    Un margen, un dibujo normalizado de separación, un dibujo que representa directamente, seis dígitos e indirectamente un séptimo, un dibujo central de separación, un dibujo de barras y espacios que representa directamente seis dígitos, un dibujo normalizado de separación, un margen como se ilustra a continuación:

    Códigos de barras

    Cada dígito se representa mediante dos barras y dos espacios que tienen una anchura total de siete unidades; cada barra y cada espacio pueden tener una anchura de una, dos, tres o cuatro unidades.

    En la simbología EAN pueden elegirse tres formas distintas, A, B y C, para representar cada dígito. Estas formas se conocen como conjuntos numéricos.

    Para representar la primera mitad del código de barras se emplea una combinación de los conjuntos numéricos A y B; el orden de los conjuntos numéricos utilizados representa a su vez un séptimo dígito, que aparece al principio de la secuencia de caracteres situada debajo del código de barras.

    El conjunto numérico C se emplea sólo para la segunda mitad del código de barras. Esto hace que el dispositivo lector pueda leer el código en cualquier sentido y decodificarlo correctamente.

  • HISTORIA DE LOS CODIGOS DE BARRA

  • La primera patente para un código de barras, que tenía forma circular, fue solicitada en 1949 en Estados Unidos por N. J. Woodland; los códigos de barras se emplearon por primera vez a principios de la década de 1960 para identificar material rodante ferroviario. y de ahí en adelante ha venido avanzando su aplicación y desarrollo así:

    En los sesenta:

    1961 es el año de aparición del primer escáner fijo de códigos de barras instalado por Sylvania General Telephone. Este aparato leía barras de colores rojo, azul, blanco y negro identificando vagones de ferrocarriles.

    Para 1967 la Asociación de Ferrocarriles de Norteamérica ( EEUU) aplica códigos de barras para control de tránsito de embarques. El proyecto no duró mucho por falta de adecuado mantenimiento de las etiquetas conteniendo los códigos.

    Alguien conoce la cadena de supermercados Kroger? En 1967 la sucursal de Cincinnati (Ohio, EEUU) instala el primer sistema de "retail" basado en códigos de barras. Al cliente que encontraba un código que no se podía escanear correctamente se le ofrecía cupones de compra gratis!!!

    1969, el láser hace su aparición. Usando luz de gas de Helio-Neón, el primer escáner fijo es instalado. Su costo: $10 000!!!!. Hoy por hoy el mismo tipo de escáner estaría costando menos de $ 2 000.

    A fines de los años 60 y comienzos de los 70 aparecieron las primeras aplicaciones industriales pero solo para manejo de información. En 1969, Rust-Oleum fue el primero en interactuar un lector de códigos con un computador (ordenador). El programa ejecutaba funciones de mantenimiento de inventarios e impresión de reportes de embarque.

    En los setenta:

    En 1970 aparece el primer terminal portátil de datos fabricado por Norand. Este utilizaba un "wand" o lápiz de contacto.

    El código Plessey hace su aparición en Inglaterra ( The Plessey Company, Dorset, Inglaterra), para control de archivos en organismos militares en 1971. Su aplicación se difundió para control de documentos en bibliotecas.

    Codabar aparece en 1971 y encuentra su mayor aplicación en los bancos de sangre, donde un medio de identificación y verificación automática eran indispensables.

    Códigos de barras

    Buick ( si, la fábrica de automóviles) utilizó identificación automática en las operaciones de ensamble de transmisiones, también por los años 70. El sistema era utilizado para conteo de los diferentes tipos de transmisión ensamblados diariamente. Todo un éxito.

    ITF marca su aparición en 1972, creado por el Dr. David Allais, en ese entonces de Intermec.

    En el año 1973 se anuncia el código U.P.C. ( Universal Product Code) que se convertiría en el estándar de identificación de productos. De esta forma la actualización automática de inventarios permitía una mejor y más oportuna compra y reabastecimiento de bienes. Europa se hace presente con su propia versión de U.P.C. En 1976, el código EAN (European Article Number).

    Códigos de barras
    Códigos de barras
    Códigos de barras
    Códigos de barras

    En 1974, nuevamente el Dr. Allais conjuntamente con Ray Stevens de Intermec inventan el código 39, el primero de tipo alfanumérico.

    El primer sistema patentado de verificación de códigos de barras por medio de láser aparece en el mercado en 1978.

    En los Ochenta:

    Revisen su correspondencia postal y muchos observarán lo siguiente marcado en los sobres:

    Códigos de barras

    Esto es el PostNet, aparece en 1980 siendo usado por el Servicio Postal de los EEUU.

    La tecnología de CCD (Charge Coupled Device) es aplicada en un escáner, 1981. En la actualidad este tipo de tecnología tiene bastante difusión en el mercado asiático, mientras que el láser domina en el mundo occidental. En ese año también aparece el código 128, de tipo alfanumérico.

    Aparece la norma ANSI MH10.8M que especifica las características técnicas de los códigos 39, Codabar, e ITF (Interleaved Two of Five).

    El Dr. Allais es incansable. En 1987 desarrolla el primer código bidimensional, el código 49. Le sigue Ted Williams ( Láser Light Systems) con el código 16K (1988).

    En los Noventa:

    En 1990 se publica la especificación ANS X3.182, que regula la calidad de impresión de códigos de barras lineales. En ese mismo año, Symbol Technologies presenta el código bidimensional PDF417.

    Códigos de barras

    Mas y más códigos se están desarrollando, sobre todo en los del tipo de alta densidad. La tecnología de identificación y manejo de datos a través de códigos de barras, ha logrado convertirse en un estándar "de facto" al ser aplicada, cada vez con más frecuencia, tanto en operaciones de distribución y manejo de materiales, como en organizaciones de manufactura industrial.

  • BENEFICIOS DE LOS CÓDIGOS DE BARRA

  • Aunque los beneficios en la implementación del sistema de identificación EAN-UCC son muchos, los cinco de los más importantes para que una empresa se desarrolle más competitivamente:

    • Optimización en el control de inventarios y aumento de productividad en el punto de pago, eliminando colas y disminuyendo el tiempo de espera. Mejor servicio al cliente.

    • Disminución de los procesos de marcación de precios, eliminación de errores de digitación y captura de datos de venta en forma rápida y segura.

    • Identificación de las principales áreas de mermas

    • Obtención de información confiable para el manejo del negocio.

    • Establecimiento de un lenguaje común con sus proveedores a través del código de barras, incrementando la productividad de la relación comercial, lo que facilita la implementación de otras tecnologías como el Intercambio Electrónico de Documentos (EDI).

    Otros beneficios son:

    • Proporciona una identificación única a cada producto, servicio o localización.

    • Permite la captura automática de la información.

    • Permite la automatización de varios procesos a lo largo de la cadena de abastecimiento.

    • Permite obtener información rápida y oportuna sobre productos servicios o localizaciones.

    • Incrementa la productividad y la eficiencia porque optimiza el tiempo en captura de información.

    • Disminuye la posibilidad del error humano.

    • Virtualmente no hay retrasos desde que se lee la información hasta que puede ser usada.

    • Se mejora la exactitud de los datos.

    • Se tienen costos fijos de labor más bajos.

    • Se puede tener un mejor control de calidad, mejor servicio al cliente.

    • Se pueden contar con nuevas categorías de información.

    • Se mejora la competitividad.

  • CARACTERÍSTICAS DE UN CÓDIGO DE BARRAS

  • Un símbolo de código de barras puede tener, a su vez, varias características, entre las cuales podemos nombrar:

    Densidad:

    Es la anchura del elemento (barra o espacio) más angosto dentro del símbolo de código de barras. Está dado en miles (milésimas de pulgada). Un código de barras no se mide por su longitud física sino por su densidad.

    WNR: (Wide to Narrow Ratio)

    Es la razón del grosor del elemento más angosto contra el más ancho. Usualmente es 1:3 o 1:2.

    Quiet Zone:

    Es el área blanca al principio y al final de un símbolo de código de barras. Esta área es necesaria para una lectura conveniente del símbolo.

  • APLICACIONES COMERCIALES

  • El código de barras le abre las puertas a:

    • Administración de Materias Primas

    • Administración de Bodegas y Centros de Distribución

    • Producción

    • Adminsitración Eficiente de Puntos de Venta

    • Aplicaciones de Comercio Exterior

    • Recaudo con Código de Barras

    • Pagos Electrónicos

    • Póliza Electrónica

    • Rutas Críticas de Pacientes

    • Aportes a la Seguridad Social

    • Manejo de Convenios entre IPS y EPS/ARS

    • Operación Logística

    • EHCR Reabastecimiento Continuo en el Sector Salud

    • Activos Fijos

    • Identificación de Personal

  • EJEMPLOS DE APLICACIÓNES COMERCIALES

  • Administración de Materias Primas

  • Para que la admisntración de las materias primas de una empres a posea información ágil y confiable el sistema EAN UCC es la herramienta confiable que se necesita, ya que posee las fortalezas ideales para un adecuado seguimiento y control de insumos. La identificaciójn estándar que ofrece este sistema le permite a su empresa y a sus proveedores grandes beneficios, gracias a la información común que aporta valiosos datos para una labor conjunta.

    Evitar los desperdicios, reciclar y lograr ahorros de materias primas son algunos de los pasos clave para optimizar el aprovechamiento de los insumos. Sin embargo, para lograrlo, se debe conocer a fondo el comportamiento de las materias primas, y realizar un seguimiento detallado de su utilización, lo cual exige un manejo de la información exacto y ágil, que se logra con los códigos de barrra.

  • Administración de Bodegas y Centros de Distribución

  • Admisnitrar un centro de distribución es una tarea compleja que va más allá de la sola manipulación y control de la mercancía, el factor que realmente marca la diferencia es la administración de la información de la misma, pues es la que realemente permite desarrollar procesos confiables y eficientes dentro de éste eslabón de la cadena de abastecimiento.

    La filosofía del sistema EAN UCC es mejorar la cadena de abastecimiento mediante la optimización de los procesos. En la bodega esta filosofia se aplica en cada proceso: almacenamiento, preparación , despacho.

    Cada uno puede ser mejorado gracias a la utilización de las herramientas de éste sistema. El sistema esta diseñado bajo uan filosofia que permite mejorar ese control. La identificación estándar de la mercancía, la captura de infromación de la misma y la comunicación de su movimiento, hacen que los sistemas de información puedan responder mejor a las necesidades de los usuarios, ya que los datos que manejan son más confiables. Los tiempos muertos debido a las demoras en la captura de infromación, pueden evitarse usando la tecnología disponible.

  • Producción

  • Controlar el producto que llegará a los consumidores es fundamental, sin embargo, éste control requiere de tres factores que deben encajar perfectamente para generar un información oportuna y real:personas, tiempos y recursos.

    El código de Barras y EDI bajo los estándares EAN-UCC, facilitan las labores de captura y comunicación de información de manera eficiente, posibilitando a las personas hacer uso de ella sin el desgaste del proceso de ingreso de datos.

    Implementar el código de barras y Edi en una compañía no solo redundará en un mejor aprovechamiento de los recursos en eficiencia, y agilidad en las diferentes etapas de los procesos de manufactura d los productos, sino que moderniza el servicio que se les presta a los clientes, proveedores y miembros de la compañía.

  • Administración Eficiente de Puntos de Venta

  • Los beneficios más importantes para que una empresa administre eficientemente los puntos de venta y se desarrolle competititvamente son:

    • Optimización en el control de inventarios y aumento de productividad en el punto de pago, eliminando colas y disminuyendo el tiempo de espera. Mejor servicio al cliente.

    • Disminución de los procesos de marcación de precios, eliminación de errores de digitación y captura de datos de venta en forma rápida y segura.

    • Identificación de las princiapales áreas de mermas.

    • Obtención de información confiable para el manejo dl negocio.

    • Establecimiento de un lenguaje común con sus proveedores a través del código de barras, incrementando la productividad de la relación comercial lo que facilita la implementación de otras tecnologías con el intercambio electrónico de documentos -EDI-

    • Conocimiento del comportamiento de los productos en el mercado.

    • Aumento de la eficiencia en el manejo de procesos como el recibo, despacho, y selección de mercancías.

    • Aplicaciones de Comercio Exterior

    • En comercio exterior, el uso del sistema EAN-UCC puede ser muy variado, teniendo en cuenta que son muchas las entidades y los procesos que en esta actividad se encuentran involucrados.

      Hoy las soluciones se están dando. La identificación única de la carga y la captura automática de la misma es totalmente factible. Igualmente la posibilidad de intercambiar cualquier tipo de información vía electrónica y que la misma sea procesada automáticamente, es hoy una realidad.

    • Identificación de carga

    • La identificación única de contenedores por medio del código de barras, permite capturar la información con una simple lectura automática, facilitando las operaciones de recepción, almacenamiento y despacho de los mismos. Sin importar que se encuentren llenos o vacíos, que sean refrigerados o no lo sean.

      Esta tecnología evita errores en la transcripción de información y asegura que cualquier movimiento quede registrado en el sistema de información. De esta forma se puede cubrir una de las grandes necesidades de los agentes de carga y las navieras: saber en todo momento dónde se encuentra un contenedor y cuál es su disponibilidad.

    • Identificación de Personal

    • Es importante identificar de forma única las personas, bien sea de una empresa, un club, una biblioteca etc, para controlar las actividades y operaciones que realizan; por ejemplo con control de activos fijos, control de acceso a áreas restringidas y manejo automático de nómina.

      Es de gran utilidad que dicha identificación sea estándar, a través del Código de Barras simbolizado e impreso en el carné de identificación, es posible leer automáticamente la información de cada persona al realizar operaciones internas que requieran algún tipo de control.

      Tome nota de los beneficios que alcanzaría con el aprovechamiento del uso del código de barras en su empresa:

      • Eliminación procesos de digitación en cualquier proceso que implique registrar la identificación de una persona.

      • Agilización en la prestación de cualquier servicio.

      • Seguridad en el registro de información.

      • Posibilidad de mantener bases centrales de datos de las personas, que sirvan a diversas entidades y eviten el fraude.

      • Agilización de procesos administrativos.

      • Control de acceso a áreas restringidas.

    • Funcionamiento de los lectores de código de barras

    • Los lectores generan una señal digital pura de las barras y espacios. En el caso de los lápices ópticos ésta señal es de baja frecuencia, pues es generada por el barrido de las barras y espacios que hace el operador al deslizar el lápiz sobre el símbolo de código de barras. En el caso del laser, la señal es similar a la generada por el lápiz, sólo que a una frecuencia mucho mayor. Esta última señal es conocida como HHLC (Hand held laser compatible).

    • Interfaces de los lectores de código de barras:

    • Obviamente las señales HHLC y wand requieren ser decodificadas para poder ser usadas por la computadora, y para esto existen diferentes interfaces, listadas a continuación.

      Decodidificador de teclado.

      Cuando se requiere que el decodificador sea de teclado, se utiliza lo que se conoce como keyboard wedge, el cual se conecta a la entrada del teclado de la PC o terminal.

      Existen diferentes tipos de wedges. Pueden tener una o dos entradas para lectores de código de barras y/o lector de cinta magnética, que son los más comunes.

      Estos decodificadores comúnmente se conectan a una PC, aunque hay modelos que pueden utilizarse en terminales tontas (WYSE, Link, IBM 5250). Obviamente se requerirá utilizar el cable apropiado y configurar el decodificador.

      RS-232.

      Para éste caso, los lectores tienen integrado un decodificador que envía la información en forma serial a la computadora. En la computadora se instala un TSR, que convierte la información a entrada de teclado.

      Wand Emulation.

      La señal HHLC se convierte a una de menor frecuencia, idéntica a la generada por un lápiz óptico. Esta interface es útil cuando el decodificador no permite utilizar la señal HHLC directamente, como es el caso de algunas terminales ASCII y portátiles.

      OCIA e IBM

      Generalmente usadas por terminales de punto de venta con arquitectura propietaria, como IBM, NCR, Fujitsu, Omron.

      A los lectores láser, CCD y omnidireccionales puede adaptárseles cualquier tipo de interface, que viene determinada en el modelo. Los lectores de lápiz solo tienen una interface.

      Tipos de lectores

      Los cuatro principales tipos de lectores son:

      Lápiz óptico o wand

      Debe ser deslizado haciendo contacto a lo ancho del código. Como se menciona anteriormente, envía una señal digital pura de las barras y espacios a una frecuencia igual a la velocidad con que se desliza el lápiz.

      • Ventajas: es económico

      • Desventajas: es lento, requiere que el usuario tenga práctica, tiene un bajo first read rate, requiere un decodificador de teclado, depende de la calidad de impresión del código.

      • Precios: 100-150 dlls

      Láser de pistola

      Realiza un barrido mediante una luz láser y que genera una señal similar a la del lápiz óptico, pero a una mayor frecuencia. Esta señal es conocida como HHLC (Hand Held Laser Compatible).

      • Ventajas: es rápido, puede no requerir decodificador de teclado, puede leer a distancia (standard 5 a 30 cm, especial hasta 15m con etiquetas de papel retrorreflectivo), tiene un alto FRR.

      • Desventajas: es relativamente caro (aunque existen modelos de 545 dlls), puede presentar problemas de durabilidad debido a sus partes móviles (espejos giratorios), puede tener problemas para leer con demasiada luz ambiental.

      • Precios: 500-1500 dlls

      CCD (Charge Coupled Device)

      Mediante un arreglo de fotodiodos toma una 'foto' del símbolo de código de barras y la traduce a una señal, que puede ser similar a la enviada por el láser (HHLC) o a la del lápiz óptico.

      • Ventajas: es rápido, es económico, es muy durable por no tener partes móviles, puede no necesitar decodificador de teclado, tiene un alto FRR.

      • Desventajas: requiere estar muy cerca del código (0-1.5cm), no puede leer símbolos que rebasen el ancho de su ventana.

      • Precios: 200-400dlls

      Láser omnidireccional

      Es un lector que envía un patrón de rayos láser y que permite leer un símbolo de código de barras sin importar la orientación del mismo.

      • Ventajas: Todas las ventajas del láser de pistola más un FRR de prácticamente 100%.

      • Desventajas: es caro (aquí no hay modelos económicos), el operador requiere que los artículos etiquetados no sean muy voluminosos pues el scanner se monta en posición fija.

      • Precios: 1200-2700 dlls

      Variantes y diferencias entre lectores

      Existen modelos de lectores que tienen solamente una interface integrada, pero hay algunos de ellos (generalmente laser y omni) que pueden tener varias interfaces y que requieren un simple cambio de cables y una reconfiguración para cambiar de una interface a otra.

      Configuración de lectores

      Normalmente los lectores láser, CCD y omnidireccionales se configuran leyendo comandos de programación impresos en menús de códigos de barras. Hay algunos que se configuran con dip switches, o enviándoles los comandos de programación serialmente.

      Impresión de Código de Barras

      Los código de barras se pueden imprimir de varias maneras diferentes, entre ellas:

      Película maestra

      Este método se utiliza para imprimir códigos de barras en imprentas, principalmente en empaques de comerciales destinados al comercio detallista. Se crea un original en una impresora de buena resolución y se reproduce por medios fotomecánicos añadiéndolo al original de impresión del empaque.

      Láser

      Se puede utilizar una impresora láser imprimir planillas de etiquetas en bajo volumen o en documentos serializados que se imprimen eventualmente.

      Impresión térmica

      Es la mejor tecnología para imprimir altos volúmenes de etiquetas en demanda o por lotes. Se utilizan impresoras industriales de mediana o alta velocidad que pueden imprimir sobre papel térmico o normal.

      Terminales portátiles de colección de datos

      Se utilizan para colección de datos en lugares donde es difícil llevar una computadora, como en un almacén o para trabajo en campo. Generalmente se diseñan para uso industrial rudo.

      Las terminales portátiles cuentan con display pequeño, teclado, puerto serial, puerto para conexión de un lector externo de código de barras y son programables.

      Características

      Algunas de ellas tienen el lector de código de barras integrado, y éste puede ser láser, CCD o lápiz. La memoria RAM con que cuentan puede variar de unos 64KB hasta 4 MB en terminales más sofisticadas. Las terminales más sofisticadas tienen radios, permitiéndose así una interacción en línea con el host.

      La forma en que se programan depende de la marca y del modelo: Pueden tener un lenguaje nativo o programarse mediante un generador de aplicaciones que genera un código interpretable por la terminal.

      Algunas tienen sistema operativo MS-DOS y consiguientemente pueden programarse en lenguajes de alto nivel.

      Los lectores soportados por la mayoría de éstas terminales son HHLC (CCD o láser) y lápiz óptico (wand emulation)

      Forma de uso de las terminales

      Una operación típica de una de éstas terminales es la siguiente:

      • Se despliegan prompts (preguntas) en pantalla.

      • Se leen los datos pedidos con el scanner o se teclean.

      • Se validan los mismos si es necesario.

      • Se repite el procedimiento las veces que sea necesario.

      • Cuando se tiene la información completa, se descargan los datos vía serial a una computadora en donde finalmente son procesados.

      Obviamente pueden existir otras variantes, pero el manejo básico de éstas terminales es el mismo.

    • ENTIDAD LIDER EN COLOMBIA EN CUANTO AL MANEJO DE ESTA TECNOLOGÍA

    • En Colombia el IAC, Instituto Colombiano de Codificación y Automatización Comercial, es el único ente autorizado para administrar y difundir los beneficios de hablar un mismo idioma en cuanto a la tecnología de códigos de barras se refiere.

      IAC es una asociación empresarial, independiente, privada, sin ánimo de lucro, que desarrolla, establece y promueve el uso e implantación de estándares globales y abiertos de identificación y comunicación, cuya aplicación agrega valor a la gestión de la cadena de abastecimiento de productos y servicios y al consumidor final. IAC es un punto de encuentro en donde todos los sectores económicos identifican e implementan soluciones tecnológicas comunes, frente a las necesidades que impone el mercado.

      La IAC pretende ser la entidad del país reconocida por su excelencia en el logro de la aplicación de soluciones tecnológicas que contribuyen a mejorar la competitividad de la cadena de abastecimiento, basada en eficientes relaciones de negocios.

      1.8.1. HISTORIA DEL INSTITUTO COLOMBIANO DE CODIFICACIÓN Y AUTOMATIZACIÓN COMERCIAL

      La historia del sistema EAN · UCC, partió de la necesidad de encontrar un lenguaje común. De entenderse en términos de productos. Como consecuencia de la globalización y del intercambio de productos en todo el mundo, nació la iniciativa en Estados Unidos y Europa de crear un sistema único de codificación. Hacia 1967 -época en la cual el desarrollo del mercado estaba en pleno auge en Estados Unidos- surge la necesidad de identificar los productos; la necesidad de hablar un mismo idioma. Es entonces cuando nacen las primeras muestras de identificación en Cincinati, donde se instalaron los primeros escáner en algunos puntos de venta de la firma Kroger Co, con los cuales se ratificó la necesidad de definir una identificación estándar para los productos. Sobre el tema de identificación ya se venía trabajando simultáneamente en Europa, y países como Alemania, Holanda y Francia habían desarrollado sistemas propios de identificación para sus productos. Códigos de barras
      Códigos de barras

      En Estados Unidos el 9 de abril de 1973 el periódico Supermarket News publicó una importante decisión para la industria de alimentos: se había adoptado el código de barras como el símbolo para el UPC (Universal Product Code), creado para identificar productos dentro del territorio americano. El primer lector de código de barras capaz de interpretar un código UPC fue instalado en el "Marsh's Supermarket" en Troy, Ohio, en julio de 1974. Durante 1973 a 1976 las reflexiones sobre la facilidad de un código europeo para identificar los productos continuó siendo un punto de atención en muchos países, y por ello se crea el European Numbering and Symbolisation of Products, que en 1977 es oficialmente registrado como EAN (European Article Numbering).

      EAN fue constituida como iniciativa europea y se extendió rápidamente a todo el mundo. Entre los países fundadores de EAN se encontraron Austria, Bélgica, Dinamarca, Finlandia, Francia, Alemania, Italia, Holanda, Noruega, Suecia, Suiza y El Reino Unido. A esta iniciativa se unieron en los ochenta Australia y Japón, lo cual cambió la concepción de EAN como una organización solamente europea y los llevó a convertirse en EAN International.Códigos de barras

      El sistema de identificación EAN · UCC, así como el EDI, se dieron a conocer en varios países del mundo y América Latina. Argentina, Brasil y México fueron los primeros en adoptar las ventajas del sistema. Poco después el sistema llegó a Colombia como una práctica innovadora causando gran interés entre diversos empresarios. El 28 de julio de 1988, 29 empresas colombianas entre las que se encontraban representados todos los sectores (industria, comercio, cajas de compensación, proveedores de equipos y servicios, gremios y asociaciones) coincidieron en la necesidad de crear el IAC, Instituto Colombiano de Codificación y Automatización Comercial como el organismo que administrará en el sistema

      Para acceder a las páginas impresas de la información adquirida de la IAC, favor ver anexos.

    • ORGANIGRAMA DE LA IAC

    • Códigos de barras

    • EMPRESAS QUE UTILIZAN ESTA TECNOLOGÍA

    • EMPRESAS VINCULADAS A LA IAC

      ALIMENTOS KRAFT DE COLOMBIA S. A.

      CARULLA

      CIA.GALLETAS NOEL

      CAFAM

      ALMACENES ÉXITO S.A

      CARVAJAL S. A. (FESA)

      CIA.NAL.DE CHOC.

      SUPERTIENDAS Y DROGUERÍAS OLÍMPICA S.A

      ALPINA S. A.

      COLGATE PALMOLIVE CIA.

      CONAVI

      COLSUBSIDIO

    Tecnologia .NET

    Tecnología .NET

    1. Introducción:

    ¿A quién va dirigido este curso? Con este curso pretendemos llegar a dos grupos de usuarios. Por una parte los que nunca han programado y quieren aprender este mundillo, y por otro los que ya conocen Visual Basic en sus anteriores versiones y quieren "saltar" al nuevo sistema .NET.

    Hay ventajas y desventajas para estos dos grupos. Para los que se quieren iniciar van a aprender una filosofía y técnicas de programación muy ambiciosas y robustas que componen el mejor entorno de desarrollo que existe actualmente. Por contra necesitarán un "duro" aprendizaje para entender todas las técnicas en las que se basa .NET para desarrollar aplicaciones, ahí es donde este curso entra en acción: proporcionar un buen nivel a los nuevos programadores para que comiencen a desarrollar en esta plataforma. Para el segundo grupo, como ventaja obvia está el conocimiento de un lenguaje de programación tan extendido como Visual Basic. La desventaja es que hay que borrar los conocimientos anteriores y partir de cero, es decir, hay que conocer esta nueva tecnología profundamente para entenderla y trabajar con la nueva filosofía de .NET. (Yo acabo de terminar esta fase)

    Es muy habitual ver programadores que enseguida obtenían unos modestos resultados poniendo cuatro controles de Visual Basic y unas líneas de código. Con este nuevo entorno nos tenemos que olvidar de esta técnica y madurar técnicamente hablando al conocer un entorno tan ambicioso como .NET. Empecemos por saber que esto del .NET...

    La evolución

    Hace varios años (como diez mas o menos) las aplicaciones las aplicaciones se creaban utilizando un mismo lenguaje para todas las tareas y para un sistema operativo concreto. Inicialmente la aplicaciones para Windows se realizaban en C y con llamadas directas a las "tripas" del Windows con la API (que tiempos más duros!!) El trabajo era enorme por dos cosas: la complejidad del lenguaje y la necesidad de conocer todos los detalles del sistema operativo para poder programar sobre él.

    Ahí nació Visual Basic, como una herramienta que permitía el desarrollo de las interfaces de una forma tremendamente sencilla para lo conocido hasta entonces y con un lenguaje conocido por entonces como el Basic. Se utilizaban los controles en formato VBX para diseñar las ventanas y luego un mecanismo de métodos y eventos para controlar el código.

    La parte profesional se "pasó" al C+, un lenguaje orientado a objetos muy complejo y difícil de mantener. Por otro lado Visual Basic seguía avanzando con los COM (Component Objetc Model): un modelo de objetos que permitía la reutilización de componentes independiente del lenguaje con el que estuviesen escritos, así transcurrieron las versiones 5 y 6 de Visual Basic que se convirtieron en los entornos mas importantes del panorama Windows.

    La solución

    Con el tiempo además de los COM aparecieron otras técnicas complementarias para ampliar los lenguajes existentes. Pero esto heterogeneidad de tecnologías, muchas veces dictadas por las necesidades tecnológicas del momento, como Internet, hicieron que se produjeran multitud de servicios duplicados, creación de servicios exclusivamente para algunos lenguajes, poca reutilización de código, mas complejidad, ...

    La solución definitiva se ha planteado con .NET que consta de una serie de servicios iguales en todos los lenguajes que mantienen la integridad con los desarrollos existentes y hace posible una interoperatividad entre los lenguajes desconocida hasta el momento. Esto es podemos utilizar varios lenguajes diferentes (los permitidos .NET) y todos tendrán disponibles desde el mismo entorno de desarrollo hasta los controles y componentes de programación. Se acabó que Visual C tenga estos componente o Visual Fox Pro otros o Visual Basic otros... todos parten de la tecnología .NET y comparten por lo tanto los mismos componentes y objetos. Podemos incluso escribir partes distintas de un mismo programa con varios lenguajes .NET.

    Visual Basic .NET y el entorno .NET Framework

    Visual Basic .NET usa una jerarquía de clases que están incluidas en el .NET Framework, por tanto conocer el .NET Framework nos ayudará a conocer al propio Visual Basic .NET, aunque también necesitarás conocer la forma de usar y de hacer del VB.NET ya que, aunque en el fondo sea lo mismo, el aspecto sintáctico es diferente para cada uno de los lenguajes basados en .NET Framework.

    Importante Luego el verdadero núcleo de todo es .NET Framework un entorno con multitud de clases y objetos disponibles para trabajar con ellos. Sobre este núcleo tendremos los lenguajes de programación y uno de ellos es Visual Basic .NET. Por eso es muy importante conocer que es el .NET Framework

    Así que tranquilo primero veamos que eso del .Net Framework que básicamente se puede decir que es el hermano mayor de .NET

    1.1 ¿Qué es el .NET Framework?

    Literalmente .Net Framework es:

    ".NET Framework es un entorno para construir, instalar y ejecutar servicios Web y otras aplicaciones.
    Se compone de tres partes principales: el Common Language Runtime, las clases Framework y ASP.NET"

    "El .NET Framework es un entorno multi-lenguaje para la construcción, distribución y ejecución de Servicios Webs y aplicaciones."
    "El .NET Framework es una nueva plataforma diseñada para simplificar el desarrollo de aplicaciones en el entorno distribuido de Internet."

    Luego .NET es una nueva filosofía en cuanto a entornos de desarrollo. Este entorno puede utilizar varios lenguajes diferentes para escribir programas, todos se apoyarán en las herramientas que ofrece para conseguir aplicaciones .NET y el alma de este entorno es el .NET Framework

    .Net Framework permite el desarrollo de aplicaciones a través del uso de un conjunto de herramientas y servicios que proporciona y que se agrupan en tres bloques:

    • El entorno de ejecución común ó Common Languaje Runtime (CLR)
    • Jerarquía de clases de .NET
    • Motor de generación de formularios, para crear nuestras aplicaciones

    El Common Lenguage Runtime (CLR) es una serie de librerías dinámicas (DLLs), también llamadas assemblies (o ensamblados), que hacen las veces de las DLLs del API de Windows así como las librerías runtime de Visual Basic o C++.

    Como sabrás, cualquier ejecutable depende de una forma u otra de una serie de librerías, ya sea en tiempo de ejecución como a la hora de la compilación. Pues el CLR es eso, una serie de librerías usadas en tiempo de ejecución para que nuestros ejecutables o cualquiera basado en .NET puedan funcionar. Se acabó eso de que existan dos tipos de ejecutables: los que son autosuficientes y no dependen de librerías externas o los que necesitan de librerías en tiempo de ejecución para poder funcionar, tal es el caso de las versiones anteriores de Visual Basic. (Esto lo entenderán mejor los antiguos programadores de VB)

    Es decir podíamos tener un fichero ejecutable único que no dependiese de ninguna librería, bastaba por lo tanto copiarlo a otro equipo y podía funcionar sin problemas. Por otro lado están los que necesitan librerías externas o ficheros DLL que se instalan en nuestro equipo ayudándose de programas de instalación. Estas librerías se copian normalmente en nuestra carpeta \Windows\System32.

    Si decimos que ahora que con este CLR ya no necesitamos esas librerías, perfecto, sólo tendremos que instalar este componente y nuestros programas .NET funcionarán en cualquier equipo.

    Por otro lado, la biblioteca de clases de .NET Framework proporciona una jerarquía de clases orientadas a objeto disponibles para cualquiera de los lenguajes basados en .NET, incluido el Visual Basic. Esto quiere decir que a partir de ahora Visual Basic ya no será la "oveja negra" de los lenguajes de programación, sino que tendrá a su disposición todas las clases disponibles para el resto de los lenguajes basados en .NET, (o casi), con lo cual sólo nos diferenciará del resto de programadores en la forma de hacer las cosas: ¡más fáciles!

    Los poco flexibles modelos de programación actuales impiden al programador contemplar la idea de un proyecto para Internet que le permita crear aplicaciones distribuidas más potentes. Estos sistemas utilizaban las tecnologías COM, ASP, ADO, ... que individualmente son buenas pero que no están pensadas para ser ejecutadas en la red. Estos elementos definían la arquitectura Windows DNA (Distributed Internet Architecture) que hasta ahora era el modelo de programación para Internet. Esta tecnología queda ahora desplazada completamente por la arquitectura .NET

    Microsoft .NET ofrece una visión orientada a objeto del sistema operativo Windows e incluye cientos de clases que encapsulan los objetos mas importantes del núcleo de Windows. Mas adelante veremos y definiremos las clases pero de una forma resumida digamos que son plantillas para crear objetos, por ejemplo: la clase "botón" me permite crear botones de comando y trabajar con ellos.

    En este curso nos centraremos en la parte de Visual Basic.NET pero no debemos olvidad que .NET es mas que este lenguaje, por ejemplo ASP.NET es una potente plataforma de desarrollo para Internet, permite crear complejas aplicaciones basadas en web. Lo bueno es que al terminar este curso tendremos un gran punto de partida para seguir con esta tecnología de .NET.

    Espero no haberte liado mucho, mas que nada que esto no es la presentación de un simple lenguaje de programación, es la presentación de cómo funciona nuestro Windows y como lo hará en el futuro apoyado en esta tecnología.

    1.2 Comenzar con .NET

    Por ahora estamos convencidos de que .NET es la mejor plataforma de desarrollo y el que no la domine quedará apartado del mundo Windows en poco tiempo. Del mundo Windows me refiero al conocimiento de su tecnología y desarrollo de nuevas aplicaciones con los nuevos sistemas operativos: Windows 2003 Server y Windows XP. Vamos ahora con lo que necesitamos para instalarlo y los pasos necesarios

    Al igual que las anteriores versiones anteriores de Visual Basic, éste se encuentra dentro del paquete Visual Studio .NET, que incorpora varios lenguajes, herramientas y tecnologías. En nuestro caso nos centraremos en Visual Basic .NET del que realizaremos ahora su instalación.

    Los requisitos son los siguientes:

    Mínimo Recomendado
    Procesador Pentium II - 500 Mhz Pentium III- 800 Mhz
    Memoria 128 Mb 256 Mb
    Espacio en disco 3 Gb 10 Gb
    Sistema operativo Windows 2000/XP Windows 2000/XP

    En Visual Studio .NET y como ya es habitual en el resto de las aplicaciones de Microsoft, debemos ser generosos con el equipo para desarrollar en .NET. Por ejemplo, como veremos mas adelante, el entorno de desarrollo tiene tanta información que trabajar con una resolución menor que 1027x768 es imposible, y ésta se queda incluso limitada y no podremos desplegar todas las pantallas. La ayuda ocupa bastante espacio en disco así como el programa en memoria cuando está en ejecución. En definitiva, debemos tener como mínimo la configuración recomendada por Microsoft para trabajar de una forma cómoda...

    En cuanto al sistema operativo si que es obligatorio utilizar las versiones 2000 o XP por razones de aprovechamiento de recursos y sobre todo, de estabilidad.

    2. Una definición más profunda de .NET

    La mejor forma de comprender cómo funciona .NET es analizar las numerosas capas en las que se divide .NET Framework. Veamos la siguiente figura:

    (No te asustes con lo que vas a leer aquí, es obligatorio que lo veamos por encima, al terminar el curso vuelve a leer esto y veras que sencillo era.)

    Como hemos comentado antes .NET Framework constituye la base sobre la que se asienta .NET. Para nosotros es la pieza fundamental de esta nueva tecnología y es la que nos va a proporcionar las herramientas y servicios que necesitaremos en nuestros desarrollos. Podemos agrupar en tres bloques el conjunto de herramientas y servicios:

    • El runtime de lenguaje común o entorno de ejecución común (CLR)

    • Biblioteca de clases base de la plataforma .NET (.NET Framework Base Classes)

    • Motor de generación de la interfaz para crear formularios e interfaces de usuario.

    Estas son tres de las capas del esquema anterior. Simplemente esa jerarquía me dice que en el nivel mas alto están los lenguajes que vamos a utilizar en nuestro desarrollo con .NET que pueden ser varios (en nuestro caso Visual Basic). Luego traduce esas instrucciones al estándar .NET para poder trabajar con esas instrucciones de una forma independiente al lenguaje con que se escribieron. El siguiente paso es la generación de formularios para Windows o web (ASP). Luego el enlace con bases de datos si las hay. Por fin llegamos a todos los objetos disponibles y por último el runtime de lenguaje común (CLR) que es el que va a ejecutar la aplicación. Veamos ahora más técnicamente de abajo hacia arriba:

    1. Runtime del lenguaje común

    El runtime del lenguaje común es la primera capa que pertenece a .NET Framework. Esta capa es la responsable de los servicios básicos de .NET, tales como la administración de memoria, la recolección de los elementos no utilizados, el control estructurado de excepciones y del subprocesamiento múltiple. Si .NET se transporta a otras arquitecturas que no estén basadas en Windows el primer paso sería escribir un runtime del lenguaje para el nuevo equipo. El CLR tiene estas características:

    • Proporciona mejoras para el programador que antes tenía que elaborar

    • Administra el código en tiempo de ejecución: carga en memoria, liberación de memoria, ...

    • Gestiona la seguridad del código ejecutado

    • Abre posibilidades a otros fabricantes para incorporar sus lenguajes

    • Facilita la distribución e instalación de aplicaciones. Elimina los temibles conflictos de DLL's y versiones de ellas

    Es la interfaz entre nuestro código y el sistema operativo, de ahí que si mañana Microsoft hace un CLR en lugar de para Windows, para Macintosh se puedan ejecutar nuestras aplicaciones .NET en este sistema.

    2. Biblioteca de clases

    La biblioteca de clases base (BCL) es la parte de .NET Framework que define todos los tipos de datos básicos, tales como System.Object (raíz de la jerarquía de objetos .NET), tipos numéricos y de fechas, tipo string, matrices y colecciones. La BCL contiene también clases que administrarán las características centrales de .NET: entrada/salida de archivos , subprocesamiento, serialización y seguridad. La forma en la que los tipos se implementan en la BCL siguen las especificaciones llamadas Common Type System (CTS). Por ejemplo, estas especificaciones dicta la forma en la que un tipo .NET expone campos, propiedades, métodos y sucesos, también cómo un tipo puede heredar otro tipo...

    Tranquilo... a lo largo del curso veremos estas clases y por fuerza trabajaremos con ellas porque todo en .NET son clases: desde un gráfico, un botón o nuestro programa.

    3. Capa de datos

    La capa de datos y XML contienen las clases .NET que trabajan con bases de datos y con XML. Anteriormente el soporte XML era una compatibilidad proporcionada por un componente externo. En .NET vemos cómo está integrado en su mismo núcleo. Podemos decir que XML es el formato que utiliza .NET para almacenar cualquier tipo de información. La parte de datos es la que se conoce como ADO.NET y es el equivalente en .NET a la tecnología ActiveX Data Object (ADO), ampliamente conocida por los programadores de Visual Basic, Intranets, ...

    Nota para los conocedores de ADO: Aunque su nombre es muy parecido a ADO.NET son muy diferentes. ADO cubre prácticamente todas las técnicas de bases de datos disponibles (incluyendo cursores del lado del cliente y del servidor, conjuntos de datos desconectados y actualizaciones en diferido). ADO.NET está centrado principalmente en los conjuntos de resultados desconectados (llamados DataSets) Este objeto es mucho mas potente que el objeto ADO Recordset y puede almacenar datos provenientes de varias tablas, relaciones entre diferentes tablas de datos y puede importar y exportar datos en XML.
    4. Capa de formularios y ASP

    Las dos capas siguientes son ASP.NET y Windows Forms. Aquí se sitúan todas las clases que podremos utilizar para generar las páginas web en el primer caso y las ventanas estándares o formularios en las aplicaciones de Windows en el segundo caso.

    Nota ASP.NET es la parte de .NET encargada del desarrollo en web. Una evolución muy ampliada de las páginas ASP y comprende los web forms y los servicios web XML. No lo veremos en este curso pero el salto a desarrollar en Web es muy sencillo...

    Aunque estén en el mismo nivel las tecnologías son muy distintas. Web Forms se ejecuta en el servidor y produce HTML y es la base de las conocidas Intranets donde estas páginas devuelven otras páginas web con conjuntos de resultados u otros datos. Windows Forms se ejecuta en el cliente, un equipo Windows.

    La biblioteca de clases de .NET Framework está formada por una colección de ensamblados (o Assembly), cada uno de los cuales comprende una o más DLL. Veamos que esto de un "ensamblado"...

    Un ensamblado consiste en un conjunto de tipos y recursos reunidos para formar la unidad mas elemental de código que puede ejecutar el entorno .NET Framework. Estos ensamblados son los elementos con los que construiremos una aplicación: una aplicación .NET se compone de varios ensamblados. Podemos llamar también a un ensamblado como una DLL lógica (recordamos que una DLL es una biblioteca de enlaces dinámicos). Decimos lógica porque se trata de una lista de ficheros que se referencian en tiempo de ejecución pero que no se compilan para producir un fichero físico, a diferencia de las DLL's tradicionales. Un ensamblado va mucho más allá ya que puede contener otros recursos además de clases como imágenes, ...

    5. Capas de CLS y lenguajes

    Donde están las especificaciones de los lenguajes y su sincronización con el entorno .NET

    Después de esta locura de siglas y tecnologías vamos al grano con la instalación y la realización de algún ejemplo sencillo...

    3. Instalación

    Lejos quedan las sencillas instalaciones de las versiones anteriores de Visual Basic, en las que prácticamente en un sólo CD disponíamos de todas las herramientas y componentes necesarios... Esta versión es un poco mas compleja de instalar (sólo un poco mas) sobre todo porque Microsoft ha cumplido con algo largamente esperado que era un entorno único de desarrollo. Ahora todos los lenguajes de desarrollo de Microsoft estarán incluidos en Visual Studio .NET con un único interfaz, con todas la ventajas que conlleva en cuanto a simplicidad y sobre todo coherencia entre entornos. Vamos con la instalación...

    En nuestro curso vamos a utilizar la versión "Enterprise Developper" de Microsoft Visual Studio .NET 2003. La diferencia con otras versiones es la cantidad de componentes que tenemos para instalar, pero como en nuestro caso nos centraremos únicamente en Visual Basic .NET sólo instalaremos estos componentes.

    Introducimos el Cd número 1 y se presentará una pantalla como esta:

    Aquí empiezan las diferencias con otras versiones. Para empezar debemos instalar los prerrequisitos, es decir, elementos que necesita tener instalado nuestro sistema operativo antes de instalar Visual Studio. Si tenemos activada esta primera opción debemos hacer clic en ella para instalarlos...

    Estos prerrequisitos pueden variar de una versión de sistema operativo a otro y según el equipo. Por ejemplo algunos de los componentes que va a instalar son:

    • Microsoft Windows Installer 2.0 (para realizar las instalaciones de este entorno)
    • Cliente de extensiones web de Microsoft FrontPage. Para conectar Internet Information Server con Front Page. Esto se utilizará mas con ASP.NET
    • Archivos de tiempo de ejecución para instalación
    • Microsoft Data Access Components. Todos las bibliotecas y controles para acceso a datos
    • Microsoft .NET Framework. (El alma de nuestro entorno)

    Introducimos entonces el CD marcado como "Prerrequisitos", pulsaremos en instalarlos y tras algún anuncio de que va a comenzar esta instalación veremos la pantalla con la lista de componentes que va a instalar:

    Dependiendo de los elementos a instalar es posible que nos pida reinicio del sistema para continuar con la instalación, incluso una pantalla nos pedirá si queremos un inicio de sesión proporcionando los credenciales en la pantalla.

    Nota Debido a la cantidad de elementos que instala y sobre todo, a su importancia, ya que algunos son de sistema, se recomienda encarecidamente que esta instalación se realice en un equipo lo más limpio posible. Lo mejor es que no hayas tenido versiones anteriores de otros lenguajes y sobre todo un equipo un poco con buenas prestaciones.

    Una vez instalada esta parte veremos que la parte de prerrequisitos queda deshabilitada y ya podemos acceder a la de la instalación. Vamos por fin a la instalación de VB.NET. Pulsamos en el enlace de la instalación y tras unos segundos se nos presentará la pantalla de instalación de .NET en la que debemos aceptar el contrato de licencia para usuario final. Finalmente obtendremos:

    Ahora debemos seleccionar sólo los componentes que nos interesen... Para empezar en las herramientas del lenguaje sólo dejaremos marcado Vb.NET:

    Los demás componentes podríamos deshabilitarlos porque no los vamos a necesitar en nuestro curso. Son elementos mucho más ambiciosos para el desarrollo empresarial que son más complejos. De momento bastante con comprender bien esta arquitectura y comenzar a programar con Vb.NET. Para los programadores de ASP: la opción ASP.NET se encuentra dentro de la opción "Componentes de servidor" y luego en "Desarrollo Web". En mi instalación voy a desactivar todas las opciones porque no las voy a utilizar ahora, siempre podremos acudir al este Cd de instalación para añadir componentes. Nos quedamos pues, sólo con Visual Basic .NET, si vemos la ocupación veremos que "sólo" se queda en unos 750 Mb de espacio. (Eso si, sin la ayuda todavía). Pulsamos en instalar y comenzará...

    Al cabo de unos minutos nos pedirá el siguiente CD:

    Hasta que por fin un mensaje nos avisará de que la instalación ha terminado (podemos ir tranquilamente a tomar un café mientras tanto...). Ahora nos queda la segunda parte que es la extensa documentación que como siempre es muy precisa y bien traducida. Para esto utilizaremos los dos cd marcados como "MSDN Library". Cuando nos parezca la pantalla inicial de instalación pulsaremos en la opción "Documentación del producto" que nos pedirá el Cd1 de MSDN:

    Una vez en marcha dispondremos de opciones para instalar la ayuda de todos los elementos de .NET:

    Pulsaremos en siguiente, aceptaremos el contrato de licencia y escribiremos si queremos un nombre de registro de instalación. Luego seleccionaremos la opción Personalizada para poder elegir los componentes que queremos instalar. Seleccionaremos "Documentación de VB.NET", lo demás son opciones del entorno que no utilizaremos en este curso pero que podríamos instalar mas adelante...

    Pulsamos continuar y ya tenemos lista la instalación... Aceptamos para que inicie y el programa instalará la ayuda indicada... si es necesario pedirá los otros dos cd con el resto de la información hasta que finalmente termine.

    Si todo es correcto por fin tenemos nuestro Visual Basic .NET instalado. Vamos a pasar ahora a realizar una rápida aplicación para ver que todo funciona e ir conociendo el entorno de desarrollo... No te preocupes si no entiendes alguna cosa, es más que nada para conocer de que partes se compone un programa, cómo escribir y por fin ejecutarlo...

    4. La primera aplicación con Vb.NET

    Extensión de los ficheros de código.

    En Visual Basic .NET a diferencia de lo que ocurría en las versiones anteriores de Visual Basic, sólo existe un tipo de fichero de código, el cual tiene la extensión .vb, en este tipo de fichero pueden coexistir distintos tipos de elementos, por ejemplo: un módulo de clase, un formulario, un módulo de código, un control, etc.; mientras que en las versiones anteriores de Visual Basic, cada uno de estos elementos tenían su propio tipo de fichero con su respectiva extensión. Como cometamos al principio no es necesario ningún conocimiento de anteriores versiones de Visual Basic pero iré comentando los cambios importantes para aquellos que ya conocían versiones anteriores y puedan ir viendo los cambios de esta nueva versión.

    Ejemplo de los ficheros de un proyecto:

    Para los antiguos programadores, esta tabla muestra la extensión que tienen los diferentes tipos de ficheros de VB.NET y su comparación con los de VB.NET:

    Recurso Visual Basic 6.0 Visual Basic .NET
    Formulario (Form) .frm .vb
    Módulo (Module) .bas .vb
    Módulo de clase (Class Module) .cls .vb

    Obviamente si hemos dicho que en Vb.NET todos los ficheros tienen la extensión .vb, los equivalentes de anteriores versiones cambiarán a esta extensión.

    Tipos de ejecutables.

    Con Visual Basic .NET podemos crear muchos tipos de proyectos pero los más importantes son los destinados a crear aplicaciones ejecutables, éstas pueden ser de dos tipos:

    • De consola, no gráfico, al estilo del viejo MS-DOS. Es decir se abrirá una ventana tipo MS-DOS donde se ejecuta un programa en modo texto.
    • Gráficos, como los que normalmente estamos acostumbrados a ver en Windows. Es decir, compuesta de formularios donde podremos interactuar con el programa.

    Existen otros tipos de aplicaciones que se pueden crear con Visual Basic .NET: aplicaciones ASP.NET, (realmente no es una aplicación o ejecutable, sino un compendio de distintos tipos de elementos...), servicios Web, servicios Windows, etc.

    4.1 La primera aplicación con Visual Basic .NET.

    Vamos cuanto antes a crear nuestra primera aplicación para conocer por fin el funcionamiento de .NET.

    El primer paso es iniciar el entorno de Visual Studio .NET, vamos al menú Inicio y seleccionamos Visual Studio .NET 2003 (en mi caso por la versión que he instalado). La primera pantalla que aparece por defecto nos muestra la "página de inicio" desde la cual pueden crearse nuevos proyectos o bien abrir alguno de los más recientemente abiertos:

    Para los conocedores de otros entornos podemos ver en la pantalla la disposición de los elementos que recuerda más al Visual C que la de Visual Basic. De hecho este es el primer obstáculo para los programadores de Visual Basic: el nuevo IDE o Entorno de desarrollo integrado, auque en cuanto lo conozcamos no será un obstáculo sino una imprescindible ayuda para desarrollar y depurar programas. Sigamos con nuestro primer programa... para esto pulsamos en la opción de "Nuevo Proyecto"

    Nos mostrará los diferentes tipos de proyectos que se pueden crear:

    Para empezar tampoco esta nada mal ¿no?. Vemos una buena cantidad de nuevos proyecto para crear... y eso que sólo hemos instalado el Visual Basic .NET. Si hubiésemos instalado los otros lenguajes tendríamos un buen número adicional de proyectos para crear. Bien, seleccionamos Visual Basic a la izquierda y a la derecha seleccionamos "Aplicación de consola"

    El objetivo de este ejemplo es crear una básica aplicación de consola que se ejecutará en una ventana MS-DOS en lugar del habitual Windows. De momento es mas sencillo para que creemos nuestro primer ejemplo...

    Especificaremos el directorio en el que se guardará el proyecto, así como el nombre del mismo, (creando un directorio con el nombre del proyecto indicado), dejamos el nombre que muestra por defecto : "ConsoleApplication1", pulsamos Aceptar y finalmente se creará el proyecto.

    Si nos fijamos en la pantalla central y en la derecha podemos ver varias cosas:

    Por una parte a la derecha vemos en el explorador de soluciones que ha creado un fichero llamado Module1.vb, con el código necesario para empezar a escribir. Vemos también que ha creado un "procedimiento" Sub Main, que se utilizará como punto de entrada de nuestro ejecutable, también ha creado una "definición" llamada Module Module1 con su respectivo End Module, que indica dónde termina la definición del módulo.

    Es decir parece que un proyecto de consola se compone de un fichero "module1.vb" en dentro de él las instrucciones de colocarán dentro de las etiquetas "Module Module1" y "End Module". Y dentro de estas etiquetas el programa principal se colocará dentro de las instrucciones "Sub Main" Mas adelante conoceremos el porqué de estos módulos y nombres...

    Nota : lo que estamos creando es una aplicación tipo consola, es decir, no se creará ninguna ventana gráfica, sino que el ejecutable que vamos a crear funciona desde una ventana de MS-DOS (o consola). Esto lo comprobaremos cuando ejecutemos el proyecto..

    Lo que queremos hacer en este ejemplo es un muy sencillo programa que diga "Hola mundo .NET", por tanto para mostrar un texto en la "consola" usaremos una función, método o instrucción, ... como veremos más tarde, todo esto es posible gracias a los assemblies o a las clases incluidas en el .NET Framework. De momento sigamos este ejemplo ...

    La función en cuestión es Console.Write y se usa de la siguiente forma:

    Console.Write("Hola mundo .NET"), es decir incluiremos dentro de paréntesis lo que queremos que se muestre en la consola, en este caso queremos mostrar un texto, el cual hay que incluirlo dentro de comillas dobles.

    Lo escribimos entre el Sub Main() y el End Sub. Comprobaremos que cuando escribimos Console y el punto, se mostrarán las funciones que Console pone a nuestra disposición, así como una pequeña ayuda, en modo de ToolTip, (ya conocido en otras versiones de Visual Basic).

    Bien, ya tenemos todo lo que necesitamos. Ahora tendremos que indicarle al "Entorno Integrado" (IDE) que compile el proyecto y lo ejecute, y después de compilarse el proyecto, se deberá mostrar el texto en una ventana de DOS (o consola). Una vez escrito pulsamos en el botón que se muestra en esta pantalla:

    Para verla correctamente añadiremos debajo una instrucción para que haga una pausa y podamos comprobar que el programa funciona:

    Que al ejecutarlo da como resultado:

    Al ejecutarse hemos visto una pantalla en modo texto con el mensaje que hemos escrito de "Hola Mundo .NET". Lo que hemos hecho ha sido ejecutar el programa desde nuestro entorno de desarrollo, para hacer el programa final tendríamos que compilarlo para generar el programa ejecutable, lógicamente con extensión .exe.

    Cómo escribir este programa

    Con lo que tenemos terminada nuestra primera y "útil" aplicación en MS-DOS realizada en .NET, (ya puedes presumir :-).

    5. Mas conceptos de Visual Basic .NET.

    Sigamos con mas conceptos básicos sobre .NET. Una aplicación .NET se compone como hemos dicho antes de uno o mas ensamblados, cada uno de los cuales estará formado por uno o mas archivos. La aplicación por tanto puede ser tan simple como un sólo archivo .EXE o un conjuntos de varios archivos de código y elementos externos.

    Las aplicaciones .NET se ejecutan en lo que se llama "dominio de la aplicación" que es como un espacio donde se ejecuta nuestra aplicación y está aislada del resto de las aplicaciones que se están ejecutando en Windows. Perfecto para la seguridad y para que un fallo de aplicación no afecte a los demás...

    Antes de continuar con otro sencillo ejemplo vamos a conocer un poco sobre el entorno de desarrollo de Visual Studio .NET, (que es obviamente el que utilizamos con Visual Basic .NET), para que podamos configurar algunos aspectos, por ejemplo para indicar cómo se comportará el compilador e intérprete sobre el código que escribamos o para configurar los ensamblados (assemblies) que se usarán en nuestras aplicaciones. (Recuerda que Visual Basic .NET usa una serie de librerías (de clases) con las funciones que necesitemos en cada momento...)

    Nota: Es muy importante seguir estos ejemplos para conocer un poco las tripas y nomenclatura de VB.NET, así que es obligatorio realizar una pausada lectura de esta parte del capítulo... luego me lo agradeceréis

    Sigamos, para poder mostrar un texto en la consola, necesitamos tener disponible la librería en la cual está declarada la clase Console, para que podamos acceder a las funciones que dicha clase pone a nuestra disposición, (por ejemplo Write o Read); en este caso la librería en la que está la clase Console es: System. System realmente es un Namespace o espacio de nombres, no es una librería o assembly. (Tranquilo, sigue leyendo)

    Luego añadiremos otras librerías para trabajar con bases de datos, gráficos, ... así cada una de ellas agrupa un tipo de funciones.

    ¿Que es un Namespace (o espacio de nombres)?

    "Un espacio de nombres es un esquema lógico de nombres para tipos en el que un nombre de tipo simple, como MiTipo, aparece precedido por un nombre jerárquico separado por puntos. [...]"

    Así es como lo definen en el eBook de .NET Framework de Microsoft. Pero mas claro... un Namespace es una forma de agrupar clases, funciones, tipos de datos, etc. que están relacionadas entre sí. Por ejemplo, entre los Namespaces que podemos encontrar en el .NET Framework encontramos uno con funciones relacionadas con Visual Basic: Microsoft.VisualBasic. Si te fijas, Microsoft y VisualBasic están separados por un punto, esto significa que Microsoft a su vez es un Namespace que contiene otros "espacios de nombres", tales como el mencionado VisualBasic, CSharp y Win32 con el cual podemos acceder a eventos o manipular el registro del sistema...

    Para saber que es lo que contiene un Namespace, simplemente escribe el nombre con un punto y te mostrará una lista desplegable con los miembros que pertenecen a dicho espacio de nombres. Haz la prueba y en el código escribe la palabra "Microsoft." (Con el punto al final), verás que se despliega los posibles Namespaces disponibles y si seguimos y escribimos, o seleccionamos VisualBasic con un punto al final, veremos otra vez los Namespaces de esta otra clase llamada VisualBasic.

    Pero de momento no te líes, simplemente que podemos utilizar como una especie de grupos de instrucciones y otros componentes añadiendo o utilizando "namespaces" a nuestros programas. De esta forma mantenemos los recursos de las aplicaciones en diferentes sitios reduciendo los conflictos.

    Por regla general se deberían agrupar en un Namespace funciones o clases que estén relacionadas entre sí. De esta forma, será más fácil saber que estamos trabajando con funciones relacionadas entre sí. Pero el que distintos espacios de nombres pertenezcan a un mismo Namespace no significa que todos estén dentro de la misma librería o assembly. Un Namespace puede estar repartido en varios assemblies o librerías. Por otro lado, un assembly, (o ensamblado), puede contener varios Namespaces.

    Hay espacios de nombres específicos por ejemplo para los gráficos y otros para trabajar con bases de datos, así los tenemos organizados de una forma mas cómoda para localizarlo y referirnos a ellos en el código.

    Pero de esto no debemos preocuparnos, ya que el IDE de Visual Studio .NET se encarga de "saber" en que assembly está el Namespace que necesitamos.

    Los Spacenames mas importantes, los de primer nivel y de los que luego "cuelgan" o pertenecen los demás son:

    • System. Contiene clases fundamentales y clases base que definen los valores y tipos de datos de referencia, eventos y controladores de eventos, interfaces, atributos y excepciones de procesamiento comúnmente utilizados.
    • Microsoft.VisualBasic. Contiene clases que admiten la compilación y generación de código mediante el lenguaje Basic .NET.

    Otra vez te ruego tranquilidad y tiempo, a medida que avancemos en .NET irás juntando todos estos conceptos.

    ¿Que es un assembly (o ensamblado)?

    "Los ensamblados componen la unidad fundamental de implementación, control de versiones, reutilización, ámbito de activación y permisos de seguridad en una aplicación basada en .NET. Los ensamblados adoptan la forma de un archivo ejecutable (.exe) o un archivo de biblioteca de vínculos dinámicos (.dll), y constituyen unidades de creación de .NET Framework. Proporcionan a Common Language Runtime la información que necesita para estar al corriente de las implementaciones de tipos. Un ensamblado puede entenderse como una colección de tipos y recursos que forman una unidad lógica de funcionalidad y que se generan para trabajar conjuntamente"

    Para que nos entendamos, podríamos decir que un assembly es una librería dinámica (DLL) o programa ejecutable en la cual pueden existir distintos espacios de nombres. Aunque esto es simplificar mucho, por ahora nos vale.

    Un ensamblado o assembly puede estar formado por varios ficheros DLLs y EXEs, pero lo más importante es que todos los ensamblados contienen un manifiesto (o manifest), gracias al cual se evitan muchos de los quebraderos de cabeza a los que Windows nos tiene acostumbrados, al menos en lo referente a las distintas versiones de las librerías y ejecutables. Este manifiesto es una tabla de contenido del Assembly que lo identifica y dice su versión y otros datos. Esta información elimina lo que en otras versiones se llamaba "infierno de las DLL" por los enormes problemas de versiones y conflictos que generaban.

    Por ejemplo, supongamos que tenemos una librería DLL que en su primera versión contenía X funciones. Al tiempo, se crea la segunda versión de dicha librería en la que se cambian algunas funciones y se añaden otras nuevas, para mejorar el rendimiento de las funciones contenidas en esa librería se usa otra DLL que es usada por algunas de las funciones contenidas en esa segunda versión. Esa otra librería puede ser una librería del sistema, la cual a su vez se actualiza con nueva funcionalidad y puede que dicha funcionalidad dependa a su vez de una tercera librería.

    Resulta que instalamos un programa que usa las últimas versiones de todas estas librerías. Todo va bien, el programa funciona a las mil maravillas y nosotros estamos muy satisfechos de ese programa que no se cuelga ni una sola vez... Ahora llega a nuestras manos otra aplicación que necesitamos instalar y la instalamos, pero resulta que esa aplicación usa la primera versión de nuestra famosa librería. Si el programa de instalación está bien hecho, no ocurrirá nada malo, ya que al descubrir que tenemos una versión más reciente de la librería, deja la que ya está instalada. Probamos el programa de todo funciona bien. Probamos el maravilloso programa anterior y también funciona bien. ¿Cual es el problema? Por ahora ninguno, pero espera...

    Después instalamos un programa que usa una de las librerías del sistema u otra que también usa nuestra "flamante" librería, pero ese programa se ha instalado de "mala manera", bien porque el programa de instalación sea malo o bien porque simplemente se ha instalado mal... como quiera que ha instalado una librería anterior a la que nuestros dos maravillosos ejecutables usan, se puede dar el caso de que ninguno de los dos programas funcionen correctamente... esto ocurrió cuando salió el Internet Explorer 4 y causó no pocos problemas... aunque también ha ocurrido con otros programas que no han tenido en cuenta a la hora de instalar que ya existe una versión más reciente de la librería. Por suerte, esto ya es menos común que hace unos años, sobre todo si los programas de instalación están creados con el Windows Installer o estamos usando el Windows 2000/XP.

    Pero es que .NET mejora aún esa "imposibilidad" de meter la pata ya que cada assembly contiene un manifiesto en el cual se indica:

    • Nombre y la versión del assembly
    • Si este assembly depende de otros ensamblados, con lo cual se indica hasta la versión de dichos ensamblados
    • Los tipos expuestos por el assembly (clases, etc.)
    • Permisos de seguridad para los distintos tipos contenidos en el assembly.
    • Datos del copyright, etc.

    Nuevamente hay que comentar que no hay que preocuparse mucho de esto, ya que es el propio .NET el que se encarga de que todo funcione correctamente (al menos a priori)

    La ventaja de los ensamblados es que "realmente" no necesitan de una instalación y un registro correcto en el registro del sistema de Windows, ya que es el "intérprete" de .NET el que se encarga de hacer las comprobaciones cuando tiene que hacerlas. Por tanto podríamos distribuir una aplicación sin necesidad de crear un programa de instalación. Pero, (¿por qué siempre hay un pero?), si la aplicación usa ensamblados compartidos, puede que sea necesario usar una instalación.

    Los ensamblados compartidos se pueden usar por varias aplicaciones diferentes y deben estar "debidamente" instalados en el directorio asignado por el propio .NET Framework.

    Ejemplo de ensamblados compartidos son los que definen las clases (tipos) usados por el propio .NET Framework.

    ¿Puedo utilizar otros lenguajes con .NET?

    Pues si, como hemos dicho antes el CLR, o el entorno de ejecución común admite por encima de él cualquier tipo de lenguaje. Actualmente esos son los aprobados:

    • VB .NET
    • C#
    • C ++
    • ASP.NET
    • Jscript.NET

    Pero hay otros muchos que están en camino y que podríamos utilizarlos con el mismo entorno y clases que los existentes:

    • Cobol
    • Pascal
    • Perl
    • Python
    • SmallTalk
    • ML
    • ...

    6. Bases de la POO

    En esta introducción general a .NET (tranquilo este capítulo puede ser un poco duro pero enseguida empezaremos con la base) debemos comentar algunos conceptos básicos de esta tecnología y que iremos ampliando a lo largo del curso. No van a ser explicaciones técnicas sino mas bien una toma de contacto de la filosofía .NET. Todo lo que trataremos en .NET se basa en clases y objetos. Es un concepto muy sencillo pero que pudiera desconcertar al principio

    Veamos que son esos conceptos y la base de la programación orientada a objetos

    6.1 Las clases

    Todo lo que tiene .NET Framework son clases. Una clase no es ni más ni menos que código

    Cuando definimos una clase, realmente estamos definiendo dos cosas diferentes: los datos que dicha clase puede manipular o contener y la forma de acceder a esos datos.

    Por ejemplo, si tenemos una clase de tipo Cliente, por un lado tendremos los datos de dicho cliente y por otro la forma de acceder o modificar esos datos. En el primer caso, los datos del Cliente, como por ejemplo el nombre, domicilio etc., estarán representados por una serie de campos o propiedades, mientras que la forma de modificar o acceder a esa información del Cliente se hará por medio de métodos. Esas propiedades o características y las acciones a realizar son las que definen a una clase.

    Un coche tiene unas propiedades: color, marca, modelo, ... y unos métodos para trabajar con él: arrancar, frenar, cambiar de marcha. La definición de estas partes es lo que llamamos clase, sólo la definición, para trabajar con el coche lo veremos luego. Luego es algo muy sencillo que no debe parecernos ni complejo, ni técnico. Los antiguos programadores de VB son los que menos acostumbrados están a trabajar con clases porque se podían prescindir de ellas pero en VB.NET no. Por eso es una ventaja para los novatos porque aprenderéis de 0 los conceptos y os quedarán mas claros.

    6.2 Los Objetos

    Por un lado tenemos una clase que es la que define un "algo" con lo que podemos trabajar. Pero para que ese "algo" no sea un "nada", tendremos que poder convertirlo en "algo tangible", es decir, tendremos que tener la posibilidad de que exista. Aquí es cuando entran en juego los objetos, ya que un objeto es una clase que tiene información real. Por fin podemos crear un coche del cual ya tenemos su definición en la clase Coche

    Digamos que la clase es la "plantilla" a partir de la cual podemos crear un objeto en la memoria. Por ejemplo, podemos tener varios objetos del tipo Cliente, uno por cada cliente que tengamos en nuestra cartera de clientes, pero la clase sólo será una.

    En nuestros formularios: tenemos 10 botones y ... han sido creados a partir de la clase "Botón". Otro ejemplo es que tenemos una clase que se llama "Coches" donde describe que es y cómo funciona un coche pues bien, podemos crear diferentes coches a partir de la clase "Coches", cada uno puede tener sus propias propiedades: color, ... pero funcionan todos igual

    ¿Quedan claros estos dos conceptos? Vale pues ahora sólo comentar que existen objetos de mas categoría que otros y que esta relación se llama jerarquía de objetos. Por ejemplo un objeto Coche puede tener a su vez varios objetos mas pequeños: motor, carrocería, ...

    En .NET tenemos entonces varias Clases principales y debajo de ellas todas las instrucciones del lenguaje. Por ejemplo habrá una clase para los formularios (ventanas de Windows) que a su vez tendrán otras clases dentro: botones, textos, imágenes. Otra clase sería la colección de funciones matemáticas que podemos utilizar. Para que hagas una idea, esta es la jerarquía de objetos para desarrollo en Web:


    Desarrollo - Soluciones Cabezera Animada


    Ver Estadisticas