Blog de Página Web Leon

Crear una DLL que consuma un WebService en C#

Crear una biblioteca de enlace dinámico (DLL) es muy adecuado para incorporar nuestra funcionalidad a diferentes proyectos. Te has de preguntar ¿Porqué enredarnos tanto creando una DLL, y agregándola a una aplicación para consumir un WebService si desde la misma aplicación puedo consumirlo? la respuesta es que no todos los lenguajes de programación soportan los WebService, por ejemplo cobol es un lenguaje muy amigable para negocios no lo soporta pero si es posible añadirle referencias como DLL’s, de ésta manera, indirectamente COBOL podría consumir un WebService. Éste ejemplo también ilustra la creación de una DLL en C#.

En resumen, haremos una aplicación que use una DLL y que ésta consuma un WebService:

Aplicación – DLL – WebService

Creando nuestra DLL

  1. Abrir nuestro Visual Studio 2010
  2. Ir a Archivo – Nuevo – Proyecto
  3. En en cuadro de diálogo que aparece, ubicarnos en Plantillas instaladas en la parte izquierda, en los items, seleccionar Otros Lenguajes dentro de éste, ir a Visual C# y clic en el item Windows
  4. En la parte central del cuadro de diálogo seleccionar en el combo .Net Framework 4 y más abajo dar clic en el icono Biblioteca de clases Visual C#
  5. En la etiqueta Nombre: escribir el título de nuestra dll, pondremos PruebaDLL y damos clic en aceptar
  6. Veremos que nos envía al código de la Class1.cs
  7. Vamos al Explorador de soluciones, donde dice PruebaDLL demos un clic derecho para desplegar un menú

    explorador de soluciones VS2010 estructura

    Fig. 1.1 explorador de soluciones VS2010 estructura

  8. De ese menú busquemos el item Agregar Referencia de servicio…
  9. Aparece un cuadro de diálogo, en el botón Avanzadas… de la parte inferior izquierda, demos un clic
  10. Aparece otro cuadro de diálogo, demos un clic en el botón Agregar referencia web... que aparece en la parte inferior izquierda
  11. Veremos otro cuadro de diálogo. En la caja de texto donde dice Dirección URL: escribamos la ruta del webservice que vamos a consumirm, en la imagen 1.2 vemos la ruta sin embargo nos mostrará hasta el método, escribamos solamente hasta miServicio.asmx y demos un clic en el botón verde con flecha blanca. Si no tienes noción de cómo crear un web service, haz clic aquí para realizarlo:

    URL del servicio web

    Fig. 1.2 URL del servicio web

  12. Sin en la parte inferior vemos el nombre del webservice es porque se añadió exitosamente
  13. Busquemos la etiqueta Nombre de referencia web del lado derecho y en la caja de texto cambiemos el nombre localhost por referenciaWebService y demos un clic en el botón Agregar referencia
  14. Veremos que en el explorador de soluciones aparece nuestra referencia web:

    explorador de soluciones VS2010 nueva referencia web

    Fig. 1.3 explorador de soluciones VS2010 nueva referencia web

  15. Volvamos a la pantalla del código de la clase y veremos lo siguiente:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace PruebaDLL
    {
        public class Class1
        {
        }
    }
    
  16. Cambiemos el nombre de la clase de Class1 a ConexionAlServicio y agreguemos algo de  código. Deberá verse así:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using PruebaDLL.referenciaWebService;
    
    namespace PruebaDLL
    {
        public class ConexionAlServicio
        {
            public Respuesta ingresarDatos(double a, double b, double c)
            {
                // creamos la instancia para enviar parámetros
                WebService servicio = new WebService();
    
                // creamos la instancia para recibir respuestas
                Respuesta res = new Respuesta();
    
                // enviamos los datos y recibimos respuesta
                res = servicio.ejecutarEcuacion(a, b, c);
    
                // devolvemos el resultado de los cálculos
                return res;
            }
        }
    }
  17. Demos un clic en el icono guardar todo (Cntl + Mayus + S)
  18. En el explorador de soluciones, en el primer item vamos a darle un clic derecho y del menú que veremos demos un clic en Generar solución
  19. Ahora vayamos a la carpeta donde guardamos nuestra solución. Yo la he guardado en el Desktop (Escritorio) y seguimos esta ruta:
    C:\Users\Administrator\Desktop\PruebaDLL\PruebaDLL\PruebaDLL\bin\Debug\
  20. Ahi veremos la dll que generamosy tendremos el componente: PruebaDLL.dll este ya lo podremos usar en otras aplicaciones añadiéndola como referencia.

Probando nuestra DLL

Para probar nuestra biblioteca tendremos que hacer una nueva solución. Haremos una aplicación para escritorio y aquí te decimos cómo:

  1. Abre tu Visual Studio 2010
  2. Ve al menú Archivo y elige Nuevo y posteriormente Proyecto
  3. Aparecerá un cuadro de diálogo, del lado izquierdo aparecen Plantillas instaladas, busca Otros Lenguajes – Visual C# – Windows
  4. En la parte central del cuadro de diáologo selecciona el icono Aplicación de Windows Forms
  5. En nombre, vamos a colocar PantallaDePruebaDLL y clic en aceptar
  6. Lo primero que veremos, es una ventana de diseño, vamos a agregar 3 cajas de texto, 2 etiquetas y un botón. Procura que tu diseño quede como el de la imagen:

    Ventana de diseño de la forma VS2010

    Fig. 1.4 Ventana de diseño de la forma VS2010

  7. Ahora agregaremos la referencia. Vamos al explorador de soluciones y en el item que dice PantallaDePruebaDLL damos un clic derecho y del menú seleccionamos Agregar referencia…
  8. Veremos un cuadro de diálogo, en la pestaña Examinar y busquemos la ruta donde se encuentra nuestra DLL, para el ejemplo la ruta está en: C:\Users\Administrator\Desktop\PruebaDLL\PruebaDLL\PruebaDLL\bin\Debug\ y la DLL se llama PruebaDLL.dll la seleccionamos y damos un clic en aceptar.
  9. Nuestra referencia ha sido agregada al proyecto y podremos verla en el explorador de soluciones

    referencia dll agregada a nuestro proyecto

    Fig. 1.5 referencia dll agregada a nuestro proyecto

  10. Demos doble clic en el botón aceptar que añadimos a la ventana de nuestra vista diseño de formulario. Nos desplegará el código fuente de ésta forma:
  11. using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace PantallaDePruebaDLL
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
    
            }
        }
    }
    
  12. Cambiamos el código de la siguiente manera:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using PruebaDLL;
    
    namespace PantallaDePruebaDLL
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                // creamos una variable de instancia  
                // hacia la clase principal de la DLL
                ConexionAlServicio enlace = new ConexionAlServicio();
    
                // capturamos en variables los datos
                // de las cajas de texto
                string valA = textBox1.Text;
                string valB = textBox2.Text;
                string valC = textBox3.Text;
    
                // calculamos el resultado del primer valor de X
                label1.Text = enlace.ingresarDatos(Convert.ToDouble(valA),
                    Convert.ToDouble(valB),
                    Convert.ToDouble(valC)).valorX1.ToString();
    
                // calculamos el resultado del segundo valor de X
                label2.Text = enlace.ingresarDatos(Convert.ToDouble(valA),
                    Convert.ToDouble(valB),
                    Convert.ToDouble(valC)).valorX2.ToString();
            }
        }
    }
    
    
  13. Ejecutamos nuestra solución, pulsamos la tecla F5 para correrlo, aparecerá la ventana que diseñamos.
  14. Ingresamos los valores que vemos en la imagen, pulsamos el botón Aceptar y los resultados aparecerán en las etiquetas, tal y como se muestra en la imagen

    Ventana de pruebas

    Fig. 1.6 Ventana de pruebas

Dejar un comentario