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 WCFWCF 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 MicrosoftMicrosoft
.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 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:?
... aqu ira informacin especfica de la aplicacin como puede ser
la autenticacin ...
... mensaje al punto final de la comunicacin ...
... para indicar mensajes de error ...
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 namespaceSystem.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.
Elextremoo 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 contratoEl 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
{// Operaciones ofrecidas por el servicio
[OperationContract]
double ConvCentAFahr(double gCent);
[OperationContract]
double ConvFahrACent(double gFahr); } ServiceContractse
corresponde con la claseServiceContractAttribute.
OperationContractse corresponde con la
claseOperationContractAttribute. 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 WCFCREACIN 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.
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
idEvento
{get;set;}
[DataMember]public string
nombreDelEvento{get;set;}
[DataMember]public int
idTipoDeEvento{get;set;}
[DataMember]public string
fechaDelEvento{get;set;}
[DataMember]public int
idLugar
{get;set;}
public Evento()
{
} 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;
}
}
}19.Hacer doble click en el archivo Web.config para agregar el
cdigo que se presenta a continuacin del grfico.
20.Verificar que el archivo Web.config se presente como en el
siguiente grfico.
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.
23.Hacer click derecho sobre la clase Service.svc y seleccionar
Ver en explorador (Google Chrome).
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 IIS25.Acceder a
la carpeta inetpub del disco local (C:) y crear una nueva carpeta
denominada SitioWwebServicioWeb.
26.Correr el Internet Information Service
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.
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
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.
33.Verifique que la configuracin de la publicacin de sitio web
se presente como en la siguiente.
34.Haga click en configuracin avanzada.
35.Verifique que la configuracin se presente como en el
siguiente cuadro de dilogo.
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 201337.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.
40.Haga click en la pestaa Conexin y configrelo como se presenta
en la siguiente figura.
41.En configuracin seleccione Release luego haga click en el
botn de comando siguiente.
42.En Vista previa haga click en Comenzar previsualizacin.
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.
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
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#.
49.Seleccionar la plantilla Empty (Vaca).
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).
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.
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.
58.Presentar el Formulario Web form en el modo Diseo.
59.Haga soble click en el botn de comando Rellenar gridView.
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.
2