Поделиться через


Планирование перехода на платформу Windows Communication Foundation: упрощение будущей интеграции

Если вы используете ASP.NET сегодня и ожидаете использование WCF в будущем, в этом разделе приведены рекомендации по обеспечению того, что новые веб-службы ASP.NET будут работать хорошо вместе с приложениями WCF.

Основные рекомендации

Используйте для создания новых служб ASP.NET 2.0. Это обеспечит доступ к усовершенствованиям, появившимся в новой версии. Однако она также позволит использовать компоненты ASP.NET 2.0 вместе с компонентами WCF в одном приложении.

Протоколы

Используйте новую функцию ASP.NET 2.0 для проверки соответствия спецификации WS-I Basic Profile 1.1:

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

ASP.NET веб-службы, соответствующие базовому профилю WS-I 1.1, будут взаимодействовать с клиентами WCF с помощью предварительно определенной привязки BasicHttpBindingWCF.

Разработка служб

Избегайте использования атрибута SoapDocumentServiceAttribute для маршрутизации сообщений методами по полному имени элемента текста сообщения протокола SOAP вместо заголовка HTTP SOAPAction. WCF использует заголовок SOAPAction HTTP для маршрутизации сообщений.

Представление данных

XML-код, в который тип сериализуется сериализатором XmlSerializer, по умолчанию семантически идентичен XML-коду, в который тип сериализуется сериализатором DataContractSerializer, при условии, что пространство имен для XML задано явным образом. При определении типа данных для использования с веб-службами ASP.NET в ожидании внедрения WCF в будущем сделайте следующее:

  1. Задавайте тип с использованием классов .NET Framework, а не схемы XML.

  2. Добавляйте в класс только атрибуты SerializableAttribute и XmlRootAttribute, используя последний для явного задания пространства имен для типа. Не добавляйте дополнительные атрибуты из пространства имен System.Xml.Serialization для задания способа преобразования класса .NET Framework в XML.

Используя этот подход, вы впоследствии сможете превратить классы .NET в контракты данных, добавив атрибуты DataContractAttribute и DataMemberAttribute, без значительного изменения XML-кода, в который классы сериализуются для передачи. Типы, используемые в сообщениях ASP.NET веб-службами, смогут обрабатываться как контракты данных приложениями WCF, предоставляя, среди прочего, более высокую производительность в приложениях WCF.

Безопасность

Избегайте использования параметров проверки подлинности, предусмотренных в службах IIS. Клиенты WCF не поддерживают их. Если служба должна быть защищенной, используйте параметры, предоставляемые WCF, так как эти параметры являются более богатыми и основаны на стандартных протоколах.

См. также