Este documento presenta información sobre componentes y librerías en programación. Explica que una librería es un conjunto de código que implementa funciones y comportamientos con una interfaz definida para ser usada por otros programas. Describe dos tipos de librerías: estáticas y dinámicas. También presenta pasos para crear una librería dinámica (DLL) en C# y Visual Studio.
Topicos Avanzados de Programacion - Unidad 3 componentes y librerias
1. 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
2. Competencia: Diseñar e implementar componentes y librerías.
TÓPICOS AVANZADOS DE PROGRAMACIÓN
3. ¿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.
4. 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.
5. 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.
6. 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
7. • 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
8. • 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
9. 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
10. 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
11. • 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
12. • Windows incluye muchos archivos DLL que son usados por otros
programas (la mayoría en la carpeta c:windowssystem). 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
13. 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:windowssystem 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
14. 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
15. 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:windowssystem 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
16. 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
17. 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
18. 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
19. 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
20. • 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
21. • Se creará el código default de la DLL
• Crear estructura DLL (libre
dependiendo de la aplicación)
TÓPICOS AVANZADOS DE PROGRAMACIÓN
22. 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
23. 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
25. 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
26. 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.