Topicos Avanzados de Programacion - Unidad 3 componentes y librerias

26
Ingeniería en Sistemas Computacionales Tópicos Avanzados de Programación Unidad III: Componentes y Librerías Este material está desarrollado para la asignatura Tópicos Avanzados de Programación, de la carrera de Ingeniería en Sistemas Computacionales, plan de estudios ISIC-2010-224 TÓPICOS AVANZADOS DE PROGRAMACIÓN

Transcript of Topicos Avanzados de Programacion - Unidad 3 componentes y librerias

Page 1: Topicos Avanzados de Programacion - Unidad 3 componentes y librerias

Ingeniería en Sistemas Computacionales

Tópicos Avanzados de ProgramaciónUnidad III: Componentes y Librerías

Este material está desarrollado para la asignatura Tópicos Avanzados de Programación, de la carrera de Ingeniería en Sistemas Computacionales, plan de estudios ISIC-2010-224

TÓPICOS AVANZADOS DE PROGRAMACIÓN

Page 2: Topicos Avanzados de Programacion - Unidad 3 componentes y librerias

Competencia: Diseñar e implementar componentes y librerías.

TÓPICOS AVANZADOS DE PROGRAMACIÓN

Page 3: Topicos Avanzados de Programacion - Unidad 3 componentes y librerias

¿Qué es una biblioteca o librería?

TÓPICOS AVANZADOS DE PROGRAMACIÓN

En informática, una biblioteca (del inglés library) es un conjunto de implementaciones de comportamiento, escritas para un lenguaje de programación, que tienen una interfaz bien definida para el comportamiento que se invoca.

A diferencia de un programa ejecutable, el comportamiento que implementa una biblioteca no espera ser utilizada de forma autónoma (un programa sí: tiene un punto de entrada principal), sino que su fin es ser utilizada por otros programas, independientes y de forma simultánea.

Page 4: Topicos Avanzados de Programacion - Unidad 3 componentes y librerias

TÓPICOS AVANZADOS DE PROGRAMACIÓN

Por otra parte, el comportamiento de una biblioteca no tiene porqué diferenciarse en demasía del que pudiera especificarse en un programa. Es más, unas bibliotecas pueden requerir de otras para funcionar, pues el comportamiento que definen refina, o altera, el comportamiento de la biblioteca original; o bien la hace disponible para otra tecnología o lenguaje de programación.

Page 5: Topicos Avanzados de Programacion - Unidad 3 componentes y librerias

TÓPICOS AVANZADOS DE PROGRAMACIÓN

• La mayoría de los sistemas operativos modernos proporcionan bibliotecas que implementan los servicios del sistema. De esta manera, estos servicios se han convertido en una "materia prima" que cualquier aplicación moderna espera que el sistema operativo ofrezca.

• Como tal, la mayor parte del código utilizado por las aplicaciones modernas se ofrece en estas bibliotecas.

Page 6: Topicos Avanzados de Programacion - Unidad 3 componentes y librerias

Tipos de bibliotecas

Bibliotecas Estáticas: Históricamente, las bibliotecas sólo podían ser estáticas. Una biblioteca estática, también conocido como archivo es un fichero contenedor con varios archivos de código objeto empaquetados, que en el proceso de enlazado durante la compilación serán copiados y relocalizados (si es necesario) en el archivo ejecutable final, junto con el resto de archivos de código objeto. Este proceso, y el archivo ejecutable, se conoce como una construcción estática de la aplicación objetivo.

TÓPICOS AVANZADOS DE PROGRAMACIÓN

Page 7: Topicos Avanzados de Programacion - Unidad 3 componentes y librerias

• En este caso, la biblioteca actúa simplemente como un recipiente para archivos de código objeto que no se diferencian (más que semánticamente) de los archivos objeto intermedios producidos durante la etapa previa de compilación del programa.

TÓPICOS AVANZADOS DE PROGRAMACIÓN

Page 8: Topicos Avanzados de Programacion - Unidad 3 componentes y librerias

• Bibliotecas dinámicas: Las bibliotecas dinámicas, vinculadas dinámicamente, o de vínculos dinámicos son ficheros que contienen código objeto construido de forma independiente a su ubicación de tal modo que están preparadas para poder ser requeridas y cargadas en tiempo de ejecución por cualquier programa, en lugar de tener que ser enlazadas, previamente, en tiempo de compilación. • Por tanto, han de estar disponibles como ficheros

independientes al programa ejecutable (generalmente en directorios del sistema).

TÓPICOS AVANZADOS DE PROGRAMACIÓN

Page 9: Topicos Avanzados de Programacion - Unidad 3 componentes y librerias

Un archivo DLL (Dynamic Library Link) es un módulo componente de un programa que ejecuta alguna función. Estos archivos DLL son muy útiles, pero también suelen ser causa de errores en Windows.

Los archivos DLL ejecutan acciones o rutinas de uso frecuente en Windows, y un mismo archivo DLL puede ser usado por varios programas al mismo tiempo (como el Kernel32.dll). Por ejemplo el procesador de palabras, la hoja de cálculo y otros programas pueden usar un mismo archivo DLL para desplegar el cuadro diálogo Abrir, cada vez que usted usa el comando Abrir.

TÓPICOS AVANZADOS DE PROGRAMACIÓN

Page 10: Topicos Avanzados de Programacion - Unidad 3 componentes y librerias

Gracias a ese esquema modular, hay muchas funciones que los creadores de software no tienen que incluir en sus programas; cuando un programa necesita enviar un documento a la impresora, simplemente llama el archivo DLL respectivo (que ya Windows instaló) para que este cargue y ejecute la tarea. De esa forma, los programas son más pequeños y se ahorra espacio en el disco duro.

TÓPICOS AVANZADOS DE PROGRAMACIÓN

Page 11: Topicos Avanzados de Programacion - Unidad 3 componentes y librerias

• El hecho de que estos módulos de rutinas (Archivos DLL) no sean parte de programas, sino que se guardan como archivos independientes, también optimiza el uso de la memoria RAM.

• Un DLL se carga en la memoria RAM y se ejecuta únicamente cuando un programa lo llama para que realice una función, mientras que otros módulos de rutinas que sí hacen parte del programa permanecen cargados en la memoria mientras trabaja con un programa.

TÓPICOS AVANZADOS DE PROGRAMACIÓN

Page 12: Topicos Avanzados de Programacion - Unidad 3 componentes y librerias

• Windows incluye muchos archivos DLL que son usados por otros programas (la mayoría en la carpeta c:\windows\system). Pero algunos programas también instalan sus propios archivos DLL (y generalmente los colocan en la carpeta del disco duro en la que está guardado dicho programa).

TÓPICOS AVANZADOS DE PROGRAMACIÓN

Page 13: Topicos Avanzados de Programacion - Unidad 3 componentes y librerias

Observaciones en el manejo de DLL

• Como diferentes programas deben compartir los mismo DLL, si algunos programas no respetan ciertas reglas del juego se pueden producir errores.

• A veces uno instala programas que colocan una versión vieja de un archivo DLL en la carpeta c:\windows\system y remplazan -sin avisar- la versión más reciente del mismo DLL. Al hacer eso, es posible que se produzcan fallas en los programas que usaban la versión más reciente del DLL;

TÓPICOS AVANZADOS DE PROGRAMACIÓN

Page 14: Topicos Avanzados de Programacion - Unidad 3 componentes y librerias

Observaciones en el manejo de DLL

Nota: En Windows XP no es posible reemplazar un archivo dll del sistema, ya que este se dará cuenta y automáticamente copiara el DLL correcto de su base de datos, Windows XP se protege de esta manera para evitar conflictos.

No todos los archivos DLL tienen extensión .dll; también hay archivos del mismo tipo con extensiones .ocx, .exe, .drv, .vxd, etc.

TÓPICOS AVANZADOS DE PROGRAMACIÓN

Page 15: Topicos Avanzados de Programacion - Unidad 3 componentes y librerias

Cuando Windows le muestre un mensaje de error que dice que le falta un DLL:

• Anote el nombre exacto del archivo (incluyendo la extensión), • Busque el archivo en cualquiera de los sitios de Microsoft o del

software en cuestión, • Descárguelo y cópielo en la carpeta en la que lo está buscando el

programa que generó el mensaje de error (probablemente c:\windows\system o la carpeta en la que está almacenado el programa).

• Pruebe su aplicación de nuevo en el punto donde ocurrió el error.

TÓPICOS AVANZADOS DE PROGRAMACIÓN

Page 16: Topicos Avanzados de Programacion - Unidad 3 componentes y librerias

Tenga en cuenta que puede haber versiones diferentes de Archivos DLL, pero con un nombre idéntico. Se recomienda no remplazar un DLL por una versión más vieja (para saber que versión tiene un DLL, busque el archivo, dé clic derecho sobre él, seleccione propiedades y dé clic en la pestaña Versión).

Lo mejor es que siempre guarde en un dispositivo extraíble o alguna parte de sus disco duro el DLL que va a reemplazar (incluso aunque sea de una versión más vieja). Uno nunca sabe qué programa lo pueda necesitar.

TÓPICOS AVANZADOS DE PROGRAMACIÓN

Page 17: Topicos Avanzados de Programacion - Unidad 3 componentes y librerias

Windows File Protection [WFP]

Windows FIle Protection (WFP) protege los archivos DLL del sistema de ser actualizadas o borradas por agentes no autorizados. Las aplicaciones no pueden sustituir las DLLs del sistema. Únicamente los paquetes de actualización del sistema operativo como los SP (Service Packs) pueden hacer esto.

Los archivos DLL del sistema que pueden ser únicamente actualizadas por los Service Pack (SP) se denominan DLLs protegidas. Hay aproximadamente 2800 DLLs protegidas (en Windows XP).

TÓPICOS AVANZADOS DE PROGRAMACIÓN

Page 18: Topicos Avanzados de Programacion - Unidad 3 componentes y librerias

Windows File Protection [WFP]

Si intentamos copiar un archivo DLL idéntico a uno protegido en el directorio del sistema, el reemplazo del archivo DLL, aparentemente, parecerá que es correcta y no veremos ningún mensaje de error. Pero Windows XP recuperarán el archivo DLL recientemente copiado con el archivo DLL original silenciosamente.

WFP elimina completamente los errores de los archivos DLL y además minimiza los problemas causados por instalación y/o actualización de aplicaciones.

TÓPICOS AVANZADOS DE PROGRAMACIÓN

Page 19: Topicos Avanzados de Programacion - Unidad 3 componentes y librerias

Pasos para crear una DLL (librería dinámica)

• Inicie Visual Studio.

• En el menú Archivo, elija Nuevo y haga clic en Proyecto.

• En el cuadro de diálogo Nuevo proyecto, en el panel Tipos de proyecto, asegúrese de haber seleccionado Windows.

TÓPICOS AVANZADOS DE PROGRAMACIÓN

Page 20: Topicos Avanzados de Programacion - Unidad 3 componentes y librerias

• En el panel Plantillas, seleccione Aplicación de consola.

• En el cuadro Nombre, escriba EjemploDLL y, a continuación, haga clic en Aceptar. Se crea el nuevo proyecto.

TÓPICOS AVANZADOS DE PROGRAMACIÓN

Page 21: Topicos Avanzados de Programacion - Unidad 3 componentes y librerias

• Se creará el código default de la DLL

• Crear estructura DLL (libre dependiendo de la aplicación)

TÓPICOS AVANZADOS DE PROGRAMACIÓN

Page 22: Topicos Avanzados de Programacion - Unidad 3 componentes y librerias

Crear un proyecto independiente (libre dependiendo de la necesidad)

• Lo siguiente será crear un proyecto independiente, pero en el que necesitaremos utilizar la Dll que hemos creado. En este caso un proyecto básico del tipo Windows Forms, o bien un proyecto de consola

TÓPICOS AVANZADOS DE PROGRAMACIÓN

Page 23: Topicos Avanzados de Programacion - Unidad 3 componentes y librerias

Referenciar nuestra Dll (registrar)• Para poder utilizar nuestra Dll, es preciso

referenciarla, por lo que iremos a Referencias y añadiremos una nueva Referencia (que no será System, ni Com), si no que iremos a buscarla mediante el browser.

TÓPICOS AVANZADOS DE PROGRAMACIÓN

Page 24: Topicos Avanzados de Programacion - Unidad 3 componentes y librerias

TÓPICOS AVANZADOS DE PROGRAMACIÓN

Page 25: Topicos Avanzados de Programacion - Unidad 3 componentes y librerias

Ejercicio: Crear biblioteca dinámica que contenga las 4 operaciones matemáticas básicas en números enteros, dicha biblioteca deberá ser referenciada a la aplicación de CALCULADORA que se hizo en la segunda unidad de esta materia, por lo que cada una de esas operaciones deberá realizarse desde la biblioteca a partir de ahora.

TÓPICOS AVANZADOS DE PROGRAMACIÓN

Page 26: Topicos Avanzados de Programacion - Unidad 3 componentes y librerias

Proyecto; Crear una aplicación de agenda que contenga los siguientes campos:• Nombre:• Teléfono:• Fecha de Nacimiento:• Red social:

Adicionalmente crear una librería con las siguientes características:• Pantalla de login al sistema: debe aceptar usuario y clave.• El usuario y clave puede validarse ya sea por medio de un archivo de texto o

por medio de arreglos.• La clave debe contener al menos una letra minúscula, una letra mayúscula, un

número, y un carácter especial.

TÓPICOS AVANZADOS DE PROGRAMACIÓN

La forma de acceder a la agenda es por medio de la pantalla de login al sistema que debe ser

llamada desde la librería creada previamente.