Udostępnij za pośrednictwem


Przewidywanie wdrożenia programu Windows Communication Foundation: złagodzenie przyszłej integracji

Jeśli używasz ASP.NET dzisiaj i przewidujesz korzystanie z usługi WCF w przyszłości, ten temat zawiera wskazówki, aby upewnić się, że nowe usługi sieci Web ASP.NET będą działać dobrze razem z aplikacjami WCF.

Zalecenia ogólne

Przyjęcie ASP.NET 2.0 dla nowych usług. Zapewni to dostęp do ulepszeń i udoskonaleń nowej wersji. Jednak umożliwi to również korzystanie ze składników ASP.NET 2.0 wraz ze składnikami WCF w tej samej aplikacji.

Protokoły

Użyj nowego obiektu ASP.NET 2.0 do sprawdzania zgodności z profilem podstawowym WS-I 1.1:

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

ASP.NET usługi sieci Web zgodne z WS-I Basic Profile 1.1 będą współdziałać z klientami WCF przy użyciu domyślnego powiązania programu WCF. BasicHttpBinding

Rozwój usług

Unikaj używania atrybutu SoapDocumentServiceAttribute, aby komunikaty były kierowane do metod w oparciu o w pełni kwalifikowaną nazwę elementu treści komunikatu SOAP, zamiast na podstawie nagłówka HTTP SOAPAction. WCF używa nagłówka HTTP SOAPAction do routingu komunikatów.

Reprezentacja danych

Kod XML, do którego XmlSerializer serializuje typ domyślnie, jest semantycznie identyczny z kodem XML, do którego DataContractSerializer serializuje typ, pod warunkiem że przestrzeń nazw xml jest jawnie zdefiniowana. Podczas definiowania typu danych do użycia z usługami sieci Web ASP.NET w oczekiwaniu na wdrożenie usługi WCF w przyszłości wykonaj następujące czynności:

  1. Zdefiniuj typ przy użyciu klas programu .NET Framework, a nie schematu XML.

  2. Dodaj tylko element SerializableAttribute i XmlRootAttribute do klasy, używając tej drugiej, aby jawnie zdefiniować przestrzeń nazw dla typu. Nie należy dodawać dodatkowych atrybutów z System.Xml.Serialization przestrzeni nazw, aby kontrolować sposób tłumaczenia klasy programu .NET Framework na język XML.

Przyjmując to podejście, powinno być możliwe późniejsze przekształcenie klas platformy .NET w kontrakty danych dzięki dodaniu DataContractAttribute i DataMemberAttribute, bez istotnego zmieniania kodu XML, w którym klasy są serializowane do transmisji. Typy używane w komunikatach przez usługi sieci Web ASP.NET będą mogły być przetwarzane jako kontrakty danych przez aplikacje WCF, co daje między innymi lepszą wydajność w aplikacjach WCF.

Bezpieczeństwo

Unikaj używania opcji uwierzytelniania udostępnianych przez usługi Internet Information Services (IIS). Klienci programu WCF nie obsługują ich. Jeśli usługa musi być zabezpieczona, użyj opcji udostępnianych przez usługę WCF, ponieważ te opcje są bogatsze i są oparte na standardowych protokołach.

Zobacz także