Académique Documents
Professionnel Documents
Culture Documents
ec
Eje
mp
lo
de
l
Aroa Solana
de
lec
tur
a
Eje
mp
lo
lec
tur
a
de
Luarna
Eje
mp
lo
Cualquier forma de reproduccin, distribucin, comunicacin pblica o transformacin de esta obra solo puede ser realizada con la autorizacin de sus titulares, salvo excepcin
prevista por la ley. Dirjase a CEDRO (Centro Espaol de
Derechos Reprogrficos, www.cedro.org) si necesita fotocopiar o escanear algn fragmento de esta obra.
lec
tur
a
Windows Communication
Foundation
Eje
mp
lo
de
lec
tur
a
ndice
Eje
mp
lo
de
ndice ........................................................................5
Introduccin ...........................................................19
Arquitectura WCF................................................20
Contratos..............................................................21
Datos ....................................................................21
Mensaje ................................................................21
Servicio .................................................................22
Tabla 1.1 ...............................................................24
Policy y Binding...................................................24
Service Runtime...................................................25
Mensajes ...............................................................25
Activacin y Alojamiento.....................................26
Caractersticas de WCF.......................................27
Transacciones .......................................................27
Alojamiento ..........................................................28
Resumen ...............................................................28
Captulo 2
Conceptos de WCF ................................................33
Mensajes ...............................................................34
Estructura de un mensaje ....................................34
El sobre SOAP .....................................................35
Eje
mp
lo
de
lec
tur
a
Captulo 3
Modelo de programacin de WCF ........................67
Orientado a Servicios VS
Orientado a Objetos.............................68
Modelo de Servicios.............................................70
System.ServiceModel...........................................71
System.ServiceModel.Channels ..........................72
System.Transactions.............................................74
ScvUtil.exe ...........................................................75
Eje
mp
lo
de
lec
tur
a
de
lec
tur
a
Eje
mp
lo
Captulo 5
Enlaces ..................................................................140
Entendiendo los enlaces WCF ..........................140
Enlaces predefinidos ..........................................142
BasicHttpBinding...............................................144
Propiedades BasicHttpBinding .........................145
WsHttpBinding .................................................148
WSDualHttpBinding.........................................152
Propiedades WSDualHttpBinding ..................152
WSFederationHttpBinding ..............................156
Propiedades de WSFederationHttpBinding.....156
NetTcpBinding ..................................................159
Propiedades WS-ReliableMessaging ................160
NetNamedPipeBinding .....................................164
Propiedades NetNamedPipeBinding ................164
NetMsmqBinding ..............................................167
lec
tur
a
Eje
mp
lo
de
Captulo 6
Contratos ..............................................................211
Contratos WCF .................................................212
Contratos y sus relaciones con el CLR.............213
Service Contract ................................................213
Atributo [ServiceContract] ................................216
CallbackContract ...............................................217
ConfigurationName...........................................218
Name ..................................................................219
Namespace .........................................................220
ProtectionLevel..................................................221
SessionMode ......................................................222
Tipos de Servicios..............................................223
Typed..................................................................224
Typed Messages .................................................225
Untyped..............................................................226
Atributo [OperationContract] ...........................227
Action .................................................................227
AsyncPattern ......................................................229
IsInitiating ..........................................................230
IsOneWay...........................................................232
Eje
mp
lo
de
lec
tur
a
IsTerminating .....................................................233
Name ..................................................................234
ProtectionLevel..................................................234
ReplyAction........................................................236
Data Contracts ...................................................236
Atributo [DataContract] ....................................237
Name ..................................................................240
Namespace .........................................................241
Atributo [DataMember].....................................241
EmitDefaultValue ..............................................242
IsRequiered ........................................................243
Name ..................................................................243
Order ..................................................................244
Atributo [KnownType] .....................................245
MethodName.....................................................246
Type ....................................................................247
Message Contracts .............................................247
Atributo [MessageContract] .............................248
HasProtectionLevel ...........................................249
IsWrapped ..........................................................250
ProtectionLevel..................................................250
WrapperName ...................................................251
WrapperNamespace...........................................252
Atributo [MessageHeader] ...............................252
Actor ...................................................................253
MustUnderstand ................................................254
Name ..................................................................254
Namespace .........................................................255
Relay ..................................................................255
Atributo [MessageBodyMember] .....................256
Name ..................................................................257
lec
tur
a
Order ..................................................................257
Atributo [MessageProperty] ..............................258
Name ..................................................................259
Programado contratos WCF.............................260
Data Contract ....................................................260
Message Contract ..............................................270
Eje
mp
lo
de
Captulo 7
Clientes.................................................................277
Arquitectura del cliente .....................................277
Objetos Cliente ..................................................280
ICommunicationObject.....................................280
IExtensibleObject...............................................282
Canales de Cliente .............................................283
IClientChannel ..................................................283
IContextChannel ...............................................284
Factoras de Canales ..........................................285
La Clase ChannelFactory .................................286
Constructores.....................................................287
Propiedades ........................................................287
Mtodos..............................................................289
Mtodo CreateChannel .....................................291
Patrones de Comunicacin del Cliente ............292
One-Way ............................................................293
Solicitud/Respuesta............................................294
Dplex ................................................................297
Servicio ...............................................................298
Cliente ................................................................301
Cliente Dplex usando DupplexChannelFactory
302
Asncrona............................................................304
de
lec
tur
a
Servicio ...............................................................304
Cliente ................................................................306
Crear cdigo de cliente......................................307
Generar Cdigo de cliente ................................308
Definir Enlaces y Extremos de Cliente.............310
Servicios Typed vs Servicios UnTyped .............313
Invocar Operaciones de un Servicio Tipado.....314
Invocar Operaciones de un Servicio no Tipado315
Informacin de utilidad .....................................316
Inicializar Canales interactivamente .................316
Duracin de la sesin y del canal ......................317
Problemas de bloqueo .......................................318
Manejo de Excepciones .....................................320
Caso Prctico .....................................................321
Ejemplo de programacin de un Cliente..........321
ChannelFactory..................................................321
Dplex ................................................................331
Eje
mp
lo
Captulo 8
Servicios ................................................................341
Tipos de Servicios..............................................341
Typed..................................................................342
Untyped..............................................................344
Typed Message...................................................347
Contratos de Servicio ........................................348
Extremos de Servicio .........................................349
A travs de Cdigo.............................................350
A travs del archivo de Configuracin ..............351
Comportamientos de Servicio ...........................353
Atributo ServiceBehavior...................................355
AddressFilterMode ............................................356
Eje
mp
lo
de
lec
tur
a
AutomaticSessionShutdown ..............................357
ConcurrencyMode .............................................358
ConfigurationName...........................................359
IgnoreExtensionDataObject..............................360
IncludeExceptionDetailInFaults........................361
InstanceContextMode........................................362
ReleaseServiceInstanceOnTransactionComplete.............................363
TransactionAutoCompleteOnSessionClose......364
TransactionIsolationLevel .................................364
TransactionTimeout ..........................................367
UseSynchronizedContext ..................................368
ValidateMustUnderstand ...................................368
Atributo OperationBehavior..............................369
AutoDisposeParameters.....................................370
Impersonation ....................................................371
ReleaseInstanceMode ........................................372
TransactionAutoComplete.................................374
TransactionScopeRequired................................375
Throttling ..........................................................377
InstanceContext .................................................379
Manejo de Excepciones .....................................380
FaultException ...................................................382
Atributo FaultContract......................................383
Programado un Ejemplo ...................................387
Captulo 9
Transacciones y Sesiones Fiables.........................398
Transacciones .....................................................399
Atomicidad .........................................................400
Consistencia .......................................................401
de
lec
tur
a
Aislamiento.........................................................401
Durabilidad ........................................................402
Atributos de Transaction en
System.ServiceModel ....................402
Atributo ServiceBehavior...................................403
Atributo OperationBehavior..............................406
Atributo TransactionFlow..................................407
Transacin WS-Atomic .....................................408
Especificar transacciones a travs
de la configuracin........................409
Sesiones Fiables..................................................411
Intercambio de Mensajes ...................................411
Asegurar los mensajes ........................................416
Colas...................................................................422
WCF y las Colas ................................................426
Buenas prcticas en el uso de Colas ..................438
Eje
mp
lo
Captulo 10
Seguridad ..............................................................398
Vista General......................................................442
Conceptos...........................................................443
Integridad ...........................................................444
Confidencialidad ................................................444
Autenticacin .....................................................444
Autorizacin .......................................................445
Por qu seguridad WCF? ................................447
Transferencia de Seguridad ...............................447
Control de Acceso / Autenticacin ...................449
Miembro ASP.NET y Role Provider................452
Administrador de autorizaciones.......................456
Modelo de identidad..........................................458
lo
de
lec
tur
a
Auditora.............................................................461
Credenciales .......................................................462
Comportamientos de Seguridad y Enlaces .......465
Comportamientos de Seguridad........................465
Credenciales de Servicio....................................466
Credenciales de Cliente.....................................468
Autorizacin de Servicio....................................470
Auditoria de Servicio .........................................471
Enlaces................................................................472
BasicHttpBinding...............................................472
WSHttpBinding.................................................473
WSDualHttpBinding.........................................477
NetTcpBinding ..................................................481
NetNamedPipeBinding .....................................481
MsmqIntegrationBinding ..................................482
NetMsmqBinding ..............................................482
WSFederationBinding.......................................483
Asegurar Clientes y Servicios ............................484
Recomendaciones...............................................488
Eje
mp
Captulo 11
Interoperatibilidad e Integracin.........................490
Interoperabilidad................................................491
Protocolo de soporte para servicios Web..........491
WSE (Mejoras de Servicios Web).....................496
Servicio Web ......................................................496
Cliente WCF ....................................................499
Servicios Web ASP.NET ...................................504
WCF/ASP.NET Compatible con extremos .....505
Extremos a travs de cdigo ..............................506
Extremos a travs del archivo
lec
tur
a
de configuracin .................................507
Integracin .........................................................508
COM+ ................................................................509
Herramienta de configuracin del Modelo
de Servicio de COM + .......................510
MSMQ ...............................................................514
Servicios WCF y Clientes MSMQ ...................515
Eje
mp
lo
de
Captulo 12
Desplegar WCF....................................................518
Instalar Servicios WCF .....................................518
Soporte de Sistemas Operativos ........................518
Requisitos software ............................................519
.NET Framework ..............................................519
Internet Information Server ..............................520
Microsoft Message Queuing .............................522
Instalar el Servicio WCF ...................................524
IIS .......................................................................525
Servicios Windows.............................................527
Configuraciones de Servicios WCF..................528
Actualizacin de Servicios .................................529
Solucin a problemasde instalaciones WCF ...530
Comunicacin Cliente/Servicio ........................531
Comportamiento inesperado de servicios.........532
Resumen .............................................................533
Captulo 13
Personalizar WCF ................................................535
La extensin de ServiceHost y la capa
del Modelo de Servicio .....................536
Cliente ................................................................536
de
lec
tur
a
Eje
mp
lo
Captulo 14
Gestionar WCF ....................................................575
Trazas..................................................................576
Realizar trazas de extremo a extremo................576
Servicio de Trazas ..............................................581
Actividad ............................................................582
Proyecto ............................................................582
Editor de configuracin del Servicio ................583
Configuracin ...................................................586
Servicios .............................................................586
Cliente ................................................................587
Enlaces................................................................588
Diagnsticos.......................................................589
Avanzado ............................................................590
lec
tur
a
de
Captulo 15
Alojar Servicios WCF ...........................................601
Alojar vs Auto-Alojamiento ...............................602
Alojar ..................................................................602
Auto-Alojar.........................................................603
Rpida comparacin...........................................604
Opciones de alojamiento ...................................605
Alojar en el IIS ...................................................605
Alojar en Cdigo Administrado ........................606
Ejemplo de alojamiento .....................................609
Eje
mp
lo
Apdice A
Caso Prctico Captulo 5...................................625
Caso Prctico Captulo 7...................................630
lec
tur
a
Introduccin
Eje
mp
lo
de
Este libro pretende ofrecer al lector los contenidos necesarios, aunque no todos, para poder preparar el examen de
certificacin de Microsoft 70-503. Este libro ofrece al lector una inmersin en el mundo de WCF, para que pueda
probar e ir investigando como apoyo en el estudio imprescindible de esta materia, an as hay que destacar que lo
ms importante es la experiencia que se adquiere en el transcurso del estudio, de la creacin propia de ejemplos, etc.
Para poder certificarse como MTCS: Windows Communication Foundation Applications, no solo hay que aprobar el examen 70-503, sino tambin el 70-536 basado en
Microsoft .NET Framework- Application Development
Foundation.
Despus de esta pequea introduccin en las certificaciones empecemos a raspar en la superficie del profundo universo que engloba Windows Communication Foundation.
Actualmente las empresas tienen la necesidad de poder
interconectar los procesos, las personas y la informacin.
Por ello uno de los problemas ms grandes a los que una
Arquitectura WCF
lec
tur
a
empresa ha de hacer frente es el poder integrar estos componentes IT (aplicaciones, datos y sistemas).
La arquitectura Orientada a Servicios (SOA) proporciona una estrategia general de organizacin de elementos IT,
en definitiva, nos brinda un marco de diseo para la integracin de aplicaciones independientes de manera que se pueda desde la red acceder a sus funcionalidades, las cuales se
ofrecen como servicios. WCF se basa en esta arquitectura.
Eje
mp
lo
de
Ilustracin 1.1:
Arquitectura en Capas de WCF
lec
tur
a
Datos
de
Eje
mp
lo
Un contrato de datos estipula de manera explcita los datos que se intercambiarn con el servicio. El servicio y el
cliente no necesitan llegar a un acuerdo sobre los tipos,
pero si necesitan llegar a un acuerdo sobre los datos del
contrato. Esto incluye los parmetros y el tipo de retorno.
Mensaje
lec
tur
a
La mayora de las veces un contrato de datos es suficiente, pero en ocasiones puede que un poco ms de control
sea necesario.
Servicio
Eje
mp
lo
de
lec
tur
a
Determina el nmero de mensajes que se
procesan
Eje
mp
Capacidad
CARACTERSTICAS
lo
COMPORTAMIENTO
de
Ilustracin 1.2
Error
Metadatos
Instanciacin
Inspeccin
Dispensador
Concurrencia
Determina como cada uno de los servicios, o instancias, manejan hilos. Este comportamiento ayuda a controlar el nmero de hilos que pueden tener acceso a una
determinada instancia de un servicio
de
lo
Filtrado
de parmetros
lec
tur
a
Transacciones
Tabla 1.1
Eje
mp
Policy y Binding
Los contratos de poltica y enlace (Policy y Binding) especifican informacin importante como la seguridad, el protocolo y otra informacin, de manera que esto se verifica
antes de que empiece con la comunicacin.
Service Runtime
lec
tur
a
Eje
mp
lo
de
La capa de mensajera define qu formatos y pautas de intercambio de datos pueden ser utilizados por el servicio de
comunicacin. Las aplicaciones cliente pueden ser desarrolladas para acceder a esta capa y manejar los detalles de mensajera y trabajar directamente con los mensajes y canales.
La siguiente tabla muestra los canales y componentes
que forman parte de la capa de mensajera:
COMPONENTES
CARACTERSTICAS
Codificadores
Canal TCP
Canalizaciones
con nombre
Canal MSMQ
Canal utilizado por los servicios que interactan con el servicio de colas de mensajes MSMQ
Tabla 1.2
lo
de
lec
tur
a
Canal HTTP
Eje
mp
Activacin y Alojamiento
La capa de activacin y alojamiento ofrece diferentes opciones en las que un servicio puede ser iniciado, as como
alojado. Los servicios pueden ser alojados en el contexto
de otra aplicacin o pueden ser auto alojados.
La siguiente tabla muestra las opciones de activacin y
alojamiento proporcionados por esta capa:
CARACTERSTICAS
Servicio de
Activacin
de Windows
.EXE
WCF permite a los servicios que se ejecuten como archivos ejecutables (.exe)
Servicios
de Windows
COM+
de
lec
tur
a
OPCIONES
Tabla 1.3
Eje
mp
lo
CARACTERSTICAS DE WCF
Transacciones
lec
tur
a
para llevar a cabo, y durante la ejecucin de esta transaccin una de las tareas falla, entonces fallan las tres. El
xito de la transaccin slo suceder si todas las tareas
que la componen terminan con xito. WCF incorpora
este mismo procesamiento de transacciones en su comunicacin.
Alojamiento
Eje
mp
Resumen
lo
de
Eje
mp
lo
de
lec
tur
a
Ilustracin 1.3
Estructura del Framework 3.0
de
lec
tur
a
Eje
mp
lo
de
lec
tur
a
Eje
mp
lo
lec
tur
a
de
lo
Eje
mp
Ilustracin 1.4
Ejemplo de aplicacin en WCF