Compartir a través de


Anticipación de la adopción de Windows Communication Foundation: cómo facilitar la futura integración

Si utiliza ASP.NET hoy, y prevé que utilizará WCF en el futuro, este tema proporciona la orientación para garantizar que los nuevos servicios web ASP.NET funcionarán bien junto con las aplicaciones de WCF.

Recomendaciones generales

Adopte ASP.NET 2.0 para cualquier nuevo servicio. Al hacer esto, se proporcionará acceso a las mejoras y ampliaciones de la nueva versión. Sin embargo, también permitirá la posibilidad de utilizar los componentes de ASP.NET 2.0 junto con los componentes de WCF en la misma aplicación.

Protocolos

Use la nueva facilidad de ASP.NET 2.0 para validar la conformidad con WS-I Basic Profile 1.1:

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(
     ConformsTo = WsiProfiles.BasicProfile1_1,
     EmitConformanceClaims=true)]
public interface IEcho

Los servicios web ASP.NET que cumplen con WS-I Basic Profile 1.1 serán interoperables con clientes de WCF utilizando el enlace predefinido de WCF, BasicHttpBinding.

Desarrollo del servicio

Evite utilizar el atributo SoapDocumentServiceAttribute para hacer que los mensajes se enruten a métodos basados en el nombre completo del elemento de cuerpo del mensaje SOAP en lugar del encabezado HTTP SOAPAction. WCF utiliza el encabezado HTTP SOAPAction para enrutar los mensajes.

Representación de datos

El XML en el que XmlSerializer serializa de forma predeterminada un tipo es semánticamente idéntico al XML en el que DataContractSerializer serializa un tipo, dando por hecho que el espacio de nombres para el XML se define explícitamente. Al definir un tipo de datos para el uso con servicios web ASP.NET al prever la adopción en el futuro de WCF, haga lo siguiente:

  1. Defina el tipo mediante las clases de .NET Framework en lugar de mediante el Esquema XML.
  2. Agregue sólo SerializableAttribute y XmlRootAttribute a la clase, utilizando el último para definir explícitamente el espacio de nombres del tipo. No agregue atributos adicionales del espacio de nombres System.Xml.Serialization para controlar cómo se traducirá la clase de .NET Framework a XML.

Mediante el uso de este enfoque, debería ser capaz de convertir más adelante las clases .NET en contratos de datos añadiendo DataContractAttribute y DataMemberAttribute sin modificar significativamente el XML en el que las clases se serializan para la transmisión. Los tipos utilizados en mensajes por los servicios web ASP.NET podrán ser procesados como contratos de datos mediante aplicaciones de WCF, proporcionando, entre otras ventajas, un mejor rendimiento en aplicaciones de WCF.

Seguridad

Evite utilizar las opciones de autenticación proporcionadas por Internet Information Services (IIS). Los clientes de WCF no las admiten. Si es necesario proteger un servicio, utilice las opciones proporcionadas por WCF, porque estas opciones son mejores y se basan en protocolos estándar.

Consulte también

Conceptos

Anticipación de la adopción de Windows Communication Foundation: cómo facilitar la futura migración