Partager via


Anticipation de l'adoption de Windows Communication Foundation : faciliter l'intégration future

Si vous utilisez ASP.NET aujourd'hui, et prévoyez d'utiliser WCF dans le futur, cette rubrique fournit des informations permettant de garantir que les nouveaux services Web ASP.NET fonctionneront correctement avec les applications WCF.

Recommandations générales

Adoptez ASP.NET 2.0 pour les nouveaux services. Vous pourrez ainsi accéder aux améliorations et enrichissements de la nouvelle version. Toutefois, l'utilisation des composants ASP.NET 2.0 avec des composants WCF dans la même application sera également possible.

Protocoles

Utilisez la nouvelle fonctionnalité d'ASP.NET 2.0 pour valider la conformité au profil WS-I Basic Profile 1.1 :

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

Les services Web ASP.NET conformes au profil WS-I Basic Profile 1.1 seront interopérables avec les clients WCF en utilisant la liaison prédéfinie WCF, BasicHttpBinding.

Développement des services

Évitez d'utiliser l'attribut SoapDocumentServiceAttribute pour router des messages vers des méthodes basées sur le nom qualifié complet de l'élément de corps du message SOAP plutôt que l'en-tête HTTP SOAPAction. WCF utilise l'en-tête HTTP SOAPAction pour router des messages.

Représentation des données

Le XML dans lequel XmlSerializer sérialise un type par défaut est sémantiquement identique au XML dans lequel DataContractSerializer sérialise un type, à condition que l'espace de noms du XML soit défini explicitement. Lorsque vous définissez un type de données à utiliser avec les services Web ASP.NET en prévision de l'adoption future de WCF, procédez comme suit :

  1. Définissez le type à l'aide des classes .NET Framework plutôt que XML Schema.
  2. Ajoutez uniquement SerializableAttribute et XmlRootAttribute à la classe, en utilisant ce dernier pour définir explicitement l'espace de noms du type. N'ajoutez pas d'attribut supplémentaire à partir de l'espace de noms System.Xml.Serialization pour contrôler la manière dont la classe .NET Framework sera traduite dans XML.

En adoptant cette approche, vous devez être en mesure de créer ultérieurement les classes .NET dans des contrats de données avec l'ajout de DataContractAttribute et DataMemberAttribute sans modifier de manière significative le XML dans lequel les classes sont sérialisées pour la transmission. Les types utilisés dans les messages par les services Web ASP.NET pourront être traités comme des contrats de données par les applications WCF, en offrant, entre autres avantages, de meilleures performances dans les applications WCF.

Sécurité

Évitez d'utiliser les options d'authentification fournies par des services IIS (Internet Information Services ). Les clients WCF ne les prennent pas en charge. Si un service doit être sécurisé, utilisez les options fournies par WCF, car ces options sont plus complètes et sont basées sur des protocoles standard.

Voir aussi

Concepts

Anticipation de l'adoption de Windows Communication Foundation : faciliter la future migration