Usuário com melhor resposta
Boa pratica em WCF

Pergunta
-
Olá pessoal...
Gostaria de saber qual é a melhor maneira de trabalhar com multiplos contratos, por exemplo:
Code Snippetpublic class Servico : ICliente, IFornecedor, Imagine mais umas 100 interfaces aqui { }
No host seria assim
Code Snippetusing(ServiceHost host = new ServiceHost(typeof(Servico), baseAddresses))
{
host.AddServiceEndpoint(typeof(IClinte), new BasicHttpBinding(), "CLiente");
host.AddServiceEndpoint(typeof(IFornecedor), new BasicHttpBinding(), "Fornecedor");
host.AddServiceEndpoint(typeof(Aqui continuaria as outras 100 interfaces), new BasicHttpBinding(), "outras 100");
host.Open();
Console.ReadLine();
}
Isto esta correto e seria a melhor maneira de fazer um sistema distrubuido com varias classes e desta forma como ficaria o desempenho?
Alexander
Respostas
-
Boas Alexander,
Há diversas opções para trabalhar com o WCF. O que eu geralmente aconselho é olhar o App Arch Guide, que mostra detalhadamente como implementar cada uma, seus benefícios e as tecnologias envolvidas: http://apparchguide.codeplex.com/
http://www.israelaece.com- Marcado como Resposta Alexander Leão sábado, 4 de dezembro de 2010 12:02
Todas as Respostas
-
Boas Alexander,
Tecnicamente isso é possível, mas é importante dizer que você está agregando funcionalidades demais em um mesmo serviço. Além disso, o ServiceHost é responsável por gerenciar e manter o estado do serviço que ele expõe, e com isso, você pode ter contratos que necessitam de estado e outros que não precisam, e você não conseguirá diferenciar, já que o ServiceBehavior é aplicado em nível serviço e não de contrato.
Você pode sim ter mais do que um contrato implementado na mesma classe (serviço), mas desde que eles façam sentido estarem juntos, e você cria endpoints expondo cada uma das funcionalidades, ou podendo até usar herança de interface aqui para agregar funcionalidades em um mesmo contrato/endpoint.
Como referência, faça uma pesquisa sobre granularidade de serviços, que poderá te ajudar a clarear e te dar novas ideias: http://www.israelaece.com/post/Granularidade-de-Servicos.aspx
http://www.israelaece.com- Sugerido como Resposta Israel AeceModerator sexta-feira, 3 de dezembro de 2010 10:07
-
Israel...
Primeiro obrigado pela resposta rápita, estou estudando seus videos (muito bom) pre ver se aprendo mais.
Aproveitando a oportunidade me tira outra dúvida(na verdade é a mesma), tenho um sistema multicamada (BLL, DAL, DTO e UI) quero migrar este sistema para WCF,
a dúvida é : Qual é a melhor maneira de fazer esta migração levando em conta as várias classes que tenho como ficaria o host, o que vc aconselha?
Alexander -
Boas Alexander,
Há diversas opções para trabalhar com o WCF. O que eu geralmente aconselho é olhar o App Arch Guide, que mostra detalhadamente como implementar cada uma, seus benefícios e as tecnologias envolvidas: http://apparchguide.codeplex.com/
http://www.israelaece.com- Marcado como Resposta Alexander Leão sábado, 4 de dezembro de 2010 12:02