Antizipieren der Einführung der Windows Communication Foundation: Beschleunigung der zukünftigen Integration

Wenn Sie ASP.NET heute verwenden und die Verwendung von WCF in Zukunft antizipieren, bietet dieses Thema Anleitungen, um sicherzustellen, dass neue ASP.NET Webdienste gut mit WCF-Anwendungen funktionieren.

Allgemeine Empfehlungen

Übernehmen Sie ASP.NET 2.0 für alle neuen Dienste. Dadurch erhalten Sie Zugriff auf die Verbesserungen und Erweiterungen der neuen Version. Es wird jedoch auch die Möglichkeit ermöglichen, ASP.NET 2.0-Komponenten zusammen mit WCF-Komponenten in derselben Anwendung zu verwenden.

Protokolle

Verwenden Sie die neue Einrichtung von ASP.NET 2.0 für die Überprüfung der Konformität mit dem WS-I Basic Profile 1.1:

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

ASP.NET Webdienste, die WS-I Basic Profile 1.1 entsprechen, werden mit WCF-Clients mithilfe der vordefinierten WCF-Bindung BasicHttpBindinginteroperabel sein.

Dienstentwicklung

Vermeiden Sie die Verwendung des SoapDocumentServiceAttribute Attributs, damit Nachrichten basierend auf dem vollqualifizierten Namen des Textkörperelements der SOAP-Nachricht und nicht auf dem SOAPAction-HTTP-Header an Methoden weitergeleitet werden. WCF verwendet den SOAPAction-HTTP-Header zum Weiterleiten von Nachrichten.

Datendarstellung

Der XML-Code, in den ein Typ standardmäßig über XmlSerializer serialisiert wird, ist semantisch identisch mit dem XML-Code, in den der Typ über DataContractSerializer serialisiert wird, vorausgesetzt, der Namespace des XML-Codes ist explizit definiert. Wenn Sie einen Datentyp für die Verwendung mit ASP.NET Webdiensten definieren, um WCF in Zukunft zu übernehmen, gehen Sie wie folgt vor:

  1. Definieren Sie den Typ mithilfe von .NET Framework-Klassen anstelle von XML-Schema.

  2. Fügen Sie nur die SerializableAttribute Klasse und die XmlRootAttribute Klasse hinzu, indem Sie letztere verwenden, um den Namespace für den Typ explizit zu definieren. Fügen Sie keine zusätzlichen Attribute aus dem System.Xml.Serialization Namespace hinzu, um zu steuern, wie die .NET Framework-Klasse in XML übersetzt werden soll.

Durch die Übernahme dieses Ansatzes sollten Sie später die .NET-Klassen in Datenverträge umwandeln können, indem Sie DataContractAttribute und DataMemberAttribute hinzufügen, ohne den XML-Code erheblich zu ändern, in den die Klassen für die Übertragung serialisiert werden. Die typen, die in Nachrichten von ASP.NET Webdiensten verwendet werden, können als Datenverträge von WCF-Anwendungen verarbeitet werden, was unter anderem eine bessere Leistung in WCF-Anwendungen bietet.

Sicherheit

Vermeiden Sie die Verwendung der Authentifizierungsoptionen, die von Internetinformationsdienste (Internet Information Services, IIS) bereitgestellt werden. WCF-Clients unterstützen sie nicht. Wenn ein Dienst gesichert werden muss, verwenden Sie die von WCF bereitgestellten Optionen, da diese Optionen umfangreicher sind und auf Standardprotokollen basieren.

Siehe auch