Вы находитесь на странице: 1из 35

SERVICIO WEB WFC: WINDOWS COMMUNICATION

FOUNDATION.
Windows Communication Foundation (WCF) es un marco de trabajo para la creacin de
aplicaciones orientadas a servicios. Con WCF, es posible enviar datos como mensajes
asincrnicos de un extremo de servicio a otro. Un extremo de servicio puede formar parte de
un servicio disponible continuamente hospedado por IIS, o puede ser un servicio hospedado
en una aplicacin. Un extremo puede ser un cliente de un servicio que solicita datos de un
extremo de servicio. Los mensajes pueden ser tan simples como un caracter o una palabra
que se enva como XML, o tan complejos como una secuencia de datos binarios. A
continuacin se indican unos cuantos escenarios de ejemplo:
Un servicio seguro para procesar transacciones comerciales.
Un servicio que proporciona datos actualizados a otras personas, como un informe
sobre trfico u otro servicio de supervisin.
Una aplicacin de panel que sondea los datos de uno o varios servicios y los muestra
en una presentacin lgica.
Exponer un flujo de trabajo implementado utilizando Windows Workflow Foundation
como un servicio WCF.
Una aplicacin de Silverlight para sondear un servicio en busca de las fuentes de datos
ms recientes.
Si bien era posible crear tales aplicaciones antes de que existiera WCF, con WCF el desarrollo
de extremos resulta ms sencillo que nunca. En resumen, WCF se ha diseado para ofrecer un
enfoque manejable para la creacin de servicios web y clientes de servicios web.

Caractersticas de WCF
WCF incluye el siguiente conjunto de caractersticas: Para obtener ms informacin,
veaDetalles de las caractersticas de WCF.

Orientacin a servicios
Interoperabilidad
Varios modelos de mensajes
Metadatos de servicios
Contratos de datos
Seguridad
Varios transportes y codificaciones
Mensajes confiables y en cola
Mensajes duraderos
Transacciones
Compatibilidad con AJAX y REST
Extensibilidad
Integracin de WCF con otras tecnologas de Microsoft

Microsoft .NET Services es una iniciativa de computacin en nube (cloud computing) que
utiliza WCF para la creacin de aplicaciones habilitadas para Internet. Utilice .NET Services
para crear servicios WCF que funcionan a travs de lmites de confianza.
El servidor de aplicaciones caractersticas de hospedaje de Windows Server AppFabric se ha
diseado especficamente para implementar y administrar aplicaciones que utilizan WCF para
las comunicaciones. caractersticas de hospedaje incluye sofisticadas opciones de
configuracin y herramientas diseadas especficamente para las aplicaciones habilitadas
para WCF.
Los servicios son autnomos y comparten esquemas (datos) y contratos (funcionalidad),
no tienen que asumir nada de lo que hay al otro lado del extremo. Los clientes consumen
1

servicios y los servicios ofrecen soluciones. Un servicio puede a su vez ser cliente de otro
servicio.
En WPF los mensajes tienen un envoltorio, una cabecera y un cuerpo y son definidos en XML
segn el protocolo SOAP. Veamos un mensaje SOAP:

<?xml version =1.0>


<soap:Envelope xmlns:soap=http://www.w3.org/...
soap:encodingStyle=http://www.w3.org/...>
<soap:Header>
... aqu ira informacin especfica de la aplicacin como puede ser la
autenticacin ...
</soap:Header>
<soap:Body>
... mensaje al punto final de la comunicacin ...
<soap:Fault>
... para indicar mensajes de error ...
</soap:Fault>
</soap:Body>
</soap>

Modelo de programacin de WCF


El cliente WCF es el que inicia la comunicacin y el servicio WCF es el que est esperando que
un cliente se comunique con l. Una nica aplicacin puede actuar como cliente y como
servicio. Este modelo de programacin orientado a servicios est definido por las clases
agrupadas bajo el namespace System.ServiceModel.

Implementar un servicio WCF

Un servicio es una aplicacin que expone uno o ms extremos, donde cada uno de ellos
expone una o ms operaciones de servicio. El extremo o punto final proporciona la nica
manera de comunicacin con el servicio. Est compuesto por:
Direccin: define la ubicacin del servicio (por ejemplo una URL, una direccin FTP o una
ruta de acceso local o de red).
Enlace: define la manera de establecer la comunicacin con el servicio
(BasicHttpBonding, PollingDuplexHttpBinding o WsHttpBinding). Los enlaces WCF
permiten especificar con facilidad un protocolo (HTTP o FTP), un mecanismo de seguridad
(autenticacin Windows o nombres de usuario y contrasea).
Contrato: incluye las operaciones expuestas por la clase del servicio WCF.
Definir un contrato
El contrato se corresponde con una interfaz, marcada con el atributo ServiceContract, que
especifica las operaciones que ofrece el servicio. Cada una de estas operaciones ser
proporcionada por un mtodo de la clase del servicio marcado con el atributo
OperationContract. Los mtodos que no estn marcados con este atributo no sern
presentados a los clientes.
?

[ServiceContract]
public interface IconvertirGrados
2

{ // Operaciones ofrecidas por el servicio


[OperationContract]
double ConvCentAFahr(double gCent);
[OperationContract]
double ConvFahrACent(double gFahr);
}

ServiceContract se corresponde con la clase ServiceContractAttribute.


OperationContract se corresponde con la clase OperationContractAttribute. De
esta forma indicamos que un mtodo como ConvCentAFahr o ConvFahrAcent definen
una operacin que forma parte de un contrato.

Ahora toca consumir el servicio

Es decir implementar un cliente WCF. Un cliente est compuesto de un proxy que


habilita a una aplicacin para poder establecer comunicacin con un servicio WCF y un
extremo. para los servicios que exponen varios extremos , el cliente selecciona el que
ms se ajusta a sus necesidades; por ejemplo uno que permita establecer una
comunicacin a travs de HTTP y sin autenticacin.

Un proxy se genera a partir de los metadatos obtenidos del servicio WCF e incluye
informacin sobre los tipos y mtodos expuestos por el servicio. Siguiendo con el
ejemplo del servicio de la temperatura vamos a crear una interfaz parecida a esta:

PUBLICACIN DE SERVICIO WEB WCF

CREACIN DEL SERVICIO WEB WCF


1.

En el men principal hacer click en Archivo/Nuevo y seleccionar


Proyecto

2.

Seleccionar Visual C# - Web - WCF y luego dentro de las


platillas seleccionar Aplicacin de servicios WCF.

3.

Verificar que el IDE del VS 2013 se presente como el en


siguiente grfico.

4.Hacer click derecho en el nombre de la clase Service1 y selecciones


Refactorizar-CambierNombre.

5.

Cambiar el nombre por el de Service.

6.

Verifique la obtencin de la vista previa del cambio de nombre.

7.Hacer click derecho en el nombre de la Interface IService1 (clase


base) y selecciones Refactorizar-CambiarNombre.

8.

Cambiar el nombre por el de IService.

9.

Verifique la obtencin de la vista previa del cambio de nombre.

10.

Verificar que el proyecto se presente como en el siguiente


grfico.

11.

Hacer click derecho en el nombre de la Interface Iservice y


seleccionar Cambier nombre.

12.

Verificar el cambio de nombre de la Interface IService1.cs por


el de Iservice.cs

13.

Hacer click derecho en el nombre de la Clase Service1.svc


(implementacin de la interface) y seleccionar Cambiar
nombre.

14.

Verificar el cambio de nombre de la Clase Service1.svc por el de


Service.svc.cs

15.

Agregar una clase.

16.

Asignar AdministradorDeConexin.cs como nombre de clase.

10

17.

Agregar a la clase AdministradorDeConexin.cs el siguiente


cdigo.
using System.Configuration;
using System.Data.SqlClient;
namespace WcfService
{ public class AdministradorDeConexin
{ public static SqlConnection getConexion()
{ SqlConnection conexion =
new

SqlConnection(ConfigurationManager.ConnectionStrings[DbEventoConnectionString
].ConnectionString);

try
{

return conexion;
}
catch (SqlException e)
{ return null;
}
}
}
}

18.

Agregar una clase y denominarla Evento.cs y agregar el


siguiente cdigo
using System.Runtime.Serialization;
namespace WcfServiceEvento
{ [DataContract]
public class Evento
{ [DataMember] public int
[DataMember] public string
[DataMember] public int
[DataMember] public string
[DataMember] public int
public Evento()
{
}

idEvento
{get;set;}
nombreDelEvento {get;set;}
idTipoDeEvento {get;set;}
fechaDelEvento {get;set;}
idLugar
{get;set;}

public Evento(int idEvento)


{ this.idEvento=idEvento;
}
public Evento( int
idEvento,
string nombreDelEvento,
int
idTipoDeEvento,
string fechaDelEvento,
int
idLugar
)
{ this.idEvento
= idEvento;
this.nombreDelEvento = nombreDelEvento;
this.idTipoDeEvento
= idTipoDeEvento;
this.fechaDelEvento
= fechaDelEvento;
this.idLugar
= idLugar;
}
public override string ToString()
{ return nombreDelEvento;
}
}
11

19.

Hacer doble click en el archivo Web.config para agregar el


cdigo que se presenta a continuacin del grfico.

<connectionStrings>
<add name=DbEventoConnectionString
connectionString= Data Source=JAVIER-PC\MSSQLSERVER2012;
Initial Catalog=DbEvento; Persist Security Info=True;User
ID=sa; Password=12345
providerName=System.Data.SqlClient/>
</connectionStrings>

20.

Verificar que el archivo Web.config se presente como en el


siguiente grfico.

12

21. Hacer click en la Interface Iservice.cs para modificar el cdigo por


defecto (sentencias y comentarios) e ingresar el siguiente cdigo.

22. Hacer click en la clase Service.svc (Implementacin de la


Interface) para modificar el cdigo por defecto (sentencias y
comentarios) e ingresar el siguiente cdigo.
13

23.

Hacer click derecho sobre la clase Service.svc y seleccionar Ver


en explorador (Google Chrome).

14

24. Verificar el despliegue del Servicio Web WCF en el Navegador


Web y verificar que bse ha creado el Servicio Web WCF.

PUBLICACIN DEL SERVICIO WEB WCF: Preparacin del IIS

15

25. Acceder a la carpeta inetpub del disco local (C:) y crear una nueva
carpeta denominada SitioWwebServicioWeb.

26. Correr el Internet Information Service

16

27. Seleccionar Agregar sitio web en Sitios del Grupo del aplicaciones
de Conexiones del Administrador de Intenet Information service
(IIS).

28. En nombre de sitio de Agregar sitio web colocar


SitioWebServicioWeb.

17

29. Haga click en el el botn de comando seleccionar. En Seleccionar


Grupo de aplicaciones, escoger ASP.NET v4.0 y luego aceptar los
cambios.

30. Haga click en en botn de comando () y el Buscar carpeta


seleccione la carpeta SitioWebPServicioWeb

18

31. En conectar como, seleccionar Usuario de la aplicacin


(Autenticacin de paso a travs).

32. En Puerto de Agregar sitio web coloque el nmero de puerto de


conexin. Para nuestro caso escribamos 85.

19

33. Verifique que la configuracin de la publicacin de sitio web se


presente como en la siguiente.

34. Haga click en configuracin avanzada.

20

35. Verifique que la configuracin se presente como en el siguiente


cuadro de dilogo.

21

36. En el Exporador Web escriba: http://localhost:85 y verificar que se


presente la siguiente ventana.
Direccin URL solicitada

http://localhost:85/

PUBLICACIN DEL SERVICIO WEB WCF: Publicacin en el VS 2013


22

37. En el Visual Studio hacer click derecho en el Proyecto


WebApplicationServicioWeb y seleccione publicar.

38. En Publicacin Web, seleccione Personalizado.

39. En Perfil personalizado nuevo escriba PerfilServicioWebWcf.


23

40. Haga click en la pestaa Conexin y configrelo como se presenta


en la siguiente figura.

24

41. En configuracin seleccione Release luego haga click en el botn


de comando siguiente.

42. En Vista previa haga click en Comenzar previsualizacin.

25

43. Verifique que se presente la siguiente ventana.

44. Haga click en el botn de comando Publicar y verifique que se


presente la siguiente ventana.

26

CREACIN DEL CONSUMIDOR DEL SERVICIO WEB WCF


45. En el men principal hacer click en Archivo/Nuevo y seleccionar
Proyecto

46. En el men principal hacer click en Archivo/Nuevo y seleccionar


Proyecto

27

47. En el men principal hacer click en Archivo/Nuevo y seleccionar


Proyecto

48. Seleccionar Visual C# - Web y luego dentro de las plantillas


seleccionar Aplicacin web ASP.NET Visual C#.

28

49. Seleccionar la plantilla Empty (Vaca).

29

50. Verifique que el Explorador de Soluciones se presente como en el


siguiente grfico.

51. Hacer click derecho en References y seleccionar Agregar


referencia.

52. En direccin poner la direccin (la direccin de la publicacin del


servicio web WCF).

30

53. Cambiar el nombre de la referencia en Espacio de Nombre y hacer


click en el botn de comando Ir y verificar que se presente el
siguiente grfico.

54. Verificar que el Explorador de Soluciones se presente como en el


siguiente grfico.

55. Agregar un Formulario Web Forms.

31

56. Asignar el nombre WebFormConsumoServicioWeb.

57. Modificar el cdigo del Formulario Web Form con lo que se


presenta a continuacin. Agregue un TexoBox, GridView y un Botn
de Comando.

32

58. Presentar el Formulario Web form en el modo Diseo.

59. Haga soble click en el botn de comando Rellenar gridView.

33

60. Modificar el cdigo por defecto y que se presente como en el


siguiente grfico.

61. Ejecutar la aplicacin web y que se presente como en el


siguiente grficio.

62. Publicar la aplicacin web recien creada y hacerla correr en red.

34

35

Вам также может понравиться