Crear Web SCrear Web Service usando WCF

35
Crear Web Service usando WCF Antes utilizaban ASMX WebServices hora se usa WCF (Windows Communication Foundation) es mucho mejor y trae otras cosa. Ver WCF vs ASMX WebServices Bueno Lo primero es crear un nuevo proyecto de tipo WCF Service Library Obtenemos esto

description

Mini tutorial de como crear un web service sencillo

Transcript of Crear Web SCrear Web Service usando WCF

Page 1: Crear Web SCrear Web Service usando WCF

Crear Web Service usando WCF

Antes utilizaban ASMX WebServices hora se usa WCF (Windows Communication Foundation) es mucho mejor y trae otras cosa. Ver WCF vs ASMX WebServices

BuenoLo primero es crear un nuevo proyecto de tipo WCF Service Library

Obtenemos esto

Luego Hacemos algunos cambios en la parte marcada. Como cambiar el nombre de la librería

Page 2: Crear Web SCrear Web Service usando WCF

También cambiamos es Nombre de IService1.vb. Este archivo es el llamado Interfaz (Interface) y es aquí donde se define nuestro contrato del servicio (ServiceContract) o en otras palabras aquí se definen los métodos o funciones. Al igual que las clases en C++ solo se define las funciones y los parámetros que recibe y lo que retorna. Y en el otro archivo esta la declaración de las funciones.

Ahora la clase Service1.vb. que es la que implementa la interfaz. Hay que renombrarlo

Por cuestiones de Orden sigo la siguiente nomenclatura:

Nombre del WebService <Prueba> o como decida llamarlo.

Para el nombre de la Librería <Prueba>ServiceLibrary Para la Interfaz I<Prueba>Service.vb Para la Clase <Prueba> Service.vb

Usted puede decidir si desea seguir esta nomenclatura. La I de la interfaz es casi obligatoria para distinguir un archivo de otro.

Continuamos; después de renombrar los archivos anteriores miremos que contiene el IService1.vb

Page 3: Crear Web SCrear Web Service usando WCF

A esto <ServiceContract()> llaman atributos. Este es colocado automáticamente por visual Studio. Es OBLIGATORIO y solo indica que esa interfaz es el contrato del servicio.

La etiqueta <OperationContract()> sirve para indicar que ese método va poder ser utilizado una vez que el que Web Service sea utilizado o como le dice Consumido. Si un método no tiene este atributo no va a poder ser utilizado.

Mire la Diapositiva que le Adjunto. Para un mejor entendimiento. Dado que no se mucho acerca de esto. Lo he utilizado pero no lo he explotado.

Lo de <DataContract()> se utiliza para retornar como colecciones o tipos de datos definidos por nosotros. Al definirlo como DataContract a veces el tiende ha convertirlo en un tipo de dato genérico para el cliente que lo consume.

Page 4: Crear Web SCrear Web Service usando WCF

Miremos la Clase Service1.vb

Como mira en la imagen marque en amarillo el nombre de la interfaz. Esta clase PruebaService es una implementación de la interfaz IPruebaService. Si usted cambia el nombre de la interfaz también tiene que cambiarla aquí. Anteriormente cuando cambiamos el nombre de los archivos Visual Studio hizo este cambio automáticamente. Si ha usted no se lo hace debe hacerlo manualmente.

Hora en las funciones puede ver que esta subrayado el nombre de la interfaz y el nombre de la función que se esta implementando. Este nombre debe estar igual que el de la interfaz. No es obligatorio que el nombre de la función sea igual a la que esta implementando. Ver Imagen para evitar mi confusión

Todo este código lo genera Visual Studio como ejemplo.

Para probar este código de ejemplo simplemente pulsamos F5 o click en Aparece la siguiente ventana

En el área remarcada puede observar que aparecen las funciones definidas en la interfaz. Al dar doble click en una de las funciones podemos ver esto

Page 5: Crear Web SCrear Web Service usando WCF

Esto es lo que devuelve

Para poder utilizar o consumir el web service este debe ser publicado. Los videos muestran varias formas de hacer esto. Mas adelante le mostrare como hacerlo en el IIS.

Espero que las imágenes estén ayudando para que me entienda mejor.

Aquí aparecen los parámetros que recibe la función

Aquí aparecerá lo que devuelve la función

Click para probar

Page 6: Crear Web SCrear Web Service usando WCF

Una de las partes más tediosas es la definición de los endpoints (Extremos) que es a través de estos que los clientes se conectan al web service. Nota: Casi no entiendo esto Mire este link para ver la documentación y entender mejor. Tratare de explicárselo lo mejor que pueda para no confundirla.

Para configurar el web service click derecho en App.Config. Click Edit WCF Configuration.

Este es solo un asistente para configuración. Este es un archivo xml que puede ser modificado manualmente. Bueno esta es la ventana

Esos Endpoints los crea automáticamente Visual Studio. El más importante es el mex que es utilizado para el intercambio de la metadata.

Page 7: Crear Web SCrear Web Service usando WCF

Cuando nos movemos y damos click en wsPrueba.PruevaService aparece esto

En la parte derecha de la imagen donde dice BehaviorConfiguration esta en blanco. En visual Studio esto no se crea automáticamente y nosotros por ende debemos hacerlo. Esto define el comportamiento de servicio más que todo es habilitar que en caso de un error en el web service este error sea transmitido al cliente que lo esté consumiendo. Y también habilitar algo de la metadata no se muy bien.

Para hacer esto nos vamos a la carpeta Advanced y luego Service Behaviors

Al dar click en New Service Behavior Configuration obtenemos esto

Cambiamos en Nombre a PruebaServiceLibrary.ServiceBehavior y agregamos elementos. Click en el botón Add…

Page 8: Crear Web SCrear Web Service usando WCF

Agregar ServiceMetadata y ServiceDebug

La ventana marcada en rojo es la que aparece cuando se le da click a Add… y al fondo se mira los 2 elementos que agregue.

A estos elementos a que hacerles una pequeña configuración. Para el serviceMetada en la opción HttpGetEnabled cambiar a true.

Page 9: Crear Web SCrear Web Service usando WCF

Y en el otro serviceDebug la opción IncludeExecptionDetailInFaults cambiar a true también. Esta es para recibir las notificaciones de error a la hora de estar consumiendo el servicio.

Así debe quedar. Una vez hecho esto volvemos a wsPrueba.PruevaService y en BehaviorConfiguration

asignamos el que hemos creado

Así debe quedar

Esto fue el Behavior para el Service. Los Endpoints también tienen Behaviors, solo que esto se configuran dependiendo si el Endpoint lo requeriré o se desea un Behavior diferente por cada endpoint.

Page 10: Crear Web SCrear Web Service usando WCF

Ahora lo publicaremos en el IIS. Dado que esta es una librería tenemos que agregar un Sitio web al proyecto. Asegúrese de crearla en la misma carpeta en la que esta el proyecto. Ver video 8

Click derecho en la solución -> Add -> New Web Site

Escogemos WCF Service Continuamos con la Nomemclatura para el nombre de sitio PruebaServiceSite lo que seria <Nombre del WebService>ServiceSite.

Lo Creamos en la misma carpeta del proyecto.

Page 11: Crear Web SCrear Web Service usando WCF

Nuestra solución debe quedar de esta forma

La carpeta App_Code contiene 2 archivos IService.vb y Service.vb los cuales debemos borrar por los nuestros se encuentran en la librería PruebaServiceLibrary. Click derecho Delete

Ahora procedemos a hacer referencia a la librería. Click derecho en PruebaServiceSite -> Add Referecence…

Aparece la siguiente ventana

Page 12: Crear Web SCrear Web Service usando WCF

En el tab Projects Aparecerán todos los proyectos que hallamos agregado a nuestra solución. Por los momentos solo aparece la librería del web service PruebaServiceLibrary la seleccionamos y le damos click al botón OK. Esto creara una carpeta llamada Bin donde aparecerán los archivos DLL de que genera PruebaServiceLibrary

Ahora renombramos el Archivo Service.svc a Prueba.svc también debemos modificarlo. Inicialmente aparece como se muestra en la imagen la parte subrayada.

La parte CodeBehind="~/App_Code/Service.vb" la borramos dado que nuestro código se encuentra en la librería. Y procedemos a modificar Service="Service" donde aquí le diremos que use el código de nuestra librería. Dejándolo de la siguiente forma Service = "wsPrueba.PruebaService" esto debe ir de esa forma <Nombre de la DLL>.<Nombre de la Clase> Y guardamos los cambios.

Page 13: Crear Web SCrear Web Service usando WCF

Luego tenemos que editar el archivo Web.Config para esto le damos click derecho al Archivo y luego click en Edit WCF Configuration

Se debe abrir la siguiente ventana

Es básicamente la misma que cuando configuramos App.Config de la librería. Visual Studio 2008 hace algunas cosas automáticamente, pero Visual Studio 2010 nos presenta la ventana en blanco. Y nosotros debemos configurarle todo. Prácticamente se configura igual que App.Config.

Debemos empezar creado un Nuevo servicio a partir de la librería. Damos click en Create a New Service

Page 14: Crear Web SCrear Web Service usando WCF

Click en Boton Browse aparece la siguiente ventana y abrimos la carpeta Bin

Ahora vemos el Archivo wsPrueba.dll

Le damos doble click para abrir el archivo como si fuera una carpeta y veremos lo siguiente

Veremos el archivo wsPrueba.PruebaService, lo seleccionamos y le damos Open.

Page 15: Crear Web SCrear Web Service usando WCF

Luego se cerrara la ventana y a la que queda le damos click en Next

De nuevo Next la parte marcada en amarillo aparece automáticamente

En la siguiente pantalla yo siempre he utilizado HTTP no sé que es lo demás. De nuevo click en Next

Page 16: Crear Web SCrear Web Service usando WCF

Igual Next

Luego el Address lo dejamos en blanco borramos el Http:// y le damos Next

Aparecera una ventana de Confirmación de que si dejamos en blanco el Address lo tenemos que definir después le damos que Si

Luego Finish

Page 17: Crear Web SCrear Web Service usando WCF

Ya tenemos creado el servicio en el Web.Config

Ahora tenemos que configurarlo de la misma forma que configuramos La librería

El Behavior para el Servicio

No ponga las imágenes de como crear el Behavior por que es lo mismo

Visual Studio 2010 nos creo un Endpoint. En este momento no estoy seguro si ocupamos otro Endpoint. Seguire asi si lo necesitamos los crearemos después.

Page 18: Crear Web SCrear Web Service usando WCF

Ahora podemos probar para ver como se mira en el navegador. Click derecho en Prueba.svc -> click en View in Brower

Tendríamos que ver esto

Que es la pagina del web Service. Lo que marque en amarillo es el número de puerto que visual Studio asigna. Cuando publiquemos este sitio en el IIS ya no nos aparecerá el número de puerto (este numero puede variar).

Ahora pongámoslo en el IIS. En el menu de Inico tecleamos IIS y aparecerá esto Si esta instalado el IIS. Ver Link 1, Link 2,…

Hay que tener instalado el framework 4.0 Click para descargar.

Page 19: Crear Web SCrear Web Service usando WCF

Le damos click a Administrador de Internet Information Services (IIS) y este se abrirá

Este es el que tengo yo tengo creado un Web Service wsReportes. Verifique que en Grupos de aplicación tenga lo que le muestro en la siguiente ventana. Que le aparezcan ASP.NET v4.0

Classic y ASP.NET v4.0

Page 20: Crear Web SCrear Web Service usando WCF

De no ser así verifique que ya tenga instalado el Framework 4 si no es así instálelo y luego verifique la misma ventana para ver si se agregaron. Si todavía no aparecen debe registrar el framework, para hacer esto se va a la carpeta c:\Windows\Microsoft.NET\Framework\v4.0.30319 y estando ahí apreté la tecla Shift y click derecho en algún espacio en blanco de la carpeta. Esto es para que le salga la opción de abrir el cmd desde esa dirección.

El cmd debería abrirse de esta forma

Estando ahí debemos escribir lo siguiente aspnet_regiis.exe -i y damos Enter

Page 21: Crear Web SCrear Web Service usando WCF

Cuando termina

Y listo. Si no funciona hay que preguntarle a Google.

Una vez hecho esto en la parte de Sitios -> Default Web Site, Click derecho Agregar Aplicación…

Esta ventana aparece

He enumerado los campos.

1 es el alias para el nombre de la aplicación en nuestro caso el web service2 Grupo de aplicaciones debemos escoger ASP.NET v4.03 Ruta en la que se encuentra PruebaServiceSite. Obligatoriamente debe ser esta carpeta

Page 22: Crear Web SCrear Web Service usando WCF

Esto es lo que debe quedar

Le da Aceptar y nos debe aparecer esto

La seleccionamos y en la parte de abajo le damos Vista Contenido mirar imagen

Page 23: Crear Web SCrear Web Service usando WCF

Seleccionamos Prueba.svc, click derecho Examinar

Esto nos abrirá el navegador de nuevo

Fíjese en la URL y vera que no aparece el número del puerto porque lo estamos corriendo desde el IIS y no con Visual Studio

Page 24: Crear Web SCrear Web Service usando WCF

Esto es el Inicio del manual mire los videos para un mejor entendimiento. Próximamente le estaré añadiendo más a este manual esto solo es para que se vaya preparando.

Me hace falta enseñarle como consumir este web service y como agregarle mas cosas. Como accesar a bases de datos.

Yo cree un web service y lo consumí solo con javascript es algo que también pienso enseñarle.

Bueno pruebe esto por mientras continuo con este manual.

Page 26: Crear Web SCrear Web Service usando WCF

También puede ver los videos del Dropbox de carpeta Descargas

En la Carpeta Web Services esto es lo que hay y en la carpeta WCF Tranning Videos se Encuentran los video tutoriales de WCF