Repaso para el examen final de Laboratorio de Peogramación V

7
Repaso para el examen final | Laboratorio de Programación V Josué Martínez V. 1 Básicamente para el examen final interesa conocer de forma precisa un ejercicio que realizamos en clase sobre la capa de SI (Service Interface) implementada utilizando un WFC (Windows Communication Foundation). A continuación se realiza una descripción del ejemplo Calculadora desarrollado en clase. Se crea una solución Se crea la solución en blanco. Se añade un nuevo proyecto LibraryEn la categoría Visual Basic/WFC se elige WFC Service Library. En este proyecto se definen las funciones que deseamos publicar a través de la capa de SI. En este caso serán las funciones de sumar y restar dos números. Se crea una interfaz con las funciones <ServiceContract()> Public Interface ICalculadora <OperationContract()> Function Sumar(ByVal primerNumero As Double, ByVal segundoNumero As Double) As Double <OperationContract()> Function Restar(ByVal primerNumero As Double, ByVal segundoNumero As Double) As Double End Interface Muy importante: siempre se deben incluir las sentencias <ServiceContract()>y <OperationContract()>en sus respectivos lugares. Se crea una clase que implemente la interfaz Public Class Calculadora Implements ICalculadora Public Function Restar(ByVal primerNumero As Double, ByVal segundoNumero As Double) As Double Implements ICalculadora.Restar Return primerNumero - segundoNumero End Function Public Function Sumar(ByVal primerNumero As Double, ByVal segundoNumero As Double) As Double Implements ICalculadora.Sumar Return primerNumero + segundoNumero End Function End Class Se modifica el archivo XML App.config <service name="PracticaExamenFinal.Library.Calculadora"> <add baseAddress = "http://localhost:8732/Design_Time_Addresses/PracticaExamenFinal.Library/Calculadora/" /> <endpoint address ="" binding="wsHttpBinding" contract=" PracticaExamenFinal.Library.ICalculadora ">

description

Repaso del ejemplo de WCF con la calculadora.

Transcript of Repaso para el examen final de Laboratorio de Peogramación V

Repaso para el examen final | Laboratorio de Programación V Josué Martínez V.

1

Básicamente para el examen final interesa conocer de forma precisa un ejercicio que

realizamos en clase sobre la capa de SI (Service Interface) implementada utilizando un WFC

(Windows Communication Foundation).

A continuación se realiza una descripción del ejemplo Calculadora desarrollado en clase.

Se crea una solución Se crea la solución en blanco.

Se añade un nuevo proyecto “Library” En la categoría Visual Basic/WFC se elige “WFC Service Library”. En este proyecto se definen las

funciones que deseamos publicar a través de la capa de SI. En este caso serán las funciones de

sumar y restar dos números.

Se crea una interfaz con las funciones <ServiceContract()> Public Interface ICalculadora <OperationContract()> Function Sumar(ByVal primerNumero As Double, ByVal segundoNumero As Double) As Double <OperationContract()> Function Restar(ByVal primerNumero As Double, ByVal segundoNumero As Double) As Double End Interface

Muy importante: siempre se deben incluir las sentencias “<ServiceContract()>” y

“<OperationContract()>” en sus respectivos lugares.

Se crea una clase que implemente la interfaz Public Class Calculadora Implements ICalculadora Public Function Restar(ByVal primerNumero As Double, ByVal segundoNumero As Double) As Double Implements ICalculadora.Restar

Return primerNumero - segundoNumero End Function Public Function Sumar(ByVal primerNumero As Double, ByVal segundoNumero As Double) As Double Implements ICalculadora.Sumar

Return primerNumero + segundoNumero End Function End Class

Se modifica el archivo XML “App.config”

<service name="PracticaExamenFinal.Library.Calculadora"> <add baseAddress =

"http://localhost:8732/Design_Time_Addresses/PracticaExamenFinal.Library/Calculadora/" />

<endpoint address ="" binding="wsHttpBinding" contract=" PracticaExamenFinal.Library.ICalculadora ">

Repaso para el examen final | Laboratorio de Programación V Josué Martínez V.

2

Probar el proyecto “Library”

Para esto lo establecemos como el “StartUp Project” dando “click” derecho sobre el proyecto y

eligiendo dicha opción. Luego damos CTRL + F5 para ejecutar sin “debug” y se debe mostrar la

siguiente pantalla:

Si damos doble “click” sobre una de las funciones, se mostrará lo siguiente:

En esa ventana podemos ingresar valores en la columna “Value” y luego probar la función

dando “click” en el botón “Invoke”. Si todo está bien obtendremos el resultado correcto en al

área “Response”.

Repaso para el examen final | Laboratorio de Programación V Josué Martínez V.

3

Se añade nuevo proyecto “Application” En la categoría Visual Basic/WFC se elige “WFC Service Application”. Este proyecto se llamará

SI (Service Interface). Su función es la de ser la capa encargada de publicar, en este caso, la

calculadora.

Se añade un nuevo WCF Service

En la categoría Visual Basic/Web se elige “WCF Service”. Le llamaremos “Calculadora.svc”. Se

elimina el archivo “ICalculadora.vb” que se creó automáticamente y también el archivo

“Calculadora.vb” que solamente se puede ver si tenemos activada la opción de “Show all files”

en el “Solution explorer”.

Se copian tres archivos del “Library” en el SI

En el proyecto “Library” habilitamos la opción “Show all files” para poder ver la carpeta “bin”.

Luego, de la carpeta bin/debug, tomamos tres archivos (dll, pdb, xml).

Repaso para el examen final | Laboratorio de Programación V Josué Martínez V.

4

Los seleccionamos, damos “click” derecho y copiar. Posteriormente vamos al proyecto SI,

buscamos también la carpeta “bin” y pegamos en esta los archivos previamente seleccionados.

Quedando como resultado lo siguiente:

Una vez hecho lo anterior, procedemos a modificar el archivo “Calculadora.svc”. La única línea

de código que tendrá es la siguiente:

<%@ ServiceHost Service="PracticaExamenFinal.Library.Calculadora" %>

Lo anterior haciendo referencia a la clase Calculadora del proyecto “Library”.

Se crea un proyecto UI (User Interface) En la categoría Visual Basic/Web se elige “ASP.NET Web Application”. Se añade la referencia al

SI. Para lo anterior se da “click” derecho sobre el proyecto UI y se elige la opción “Add Service

Reference”, y aparecerá la siguiente ventana:

Repaso para el examen final | Laboratorio de Programación V Josué Martínez V.

5

A continuación, se da “click” en el botón “Discover” y deberá aparecer el servicio Calculadora

que creamos previamente.

Se expande dos veces el servicio de Calculadora hasta ver la interfaz; hacemos “click” en la

interfaz ICalculadora y se mostrarán las funciones en el área “Operations”.

A continuación, elegimos un nombre de “Namespace”, como por ejemplo

ReferenciaCalculadora y damos “click” en OK.

Repaso para el examen final | Laboratorio de Programación V Josué Martínez V.

6

Si todo salió bien, nos aparecerá una nueva carpeta llamada “Service References” con la

referencia que recién agregramos.

Se crea una interfaz para invocar las funciones de la calculadora

Para este ejemplo simplemente se agregarán dos botones a una página “aspx”, uno para

sumar y otro para restar.

Repaso para el examen final | Laboratorio de Programación V Josué Martínez V.

7

Invocación de las funciones del servicio Private Sub btnSumar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSumar.Click

Dim laCalculadora As New ReferenciaCalculadora.CalculadoraClient lblSuma.Text = laCalculadora.Sumar(CDec("20").ToString, CDec("50").ToString) 'La función CDec se utiliza cuando estamos tomando un número de un TextBox

End Sub Private Sub btnRestar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnRestar.Click

Dim laCalculadora As New ReferenciaCalculadora.CalculadoraClient lblSuma.Text = laCalculadora.Restar(CDec("20").ToString, CDec("50").ToString) 'La función CDec se utiliza cuando estamos tomando un número de un TextBox

End Sub

Lo importante al momento de invocar el servicio que está en la capa SI es la línea de código

que instancia la calculadora. Se debe hacer un “New” con el nombre del

“Namespace.CalculadoraClient”. De esta forma, más adelante es posible invocar las funciones

del objeto “laCalculadora” de forma habitual.

Si todo salió bien, el resultado debería mostrarse en pantalla…