En el post anterior, hablábamos de como inyectar dlls a un sql server, en esta ocasión, y siguiendo con el mismo tema, comunicaremos un sql server con un servicio web delegando la comunicación en una dll.

Para comenzar a aplicar la solución se debe generar una solución limpia, y añadir un proyecto de aplicación WCF

wcfpost1

Como ya se ha comentado en otras ocasiones, un proyecto de WCF, es un proyecto de interfaz que define la interacción con la aplicación. En esta solución sería la fachada que exporta la funcionalidad.

Es importante la generación de un proyecto de test, que permita generar la pruebas y comprobar la funcionalidad de los servicios.

Creación de componente “dll”
Posteriormente se creará un proyecto dll, cuya única misión tener una referencia web al servicio y mantener la comunicación con el mismo.

wcfpost2

Después se procederá a agregar la referencia web. Hay que destacar que es necesario agregarla como referencia web y no como un cliente WCF, por problemas de interoperabilidad y de uso de .net framework (la librería System.ServiModel no es importable a sql server)

wcfpost3

 

 

 

Se hace click en “Advanced”:
Y por último se hace click en “add web Reference”wcfpost4

Se hace click en “Advanced”:
Y por último se hace click en “add web Reference”

wcfpost5

Al hacer click en “Add Reference”, genera una referencia web, que permite la comunicación con el servicio web.

Por último, dicho servicio se consumirá desde una función estática que permita facilitar su invocación desde un procedimiento almacenado.
Como ejemplo se muestra a continuación la generación de una clase que invoca al servicio web.

public class WebserviceInvoker
{
public static string Invoke( int param)
{
string result = string.Empty;
Service1 client = new Service1();
client.Url= “http://localhost/Optimissa.POC.SQLCRL.WCF/Service1.svc”;
result = client.GetData(param,true);

return result;
}

}

Anuncios