En WCF, ¿cuál es la diferencia entre Comportamiento y Contrato? Al examinar el archivo de configuración, ambos parecen apuntar a la interfaz de la funcionalidad del servicio. ¿Por qué son ambos necesarios?WCF - ¿diferencia entre un comportamiento y un contrato?
Respuesta
Notas de la versión de Cole:
El Contrato especifica lo que realmente hace el servicio. En otras palabras, qué Operaciones son válidas.
El punto final especifica una instancia en ejecución real del servicio. Es el "servicio" real en el sentido de que ejecuta, ya sea como un Servicio de Windows o bajo IIS.
El comportamiento Servicio define cómo el punto final interactúa con los clientes. Atributos como seguridad, concurrencia, almacenamiento en caché, registro, etc., todos son parte del comportamiento.
También hay un comportamiento Operación que es similar al comportamiento del servicio, pero sólo se pone aplica cuando se ejecuta una operación específica .
Para obtener más información, sugiero que empiece con WCF Architecture Overview.
El contrato es interfaz - define las operaciones de servicio expuestas por el servicio WCF, que pueden o no corresponder 1: 1 a una interfaz de código sin adornos de su aplicación.
El Comportamiento es una implementación de esa interfaz en el host - para todos los efectos, "el servicio".
Un poco tarde para una respuesta, pero
- como estoy actualmente luchando con la diferencia entre los dos
- y como éste es uno de los primeros resultados en Google
- y porque la corriente respuestas no dieron me que AHA momento
siguiente es en pocas palabras w sombrero encendió la luz para mí (de Cudo a Fred Yang)
ServiceContract
- afecta el comportamiento del cliente y servidor
- puede aplicarse tanto a la interfaz y la clase
- afecta el WSDL emitió
ServiceBehavior
- sólo afecta al comportamiento del servidor
- sólo es aplicable a una implementación de la clase
- no afecta el WSDL
De ServiceContract vs ServiceBehavior
En WCF , Atributo ServiceContract afecta el comportamiento del cliente y del servidor, mientras que ServiceBehavior solo afecta el comportamiento del servidor. ServiceContract puede aplicarse tanto a la interfaz como a la clase, pero ServiceBehavior solo se puede aplicar a la implementación de clase. ServiceContract afecta al wsdl emitido, pero ServiceBehavior no hará que afecte el wsdl emitido.
El contrato es un contrato entre el cliente y el proveedor del servicio. Indica qué datos estarán expuestos.
El comportamiento del servicio es el comportamiento del servicio que indica cómo se comportará el servicio cuando el cliente acceda al servicio. Supongamos que si varios clientes acceden al servicio, si puede o no solicitar, cómo manejar solicitudes múltiples, qué hacer para manejar solicitudes múltiples. Estas cosas son manejadas por el comportamiento del servicio.
¿Cómo agrega exactamente esta respuesta extremadamente tardía? valor o algo nuevo a lo que ya se ha dado? – slugster
- 1. ¿Puede un contrato de datos WCF contener un contrato de operación WCF dentro de él? ¿Por qué?
- 2. Diferencia de comportamiento entre parseInt() y parseFloat()
- 3. WCF contrato desajuste problema
- 4. WCF Duplex Contrato
- 5. Diferencia entre OperationTimeout y SendTimeout en WCF
- 6. diferencia entre el API Web WCF y WCF Data Services
- 7. ¿Diferencia entre un objeto y un hash?
- 8. ¿Diferencia entre un script y un programa?
- 9. Diferencia entre un subsistema y un componente
- 10. ¿Diferencia entre un objeto y un diccionario?
- 11. diferencia entre WCF Services y Web Services y REST Service
- 12. Diferencia de comportamiento entre UIView.subviews y [NSView subviews]
- 13. Diferencia de comportamiento de Firefox y Chrome entre constructor.prototype?
- 14. Contrato de datos WCF y datos de entidad de referencia?
- 15. ¿Cuál es la diferencia entre WCF y WPF?
- 16. ¿Diferencia entre una "coroutine" y un "hilo"?
- 17. Diferencia entre una clase y un módulo
- 18. Diferencia entre un +++++ b y A ++ + ++ b
- 19. Diferencia entre WCF Service, WCF RIA Services y WCF Data Service
- 20. Diferencia entre netTcpContextBinding y netTcpBinding
- 21. ¿qué significa contrato primero y contrato último?
- 22. Contrato de datos tipos conocidos y un conjunto de interfaces de heredar entre sí
- 23. ¿Hay alguna diferencia entre un control y un widget?
- 24. ¿Hay alguna diferencia entre un GUID y un UUID?
- 25. Diferencia entre un complemento jQuery y un widget jQuery?
- 26. Diferencia entre un archivo empaquetado y un archivo descompuesto
- 27. Diferencia entre un ImageView y un ImageButton clicables
- 28. ¿Cuál es la diferencia entre un predicado y un funcionador?
- 29. ¿Cómo saber la diferencia entre un iterador y un iterable?
- 30. ¿Cuál es la diferencia entre un método y un selector?
Y también para la diferencia entre el comportamiento del punto final y el comportamiento del servicio: http://blogs.msdn.com/b/mahjayar/archive/2006/02/27/540033.aspx – Arvand