Home :: Web :: net :: Consumiendo un servicio WCF
 
WCF_Pic_1

Consumiendo un servicio WCF

jul 22, 2010 en net,Productividad por Victor Parasi

En el post anterior vimos como implementar un servicio WCF. Ahora aprenderemos a consumirlo desde una sencilla aplicación consola en C#.

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

En el post anterior, vimos como crear un proyecto del tipo WCF, donde exponíamos en la Web, una serie de operaciones definidas por un contrato dentro de un proveedor y un consumidor.

Mi objetivo en este post es ayudarte a consumir este servicio, desde una simple aplicación del tipo consola para que veas lo fácil que es.

Antes de empezar te diré que voy a trabajar sobre la solución anterior, agregando a ésta los proyectos que voy a ir mencionando.

Paso 1. Crear un WCF Service Application

Luego de abrir la solución anterior, con el servicio definido, vamos a adicionar un WCF Service Application.

image

Esto agregará a la solución una aplicación, con dos clases por defecto, las cuales deberás eliminar. Mira la siguiente figura.

image

image 

Luego de eliminado los dos archivos, voy a renombrar Service1.svc por MiServicio.svc. De forma que el proyecto quede de la siguiente forma:

image

Paso 2. Referenciar al WCFServiceLibrary creado

Recuerda que en el post anterior, creamos el servicio en un WCFServiceLibrary, por lo que ahora, en el proyecto que acabamos de agregar en el paso anterior, vamos a referenciarlo. Recuerda que basta con dar clic derecho del mouse sobre el proyecto WCF Service Application y pulsar Add Reference.

En la pantalla que aparece, escogemos el tab de Proyects y seleccionamos el proyecto que contiene nuestro servicio definido.

Paso 3. Apuntando al servicio correcto

Luego de agregada la referencia, vamos a indicarle a nuestro proyecto WCF Service Application que apunte al servicio definido.

Para hacer esto, seleccionaremos MiServicio.svc

image

y damos clic derecho para ingresar a la opción View Code, o pulsamos simplemente F7, luego de seleccionar el archivo.

Al acceder a esta opción, podremos visualizar el siguiente código:

<%@ ServiceHost Language="C#" Debug="true" Service="WcfService1.Service1" CodeBehind="Service1.svc.cs" %>

Este código hace referencia al Servicio, por lo que debemos de cambiar la sección de Service y eliminar el bloque de CodeBehind, dejando el código de la siguiente forma.

<%@ ServiceHost Language="C#" Debug="true" Service="WCFServiceLibrary.MiServicio"%>

Recuerda que en el paso anterior hicimos referencia al WCF Service Library definido, y es allí donde encontramos el servicio WCFServiceLibrary.MiServicio, por lo que podemos usarlo sin ningún problema.

Luego de realizar los cambios, ejecutemos la aplicación creada para ver si todo esta OK.

Te debe de salir lo siguiente:

image

Ya que nos aseguramos que el servicio funciona adecuadamente, vamos a crear un proyecto del tipo consola.

Paso 4: Crear un Proyecto del Consola

No voy a explicar mucho en este paso, porque ya hemos creado muchos proyectos consola en el blog. Lo único que aclararé es que debes de adicionar el proyecto a la solución que contiene hasta entonces dos proyectos, uno del tipo WCF Service Library y el WCF Service Application.

 

Paso 5: Referenciar  System.ServiceModel

Al Proyecto consola le vamos a agregar referencia, en primer lugar al Assembly System.ServiceModel. Recuerda que para hacer esto basta con ir a la opción Add Reference, y en la pantalla que aparece, buscar System.ServiceModel en el tab .Net.

Paso 6: Referenciar  el Servicio Creado

Bueno, para poder usar el Servicio WCF, debemos de referenciarlo. Para hacer esto debemos de dar clic derecho del mouse sobre el proyecto Consola y seleccionar la opción Add Service Reference. En la pantalla que aparece seleccionamos Discover-> Services in Solution

Aparecerán listados los servicios que tenemos, seleccionaremos el que dice MiServicio.svc. Mira la siguiente imagen.

image

Aprecia que he cambiado también el Namespace, en la parte inferior.

Luego de seleccionar el servicio y cambiar el Namespace, pulsar OK.

Paso 7: Codificar la invocación a las Operaciones del Servicio

Cambiar el código de Progrma.cs del proyecto Consola por el siguiente:

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel; //Referencia al Assembly Referenciado

namespace ConsoleApplicationRunService
{
    class Program
    {
        static void Main(string[] args)
        {
            //Definición del Cliente al Servicio referenciado
            MiServicioReference.MiServicioClient cliente = new
					MiServicioReference.MiServicioClient();
            //Invocación a la Operación Factorial
            Console.WriteLine("El Factorial de 5 es : {0}",cliente.Factorial(5));
            Console.WriteLine("Los 10 Primeros numeros Fibonacci son : ");
            //Invocación a la Operación Numeros_Fibonacci
            foreach (int i in cliente.Numeros_Fibonacci(10))
                Console.WriteLine("{0}", i);
            //Invocación a la Operación Sumatoria_Fibonacci

            Console.WriteLine("La suma de los 10 primero numeros fibonacci es : {0}",
					cliente.Sumatoria_Fibonacci(10));
            Console.ReadLine(); 

        }
    }
}

Ejecuta la aplicación y puedes apreciar que se invoca al servicio WCF creado, mostrando en pantalla el resultado de la invocación a éstos.


Autor: Victor Parasi

Siempre es difícil escribir sobre uno mismo, qué contar, o por donde empezar, suele ser todo un dilema al momento de presentarse. Aquí vamos. Les diré que soy peruano, Ingeniero por vocación, dedicado a la docencia y siempre en la búsqueda de programar cada vez mejor. Aunque a veces algo terco, sé que no todo en la vida es blanco o negro. Existe el Open Source, y lo respeto pero me llevo mejor con el .Net. Si me hablas de preferencias, te digo que C#, C++, una buena película, colores oscuros, escribir, leer e investigar. Para terminar les diré que amo muchísimo a una mujer espectacular y que es la dueña de mi corazón.


Comentarios (5)

Cristian dice:

Hola queria consultarte, ya que estoy implementando paso a paso este ejemplo y tengo un error en el Paso 6: Referenciar el Servicio Creado.. me dice que hubo un error al intentar buscar servicios en http://localhost:2248/MiServicio.svc y en detalles aparece todo un codigo html con el error..
Incluso en el paso 3 ,la pantalla que muestras que tiene que aparecer no me sale asi…solo un directorio de los archivos de la aplicacion… Por favor si sabes uqe puede ser te ruego me ayudes…Saludos! y muy buenos tus posts!!

Hola,
Puede ser en tipo de “binding” que usas.. fíjate en el web.config que valores tiene para binding.
Te dejo parte de un web.config para que te orientes

Amigok dice:

Amigo, excelente todo entendido correctamente, te felicito por la paciencia de la explicación.

Este link lo obtuve gracias a un colega de trabajo llamado: Alfredo Delgadillo.
Hola un muy buen excelente articulo para empezar a entrar al universo de WCF, lo he seguido paso a paso y me ha funcionado a la perfeccion.
Ahora voy a implementar usando las mismas tecnicas añadiendo sobre ellas ejemplos similares que vi con JSON.
Muchas gracias. Victor Parasi.

Victor Parasi dice:

Gracias por los comentarios.
Y, si no es mucha molestia, sigue haciéndonos publicidad y pasa el link a todos aquellos a los que les puede ser de utilidad.

Deja un comentario

   

copstone en Facebook

Otros artículos

Este post esta hecho para explicar como buscar y reemplazar e insertar tablas en Word mediante Visual Studio y C#

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

Uno, dos, tres, cuál es el número que obtendré esta vez?. No sé si te ha pasado pero cuando deseo generar un número aleatorio, a veces, se convierte en un gran dolor de cabeza. No por lo difícil que puede resultar el comando o rutina a utilizar, sino porque siempre sale el mismo número, una y otra vez. Espero que al leer este artículo te pueda ayudar a resolver este problema.

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

A parte de ser una buena herramienta MS Excel, permite a sus usuarios programar rutinas utilizando VBA. Si quieres saber cómo hacer para acceder a esta opción y además ver algunos ejemplos, te recomiendo leer este post.

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

Cansado de crear tus reportes en archivos de texto, o Crystal Report?. Pues es hora que hagas tus reportes en PDF haciendo uso de una librería muy poderosa y gratuita.

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

Si quieres comenzar a hacer aplicaciones de gran escala y necesitas separar la lógica de tu programa de tu capa de presentación necesitas aprender a utilizar DLL’s. Una DLL te permite crear un archivo con código ejecutable que puede ser consumido en muchas aplicaciones y diversos lenguajes.

FacebookGoogle BookmarksGoogle GmailTwitterYahoo MailHotmailLinkedInShare

Calendario

julio 2010
L M X J V S D
« may   nov »
 1234
567891011
12131415161718
19202122232425
262728293031  

Categorías

Comparte este artículo

  • Facebook
  • Google Bookmarks
  • Google Gmail
  • Twitter
  • Yahoo Mail
  • Hotmail
  • LinkedIn
  • Share
TIENES ALGO QUE PREGUNTAR? ESCRÍBENOS AQUÍ

Copyright © 2012 - Programando por diversion

Subir