Antecipando a adoção do Windows Communication Foundation: facilitando a integração futura
Se você usa o ASP.NET hoje e prevê usar o WCF no futuro, este tópico fornece orientação para garantir que os novos serviços Web ASP.NET funcionem bem em conjunto com os aplicativos WCF.
Recomendações gerais
Adote a ASP.NET 2.0 para quaisquer novos serviços. Isso dará acesso às melhorias e aprimoramentos da nova versão. No entanto, ele também permitirá a possibilidade de usar componentes ASP.NET 2.0 juntamente com componentes WCF na mesma aplicação.
Protocolos
Use o novo recurso do ASP.NET 2.0 para validar a conformidade com o WS-I Basic Profile 1.1:
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(
ConformsTo = WsiProfiles.BasicProfile1_1,
EmitConformanceClaims=true)]
public interface IEcho
ASP.NET serviços Web que estejam em conformidade com o WS-I Basic Profile 1.1 serão interoperáveis com clientes WCF usando a vinculação predefinida do WCF, BasicHttpBinding.
Desenvolvimento de Serviços
Evite usar o SoapDocumentServiceAttribute atributo para que as mensagens sejam roteadas para métodos baseados no nome totalmente qualificado do elemento body da mensagem SOAP em vez do cabeçalho HTTP SOAPAction. WCF usa o cabeçalho HTTP SOAPAction para rotear mensagens.
Representação de dados
O XML no qual serializa um tipo por padrão é semanticamente idêntico ao XML no qual o DataContractSerializer serializa um tipo, desde que XmlSerializer o namespace para o 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 do .NET Framework em vez do 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 System.Xml.Serialization namespace 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 ASP.NET Web Services 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 WCF não os suportam. Se um serviço precisar ser protegido, use as opções fornecidas pelo WCF, porque essas opções são mais ricas e se baseiam em protocolos padrão.