Vooruitlopend op de overstap naar Windows Communication Foundation: Toekomstige integratie easing
Als u vandaag ASP.NET gebruikt en verwacht dat u WCF in de toekomst gebruikt, biedt dit onderwerp richtlijnen om ervoor te zorgen dat nieuwe ASP.NET-webservices goed samenwerken met WCF-toepassingen.
Algemene Aanbevelingen
Gebruik ASP.NET 2.0 voor nieuwe services. Als u dit doet, krijgt u toegang tot de verbeteringen en verbeteringen van de nieuwe versie. Het biedt echter ook de mogelijkheid om ASP.NET 2.0-onderdelen samen met WCF-onderdelen in dezelfde toepassing te gebruiken.
Protocollen
Gebruik ASP.NET 2.0's nieuwe faciliteit voor het valideren van de conformiteit met het WS-I Basic Profile 1.1:
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(
ConformsTo = WsiProfiles.BasicProfile1_1,
EmitConformanceClaims=true)]
public interface IEcho
ASP.NET webservices die voldoen aan WS-I Basic Profile 1.1, zijn interoperabel met WCF-clients met behulp van vooraf gedefinieerde WCF-binding, BasicHttpBinding.
Serviceontwikkeling
Vermijd het gebruik van het SoapDocumentServiceAttribute kenmerk om berichten te laten routeren naar methoden op basis van de volledig gekwalificeerde naam van het hoofdtekstelement van het SOAP-bericht in plaats van de SOAPAction HTTP-header. WCF gebruikt de SOAPAction HTTP-header voor routeringsberichten.
Gegevensweergave
De XML waarin XmlSerializer een type standaard wordt geserialiseerd, is semantisch identiek aan de XML waarin een DataContractSerializer type wordt geserialiseerd, mits de naamruimte voor de XML expliciet is gedefinieerd. Wanneer u een gegevenstype definieert voor gebruik met ASP.NET-webservices in afwachting van de overstap naar WCF in de toekomst, gaat u als volgt te werk:
Definieer het type met behulp van .NET Framework-klassen in plaats van XML-schema.
Voeg alleen de SerializableAttribute en de XmlRootAttribute klasse toe met behulp van de laatste om expliciet de naamruimte voor het type te definiƫren. Voeg geen extra kenmerken toe uit de System.Xml.Serialization naamruimte om te bepalen hoe de .NET Framework-klasse moet worden omgezet in XML.
Door deze benadering te gebruiken, moet u de .NET-klassen later in gegevenscontracten kunnen maken met de toevoeging van de DataContractAttribute en DataMemberAttribute zonder de XML-indeling te wijzigen waarin de klassen worden geserialiseerd voor verzending. De typen die worden gebruikt in berichten door ASP.NET webservices, kunnen worden verwerkt als gegevenscontracten door WCF-toepassingen, wat onder andere voordelen oplevert, betere prestaties in WCF-toepassingen.
Beveiliging
Vermijd het gebruik van de verificatieopties van Internet Information Services (IIS). WCF-clients bieden geen ondersteuning voor deze clients. Als een service moet worden beveiligd, gebruikt u de opties van WCF, omdat deze opties uitgebreider zijn en zijn gebaseerd op standaardprotocollen.