servicio web asp

20
SERVICIO WEB En la siguiente imagen (fuente:msdn.microsoft.com) puedes ver la plantilla de lo que vamos a construir. Servicios WCF, creando la solución y el Servicio Abrimos Visual Studio 2013. Vamos a Fichero, Nuevo Proyecto, Plantillas, Visual C#, Web, WCF, Aplicación de Servicios WCF. El nombre para el proyecto y la solución es ServiceWCFPrimes (este artículo lo he escrito primero en inglés, por eso muchas referencias en inglés).

Upload: javier-manrique

Post on 16-Jan-2016

10 views

Category:

Documents


0 download

DESCRIPTION

WEB

TRANSCRIPT

Page 1: Servicio Web ASP

SERVICIO WEB

En la siguiente imagen (fuente:msdn.microsoft.com) puedes ver la plantilla de lo que vamos a construir.

Servicios WCF, creando la solución y el Servicio

Abrimos Visual Studio 2013. Vamos a Fichero, Nuevo Proyecto, Plantillas, Visual C#, Web, WCF, Aplicación de Servicios WCF. El nombre para el proyecto y la solución es ServiceWCFPrimes (este artículo lo he escrito primero en inglés, por eso muchas referencias en inglés).

En primer lugar voy a refactorizar el nombre de la interfaz IService (la interfaz es el contrato). Botón derecho sobre IService1 y luego Refactorizar, Cambiar nombre a IServicePrimes.

Page 2: Servicio Web ASP

Obtenemos

Ahora, le cambio el nombre del archivo (no es necesario, lo hago para que quede más claro)

Page 3: Servicio Web ASP

Y también le cambio el nombre del punto de entrada del servicio (por claridad)

Antes teníamos

Después tenemos

Page 4: Servicio Web ASP

Vamos a la interfaz para definir nuestro contrato. Elimino una gran cantidad de código, manteniendo solamente lo siguiente

Es importante poner el nombre, ya que desde el cliente sólo podremos ver dicha información cuando el servidor la serialize.

Page 5: Servicio Web ASP

Ahora voy a definir las operaciones de este Contrato. Sólo he definido una operación que se llama “CalculatePrimes”. Esta función contiene el mismo código que he explicado en otro de mis artículos (MVC Primos) de este blog.

En este punto tenemos una gran ayuda para implementar el código. Sobre IServicePrimes botón derecho, Implementar Interfaz

Page 6: Servicio Web ASP

Después , automáticamente obtenemos la implementación de todas las operaciones definidas en la interfaz , en este caso sólo una, pero si tienes veinte operaciones, tendrás aquí todas las implementaciones directamente.

Ahora tenemos que implementar el siguiente código, con lo que mi servicio quedará

Page 7: Servicio Web ASP

Por último, le damos a “Generar Servicio” y lo compilamos. Si se te olvida compilarlo no vas a encontrar después la dll requerida para configurarlo (en el siguiente capítulo).

Configuración del Servicio

Para trabajar con los servicios necesitamos definir el “ABC” de los Servicios.

A (Address) es la dirección, donde reside el servicio.

B (Binding) canal para exponer el servicio.

C (Contract) es la interfaz o contrato, definido en el capítulo anterior.

En este punto, vamos a establecer la dirección y el enlace (binding).

Vamos a Herramientas, Configuración de servicios WCF y obtenemos la siguiente pantalla

Page 8: Servicio Web ASP

Se puede editar el archivo de configuración Web (Web.config) directamente y escribir las instrucciones apropiadas para Address y Binding o se puede utilizar directamente la herramienta proporcionada por Visual Studio (más fácil) .

Archivo, Abrir archivo de configuración y buscamos nuestra solución y abrimos el archivo Web.Config.

Ahora creamos un nuevo servicio

Page 9: Servicio Web ASP

Crear un nuevo servicio, examinar y obtenemos esta pantalla y seleccionamos para abrir la carpeta bin

Page 10: Servicio Web ASP

Al abrir la carpeta podemos ver la dll creada después de compilar.

Ahora hacemos, Abrir, Abrir y Siguiente y obtenemos la pantalla para el Contrato, por defecto nuestro contrato definido previamente en el Servicio

Page 11: Servicio Web ASP

Pulsamos siguiente y ahora vamos a definir el Binding

Page 12: Servicio Web ASP

Elijo HTTP , pulsamos Siguiente, otra pregunta para la seguridad (dejamos básica) y por el último el Address, que lo dejo intencionadamente vacío, sin nada, (borro lo que sale por defecto).

Page 14: Servicio Web ASP

Pulso “CTRL + S” o Archivo, Guardar para guardar la configuración.

Ahora podemos editar el archivo Web.config y ver los resultados

Page 15: Servicio Web ASP

Crear el cliente y el proxy

Sobre la solución, botón derecho, Agregar, Nuevo proyecto, Aplicación ASP.NET Web Forms

Lo primero que voy a hacer es definir el proxy para que mi cliente puede tener la referencia al Servicio. Sobre Refrencias de Servicio, botón derecho, Agregar, Referencia de Servicio y tenemos la siguiente pantalla

Pulsamos “Detectar” y obtendremos los servicios detectados por el sistema. Sólo tengo uno y después para desplegarlo podemos ver el Contrato y las Operaciones. La doy nombre al proxy “ProxyPrimes”.

Page 16: Servicio Web ASP

Pulso Aceptar y obtengo “ProxyPrimes” como Referencias de Servicios

Creación de la ASP. NET para consumir el servicio

En la página Default he puesto una tabla con dos TextBox, un Button y otro TextBox para los resultados. El código es el siguiente

Page 17: Servicio Web ASP

Y la siguiente pantalla es la vista del navegador web

Voy a explicar el código C # de la página Default.aspx. Todo el código se encuentra en el evento Button1_Click.

1. En primer lugar hay que declarar y crear una nueva instancia de ProxyPrimes (mi Proxy creado antes) con la ServicePrimesClient:”ServicePrimesClient c = new ProxyPrimes.ServicePrimesClient ();”

2. Llamamos al Servicio con la operación “CalculatePrimes ” . Esta operación devuelve un array de int.”int [ ] primes = c.CalculatePrimes ( int.Parse ( textBox1.Text ) ,int.Parse ( TextBox2.Text ));”

Page 18: Servicio Web ASP

3. Bucle For para recuperar todos los datos y enviarlos al TextBox que va a mostrar los resultados (TextBox3) . Sentencia if en la que escribo una coma siempre que queden datos a escribir.

Ver la siguiente imagen de todo ello.

Ejecutando la Aplicación

He puesto numero desde 5 y numero hasta 50. El siguiente paso es presionar el botón Buscar (Find).

Page 19: Servicio Web ASP

Y este es el resultado

Espero haberte ayudado a entender como funciona un servicio básico WCF. Esto admite muchas configuraciones distintas y modos de comportamiento. La seguridad de estos servicios es la basada en el transporte “https”, visitar msdn para ampliar la información. También lo normal es meter acceso a base de datos en el Servicio con Entity Framework por ejemplo. No he querido complicarlo más para que se entiendan los pasos básicos. Quizá en otro momento, cuando tenga tiempo, hago algún ejemplo con acceso a DB.

Que lo disfrutes con salud !!!