Está en la página 1de 16

Ejemplo 1 de Desarrollo de servicios Web

En este ejemplo, veremos cómo crear y publicar un servicio Web.

En este ejemplo usaremos un editor de textos, (como el bloc de notas), ya que


todo el código necesario para la creación del servicio Web lo vamos a incluir en un
mismo archivo. El lenguaje a utilizar para escribir el código, será C#.

Nota:
Este es el mismo ejemplo que se usó en la charla sobre Desarrollo y consumo de
Web Services.

Los pasos a dar serán los siguientes:

1- Abre el bloc de notas o cualquier otro editor de textos para crear el archivo
HolaMundoWebS.asmx

2- Para que .NET Framework sepa que este archivo es un servicio Web, tenemos
que indicárselo mediante la directiva de ASP.NET @ WebService, en esa directiva
se indicará el lenguaje en el que estará el código, así como el nombre de la clase:

<%@ WebService Language="C#" Class="HolaMundoWebS" %>

Para más información sobre la directiva @ WebService accede a este artículo de la


documentación de Visual Studio .NET:
ms-
help://MS.VSCC/MS.MSDNVS.3082/cpguide/html/cpcondeclaringwebservice.htm

3- A continuación escribiremos el código que "normalmente" escribiríamos para


usar con .NET Framework, en este caso será para definir la clase que contendrá el
servicio Web.

4- Empezaremos con la directiva using System.Web.Services;, la cual contiene


las clases que nos permite crear servicios Web y clientes de servicios Web.

Nota:
Si necesitamos utilizar otras clases o tipos, tendremos que usar tantas directivas
using (seguida del espacio de nombres) como necesitemos. Por ejemplo para poder
utilizar las clases de acceso a bases de datos, escribiremos: using System.Data;

5- Una vez que hayamos importado todos los espacios de nombres que
necesitemos, tendremos que declarar la clase propiamente dicha.
Como recomendación, es conveniente usar el atributo WebService, (no confundirlo
con la directiva de ASP.NET de igual nombre), para indicar el espacio de nombres al
que pertenece esta clase, así como para indicar una descripción de la clase.

[WebService(Namespace="http://www.elguille.info/NET/WebServices/",
Description="Hola, Mundo al estilo Web Service")]
public class HolaMundoWebS {
Nota:
La recomendación es usar como espacio de nombres, el sitio en el que estará
alojado el servicio Web.

6- A continuación se incluirá el código que contendrá esta clase, en especial la


declaración de las funciones (o métodos) que nuestra clase expondrá desde el
servicio Web, para ello debemos aplicar a cada uno de los métodos que queramos
que el servicio Web exponga, el atributo WebMethod. Si no indicamos este
atributo, el método no será visible (o accesible) desde el servicio Web.
Con este atributo, también podemos indicar una descripción, la cual será expuesta
por el servicio Web, de esta forma los usuarios tendrán una mejor idea de cual es la
función de dicho método.

[WebMethod(Description="Devuelve la cadena Hola, Mundo")]


public string Saludar() {
return "Hola, Mundo";
}

7- Podemos seguir añadiendo más métodos al servicio Web, pero hay que tener
presente que para que ese método sea expuesto por el servicio Web, debe tener el
atributo WebMethod.

8- Una vez que hemos escrito todo el código de la clase, guardaremos el archivo y
para poder hacerlo público, tendremos que publicarlo en un sitio Web. Debido a que
este servicio Web está totalmente incluido en un archivo y no tiene más
dependencias, sólo tendremos que copiarlo y ya estará listo para poder usarlo.

Nota:
Si no tenemos un sitio en Internet, podemos publicarlo en el sitio local de nuestro
equipo: localhost.

9- Para poder usar este servicio Web desde el explorador simplemente tendremos
que indicar la dirección Web en la que tengamos alojado el servicio Web, por
ejemplo, si lo hemos copiado en el servidor local (localhost), tendremos que
escribir:
http://localhost/HolaMundoWebS.asmx

En la figura 1, tenemos el servicio Web en el explorador:


---------------

Crear Web Service WCF C# con


conexión a base de datos SQL Server,
paso a paso.
Luis David De La Cruz Bautista Web Services 23 enero, 2018 4 Minutes

Este es el primer blog que escribo, espero que lo disfruten.


Quiero comenzar por mostrar como crear un Web Service, que claro en el siguiete blog
se publicará en un ambiente el cual es IIS y después se consumirá con un proyecto
Xamarin tipo PCL. Aunque será un Web Service local es casi la misma configuración
que se hace cuando se publica en una máquina virtual.

Esta forma de crear y consumir servicios WCF lo aprendí en mi primer trabajo y ahora
quiero compartirla con ustedes…

Lo primero que haremos será abrir Visual Studio, yo tengo la versión 15.5.4

Vamos a la pestaña Archivo, Seleccionamos Nuevo y Proyecto.


Nota: Si no tenemos estos tipos de proyecto, con el instalador de Visual Studio 2017
instalar los componentes para desarrollo web

En el buscador escribimos la palabra WCF, esto para filtrar los tipos de proyectos que
tenemos disponibles, seleccionamos Aplicación de servicios WCF, escogemos un
nombre para el proyecto, la ruta donde se guardará y clic en Aceptar.
Una vez que se termine de crear el proyecto creará archivos que los podremos ver en el
explorador de soluciones, IService1 y Service1.

En Service1.cs agregaremos todos los métodos que tendrá nuestro web service,
métodos CRUD o alguna otra funcionalidad que le queramos dar.
En este caso agregaremos una cadena de conexión y los respectivos Using que
usaremos en este proyecto:

using System.Data.SqlClient;
using System.Data;
Nuestra cadena de conexión puede quedar de esta manera:

DataSource: Será la instancia de nuestra base de datos ejemplo: “www.miservicio.mx”


o si será con una base de datos local escribiremos la dirección ip “192.168.01.09”, por
ejemplo.

Initial Catalog: Será el nombre de la base de datos que usaremos, donde tengamos
nuestras tablas, stored procedures, etc…

User id: Será el nombre de usuario para acceder a nuestro sql server, este puede variar
en algunos casos usan sa y la contraseña.

Password: Es la contraseña que usamos para acceder a nuestra motor de base de datos
SQL Server

Para esta practica estoy usando SQL Server 2014, pero no hay diferencia entre una
versión más reciente ya que antes usaba SQL Server 2016.
Ahora una vez que estemos en nuestro SQL Server, creamos un nuevo Query.
Yo creo una base de datos y una tabla para hacer el ejemplo

Este es el script que usé:

 CREATE DATABASE Prueba


use Prueba
 CREATE TABLE Usuarios
(
Id INT PRIMARY KEY NOT NULL IDENTITY (1,1),
Username varchar(20),
PasswordUser varchar(20)
);
 INSERT INTO Usuarios (Username,PasswordUser ) values
(‘david’,’xamsharp’);

Nota: Agregué un registro que será el que se usará de ejemplo cuando hagamos las
pruebas.

En este ejemplo veremos como hacer un login sencillo, solo con usuario y contraseña.

Lo que se ve a continuación es un método como los que hacemos con proyectos tipo
Windows Forms o ASP.NET.

El metodo se llama ValidateLogin y recibe como parámetros user y pass que son de
tipo string. Se agregó el comando SELECT para seleccionar los usuarios que tienen ese
usuario y contraseña.
Después se van agregando a una DataTable de nombre da. donde buscamos las
coincidencias con las filas de nuestra tabla en la base de datos y asignamos valor a la
variable mensaje, si es que hay resultados retornará “Usuario encontrado” y sino “No
hubo coincidencias”.

En la Interface llamada Iservice1 agregaremos:

[OperationContract]
string ValidateLogin(string user, string pass);

Que es el tipo de dato que devuelve nuestro metodo seguido del nombre y los
parámetros que recibe dicho método.
Nota: La palabra reservada [OperationContract] irá arriba de cada uno de nuestros
métodos que creemos en la clase Service1.cs

Una vez creado nuestro método sin errores podemos ejecutarlo, podremos apreciar una
lista de archivos que contiene el servicio. La que nos interesa es Service1.svc, damos
clic y nos dirigirá a la pantalla de la derecha que dice Servicio de Service1. Y si damos
clic en el enlace que nos muestra podremos ver una estructura como la que se ve abajo,
donde encontraremos los métodos que tenemos.

Para poder probar nuestro servicio usaremos la herramienta WCFTestClient, una


herramienta buenísima que además la podemos usar para probar servicios de terceros, es
decir que no hayamos creado nosotros. Esta herramienta no la tenemos que descargar
ya que viene incluida cuando descargamos la paquetería de desarrollo web de Visual
Studio.

 C:\Program Files (x86)\Microsoft Visual


Studio\2017\Community\Common7\IDE

Es la ruta donde tenengo instalado el IDE VS 2017, ahí es donde encontraremos la


herramienta.

Es la que tiene el icono con C:\

En ocasiones cuando cuando iniciamos la depuración del servicio se abre


el WCFTestClient por defecto, pero si no se abre procedemos a abrirla y damos clic
izquierdo sobre la opción que Mis proyectos de servicios y agregamos la dirección que
nos generó el Servicio: http://localhost:51699/Service1.svc
Una vez que se ha agregado la referencia nos mostrará todos los métodos que tiene
nuestro servicio.

Abrimos el métodos que creamos, el cual es ValidateLogin, ahí podemos ver los tipos
de datos que recibe como parámetros y nos muestra un botón que dice Invocar.

Agregamos los parámetros que pide nuestro método, en mi caso el User: david y Pass:
xamsharp, que fueron agregados anteriormente a la tabla Usuarios, procedemos a dar
clic en el botón de Invocar y nos retornará una respuesta, la cuál es la que nos retorna
nuestro método en caso de ser exitoso.
Y tenemos “Usuario encontrado”

Y así terminamos de crear nuestro primer servicio WCF, que en el próximo blog que
escribiré lo subiremos a un ambiente IIS local, donde lo podremos consumir desde una
aplicación Xamarin.Forms PCL.
Figura 1: El servicio Web en el explorador

Este sería el código completo del código que hemos usado en esta práctica:

<%@ WebService Language="C#" Class="HolaMundoWebS" %>

using System.Web.Services;

[WebService(
Namespace="http://www.elguille.info/NET/WebServices/",
Description="Hola, Mundo al estilo Web Service")]
public class HolaMundoWebS {

[WebMethod(Description="Devuelve la cadena Hola, Mundo")]


public string Saludar() {
return "Hola, Mundo";
}
}

Este es el mismo código pero para Visual Basic .NET:

<%@ WebService Language="VB" Class="HolaMundoWebSVB" %>

Imports System.Web.Services

<WebService( _
Namespace:="http://www.elguille.info/NET/WebServices/", _
Description:="Hola, Mundo al estilo Web Service")> _
Public Class HolaMundoWebSVB

<WebMethod(Description:="Devuelve la cadena Hola, Mundo")> _


Public Function Saludar() As String
Return "Hola, Mundo"
End Function

End Class

También podría gustarte