Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube
JC Mouse Bolivia
Index / Visual Studio / SOAP .:. Servicio Web en c#

SOAP .:. Servicio Web en c#

Autor jc mouse Martes, Noviembre 8, 2016

SOAP (Simple Object Access Protocol) es un protocolo estándar que define cómo dos objetos en diferentes procesos pueden comunicarse por medio de intercambio de datos XML (Lenguaje de Marcado Extensible). Básicamente SOAP es un paradigma de mensajería de una dirección sin estado, que puede ser utilizado para formar protocolos más complejos y completos según las necesidades de las aplicaciones que lo implementan. Puede formar y construir la capa base de una “pila de protocolos de web service”, ofreciendo un framework de mensajería básica en el cual los web services se pueden construir.

En esta oportunidad construiremos un sencillo Web Service en C#utilizando Visual Studio 2015

Necesitamos

  • Visual Studio 2015
  • Conocimientos en C# y XML
  • Navegador web

Tiempo: 15 minutos

Paso 1: El Proyecto Web

Clic en Archivo → Nuevo → Sitio Web → a continuación seleccionar la opción de Sitio Web Vacio de ASP.NET

webs

Indica la ubicación del sitio web y escribe como nombre “EjemploSOAP“, para crear el proyecto, clic en [Aceptar]

SOAP Bolivia

Paso 2: El Servicio Web

Clic derecho sobre el proyecto → Agregar → Agregar nuevo elemento…  → Seleccionar Servicio Web (ASMX), como nombre del servicio escribir “WSMateMata.asmx

asmx file

clic en [agregar] para añadir el Servicio Web al proyecto.

matematicas

*.asmx es un archivo de texto que sirve de punto de entrada direccionable del servicio web. Hace referencia al código de ensamblados precompilados, a un archivo de código subyacente o a un código contenido en el propio archivo .asmx.

La clase WSMateMata.cs que se agrego, es la siguiente:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

/// <summary>
/// Descripción breve de WSMateMata
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// Para permitir que se llame a este servicio web desde un script, usando ASP.NET AJAX, quite la marca de comentario de la línea siguiente. 
// [System.Web.Script.Services.ScriptService]
public class WSMateMata : System.Web.Services.WebService {

    public WSMateMata () {

        //Elimine la marca de comentario de la línea siguiente si utiliza los componentes diseñados 
        //InitializeComponent(); 
    }

    [WebMethod]
    public string HelloWorld() {
        return "Hola a todos";
    }
    
}

Esta clase cuenta con un solo método por defecto, el clásico “Hola mundo“, ya podríamos ejecutarlo y probarlo, pero, cambiaremos el código por el siguiente:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

/// <summary>
/// Descripción breve de WSMateMata
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class WSMateMata : System.Web.Services.WebService {

    public WSMateMata () {}

    /// <summary>
    /// Retorna un numero entero aleatorio entre 1 y 100
    /// </summary>
    [WebMethod]
    public int numeroAleatorioDe1a100() {
        Random rnd = new Random();
        return rnd.Next(1, 100);
    }
    
    /// <summary>
    /// suma dos numeros enteros    
    /// </summary>
    ///<param name="sumando1">Sumando 1</param>
    ///<param name="sumando2">Sumando 2</param>
    /// <returns>resultado</returns>
    [WebMethod]
    public int suma(int sumando1, int sumando2) {        
        return sumando1 + sumando2;
    }

}

este nuevo código consta de dos métodos “numeroAleatoriode1a100” sin parámetros de entrada y “suma“, con dos parámetros de entrada.

Paso 3. Ejecución

Seleccionamos el navegador que usaremos

chrome visual studioy luego ejecutamos el proyecto.

NET Mate

Se nos presenta una pagina web, con los dos métodos más arriba declarados, para poder probarlos, solo debemos hacer clic en cualquiera de ellos.

numeroAleatorioDe1a100: Sin parámetros de entrada retorna un valor entero aleatorio al presionar [invocar]

aleatorio c sharp

 

Al presionar el botón se abre una nueva ventana con el resultado en formato XML

API SOAP

suma: con dos parámetros de entrada, para realizar la prueba presionamos [invocar]

XML SOAP C

Al igual que el anterior método, el resultado se abre en una nueva ventana

XML tempuri

Los anteriores métodos los probamos mediante el protocolo HTTP POST con las mismas herramientas que nos brinda Visual Studio, sin embargo para implementar este servicio web en un cliente, necesitaremos de un archivo *.wsdl, el cual es también generado por Visual Studio.

WSDL

WSDL (Web Services Description Language), es un formato del Extensible Markup Language (XML)  y que nos sirve para describir la interfaz pública a los Servicios Web,  es decir, los requisitos del protocolo y los formatos de los mensajes necesarios para interactuar con los servicios listados en su catálogo.

Para acceder al WSDL de este proyecto, clic en “descripción de servicios” el cual tiene un link de la siguiente forma: “http://localhost:7783/WSMateMata.asmx?WSDL”, es este archivo el que usa el cliente para poder configurar y usar el servicio web. Pero eso lo veremos en otra oportunidad.

Enjoy!!!

 

Tags

Si te ha gustado podrías compartirlo o dejar un comentario. ¡Muchas gracias!
Autor: JC Mouse

Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.

Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye

Enjoy! :)

También Te Podría Interesar

Libreria swing BlackTabbedPane

Libreria swing BlackTabbedPane

Continuación del tutorial [Personalizar JTabbedPane con Netbeans]. La clase BlackTabbedPaneUI que extendemos de BasicTab...

Leer y Escribir registros en archivo de texto

Leer y Escribir registros en archivo de texto

A veces se necesita utilizar archivos de texto plano como contenedor de registros como si de una base de datos se tratar...

Envio de correo gmail con PHPMailer

Envio de correo gmail con PHPMailer

En este tutorial utilizaremos la librería PHPMailer para enviar correo electrónico utilizando el servidor de GMail de Go...

Código de Control en PHP v7.0 Bolivia

Código de Control en PHP v7.0 Bolivia

NUEVA ESPECIFICACIÓN TÉCNICA DEL CÓDIGO DE CONTROL (Ver.7.0) En el marco del Nuevo Sistema de Facturación implementado p...

Introducción al Diseño Web Adaptable (Responsivo)

Introducción al Diseño Web Adaptable (Responsivo)

El diseño web adaptable (Responsive Web Design) va evolucionando como una filosofía de diseño y desarrollo de paginas we...

Personalización de Componentes Swing Java I

Personalización de Componentes Swing Java I

Hace tiempo pidieron un video tutorial sobre como crear sus propios componentes swing java, lamentablemente debo decir q...

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

Comparte lo que sabes

Categorias

Últimas entradas

“Material Design es una guía integral para el diseño visual, de movimientos y de interacción en distintas platafor...

Un TextView autocompletado nos facilita el ingreso de información en aplicaciones móviles ya que te muestra posibles opc...

Un Tabbed Activity te permite cambiar la vista entre  fragmentos desplazando el dedo  de izquierda a derecha o de derech...

Este 12 de Mayo de 2017 se produjo un ataque masivo mundial del ransomware WannaCry  el  que afecto a más de 200000 comp...

Android Bolivia

Bandera en Alto