Antecipar a adoção do Windows Communication Foundation: facilitar a integração futura
Se você usar o ASP.NET hoje e prever o uso do WCF no futuro, este tópico fornecerá diretrizes para garantir que os novos serviços Web ASP.NET funcionem bem junto com aplicativos WCF.
Recomendações gerais
Adote ASP.NET 2.0 para quaisquer novos serviços. Isso fornecerá acesso aos aprimoramentos e melhorias da nova versão. No entanto, ele também permitirá a possibilidade de usar ASP.NET componentes 2.0 junto com componentes WCF no mesmo aplicativo.
Protocolos
Use a nova instalação do ASP.NET 2.0 para validar a conformidade com o Perfil Básico do WS-I 1.1:
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(
ConformsTo = WsiProfiles.BasicProfile1_1,
EmitConformanceClaims=true)]
public interface IEcho
Os serviços Web do ASP.NET que estiverem em conformidade com o WS-I Basic Profile 1.1 serão interoperáveis com clientes WCF usando a associação predefinida do WCF, BasicHttpBinding.
Desenvolvimento do serviço
Evite usar o atributo SoapDocumentServiceAttribute para ter mensagens roteadas para métodos com base no nome totalmente qualificado do elemento body da mensagem SOAP em vez do cabeçalho HTTP SOAPAction. O WCF usa o cabeçalho HTTP SOAPAction para roteamento de mensagens.
Representação de dados
O XML em que XmlSerializer serializa um tipo é, por padrão, semanticamente idêntico ao XML em que o DataContractSerializer serializa um tipo, desde que o namespace do XML seja explicitamente definido. Ao definir um tipo de dados para uso com ASP.NET serviços Web em antecipação à adoção do WCF no futuro, faça o seguinte:
Defina o tipo usando classes .NET Framework em vez de Esquema XML.
Adicione apenas o SerializableAttribute e o XmlRootAttribute à classe, usando o último para definir explicitamente o namespace para o tipo. Não adicione atributos adicionais do namespace System.Xml.Serialization para controlar como a classe .NET Framework deve ser convertida em XML.
Ao adotar essa abordagem, você deve ser capaz de posteriormente transformar as classes .NET em contratos de dados com a adição do DataContractAttribute e DataMemberAttribute sem alterar significativamente o XML no qual as classes são serializadas para transmissão. Os tipos usados em mensagens por serviços Web do ASP.NET poderão ser processados como contratos de dados por aplicativos WCF, gerando, entre outros benefícios, melhor desempenho em aplicativos WCF.
Segurança
Evite usar as opções de autenticação fornecidas pelo IIS (Serviços de Informações da Internet). Os clientes do WCF não dão suporte a eles. Se um serviço precisar ser protegido, use as opções fornecidas pelo WCF, pois essas opções são mais avançadas e são baseadas em protocolos padrão.