09
Sep
09

Crear una Librería de Clases (DLL)

Bueno, luego de una larga ausencia, vuelvo para colaborar con nuevos contenidos, he de comenzar con esto:

Una DLL es una librería de clases, es decir, una colección de procedimientos, funciones y/o propiedades almacenadas en un archivo .dll que pueden ser llamadas en cualquier parte de nuestras soluciones para no tener que repetir el código del procedimiento cada vez que lo necesitemos utilizar, buena forma de cumplir con en Encapsulamiento y la Reutilización de Código, dos de las principales características de la P.O.O. y plataforma .NET.

A continuación mostraré de la manera más sencilla, como crear una librería de clases y hacer que nuestro proyecto en Visual Basic .Net 2005 pueda trabajar con ella sin ningún problema…

El primer paso para esto es, por supuesto, tener un proyecto Windows Application con el que conectaremos nuestra DLL, en mi caso he de trabajar con el Sistema de Control Clínico que hice hace algún tiempo, pero bueno, dejemos de lado la chachara….

Esta es la vista del explorador de soluciones en el que se puede ver que únicamente existe el proyecto de windows application:

Explorador de soluciones 1

Dentro de la solución, agregaremos un nuevo proyecto:

Agregar nuevo proyecto

Elegiremos un nuevo proyecto de tipo “Biblioteca de Clases”:

Elegir el proyecto y asignar el nombre

He marcado el área de nombre para recordar cambiarlo, porque a veces simplemente te vas con el nombre que el sistema asigna y no siempre es bueno, cuando los proyectos se vuelven grandes puede haber confusiones, aunque siempre se puede cambiar el nombre despues de creado…

Una vez creado el nuevo proyecto podemos verlo así en el explorador de soluciones:

Explorador de soluciones con los dos proyectos en la solución

Una vez creado el proyecto lo que haremos es crear la respectiva referencia entre el proyecto WindowsApplication y la Biblioteca de Clases, la referencia permite que se pueda instanciar como un espacio de nombre a la dll, de forma que en cualquier parte del proyecto se pueda importar el espacio de nombre y utilizar los procedimientos creados en las clases que contiene… la referencia se hace de la siguiente forma: (ojo que es en 2005, en versiones anteriores se hace de manera distinta, y el 2008, pues no me lo he pillado en español… XD): “Notése que la referencia se crea en el proyecto WindowsApplication para que este tenga acceso a la Bibiloteca de Clases, si se hace al revés, simplemente no funcionará”

Agregar referencia de nuestra DLL en el proyecto WindowsApplication

Al hacer click en Agregar Referencia en el proyecto WindowsApplication, nos saldrá esta ventanita, en la que hemos de seleccionar la pestaña “Proyectos” para que busque en los proyectos de nuestra solución, nos muestra el proyecto que acabamos de crear y le damos Aceptar.

Agregar referencia

Una vez creada la referencia al proyecto, procederemos a trabajar en la “Clase” dentro de él,  aqui escribiremos todos los procedimientos, funciones o propiedades que necesitemos usar, en mi caso, he colocado las funciones que trabajan con la base de datos, y que ejecutan tareas como Recuperar, Insertar, Actualizar y Eliminar Datos, ya que son funciones que utilizo muy a menudo en casi todo el sistema y que no voy a estar escribiendo las mismas veinte lineas a cada rato….

Procedimientos de la clase

una vez creadas nuestras funciones en la clase de nuestra librería (yo he creado solo cuatro y uno sobrecargado, eso sí, hay que declararlas públicas para que puedan ser llamadas desde el otro proyecto, creo que no tengo que explicar eso), podremos utilizarlas por medio de la referencia que creamos.

Vista del procedimiento aplicado en un formulario

Aqui esta la vista de uno de los formularios dl proyecto WindowsApplication, la forma de importar la Dll con la referencia hecha es la siguiente:

  • fuera de la clase, (en la primera linea), llamas la librería con la línea Imports Cclin01pro.Clsproc
    Donde: “Cclin01pro” es el proyecto de Biblioreca de Clases, “Clsproc” es la clase de la biblioteca a la que haremos referencia.
  • Declaramos, dentro de la clase una instancia de la biblioteca que acabamos de importar:
    Dim Cclinpro as new Cclin01pro.clsproc
    Esto nos permitirá llamar mas fácilmente las funciones que estén dentro de la clase Clspro.
  • La función que voy a llamar es BuscaDatos, pide varios parámetros para poder hacer la consulta a la base de datos, y el resultado de la consulta lo devuelve en  un objeto DataSet, por lo que para poder llamarlo debo hacerlo con un objeto DataSet en el cual va a depositar el resultado de la consulta:
    Ds = Me.Cclinpro.BuscarDatos(……Parametros…..)
    Hay que recordar que: “Los nueves se casan con los nueves, los cuatros con los cuatros, los sietes con los sietes“, no se puede igualar un dos con un nueve, por lo que para poder llamar esta función de tipo DataSet, declaré arriba un DataSet llamado “Ds” porque ahi se depositará el resultado de la consulta que viene en ese tipo de objeto.

Bueno, ahora solo queda disponer a vuestra voluntad de los datos devueltos por la consulta, y utilizar este procedimiento cuantas veces querais dentro de nuestro formulario, ojo que hay que hacer los dos primeros pasos en cada formulario que vayan a ocupar la clase y sus funciones y/o pocedimientos.

Como lo he dicho al principio, esta es la forma mas simple de crear y utilizar DLL, esto significa que existen cientos de formas de hacerlo, el cielo es el límite y solo hay que poner Alas en la Mente….


4 Responses to “Crear una Librería de Clases (DLL)”


  1. 1 Hernan
    febrero 12, 2010 a las 9:19 pm

    Hola, te hago una pregunta sobre una biblioteca que quiero crear. Estoy intentando dentro de la biblioteca tener carpetas por ejemplo Entidades y ahi dentro las clases respectivas. El tema es que cuando hago la referencia desde un proyecto web no puedo acceder a las clases que estan en dicha carpeta. Seria algo asi:

    “Biblioteca”
    Patrimonio.Lib
    ->carpeta Entidades
    ->Bien.cs
    ->Cuenta.cs
    ->etc.

    “Proyecto web”
    pongo Using Patrimonio.Lib
    pero no puedo acceder a Entidades para instanciar la clase Bien.

    Cualquier ayuda que me puedas dar te lo agredecere.

    Saludos, Hernan

    • 2 Hernan
      febrero 12, 2010 a las 9:59 pm

      Bueno aviso que encontre la solucion, y era tan tonta que me da un poco de verguenza y bronca por haber perdido algun tiempo. No estaba incluyendo los modificadores de acceso en las clases solo agrege public delante de Bienes y demas clases y listo😦

      Saludos, Hernan.

  2. 3 Yorugua
    febrero 18, 2010 a las 10:27 pm

    Genial!
    Me sirvió muchísimo!!
    Magistral el tutorial!!!

    Quiero decir que
    al practicar lo que vos enseñaste,
    a mi me apareció lo siguiente:

    “The Target Framework version for project “Dominio” is higher than the current proyect Target Framework version. Would you like to add this reference to your proyect anyway?”

    Yo le di al aceptar,y ta…
    …por ahora todo marcha fenómeno!!😀

    Espero
    que estés más que bien!!

    Abrazos desde
    la latitud 30° 35’

    P.D.: Utilizo V.S. 2008,
    (y “Dominio” es la
    biblioteca de clases que cree).

  3. marzo 22, 2010 a las 8:09 pm

    me hace flatas aber quien me puede ayudar con la creacion de una biblioteca en la herramienta python para la creacion de script en blender
    gracias


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: