Pergunta

Quero expor minha camada de serviço (que atualmente está escrita como biblioteca de classes padrão com POCOS) para consumo externo e interno. Clientes externos o usarão nas APIs de estilo REST, enquanto internamente meu aplicativo MVC o usará na ligação do Net.TCP para melhor desempenho.

Como faço isso elegantemente? Eu posso escrever 2 invólucros um para repouso usando recursos de repouso vs2010 beta 2 e outros usando ligações padrão do WCF.

Posso fazer isso em um invólucro? ou melhor apenas refatorar meus serviços existentes como WCF e expor em vários pontos de extremidade usando diferentes ligações, como WebHttpBinding, WSHTTPBINDING, etc.

Cumprimentos,

Ajay

Foi útil?

Solução

Sua biblioteca de serviços conterá apenas a implementação do serviço - seus contratos de serviço (e dados) devem estar em seus próprios "contratos" separados.

A questão da hospedagem e qual protocolo usar é tratado pelo seu serviço hospedeiro - Isso pode ser IIS ou um serviço NT separado ou um aplicativo de console ou algo assim. Aquilo é totalmente Independente da sua classe de serviço e sua biblioteca de serviços.

Então, sim - você pode criar facilmente uma biblioteca de serviços e expor esse serviço em uma infinidade de pontos de extremidade no seu host de serviço - essas duas coisas devem ser mantidas totalmente separadas uma da outra.

Outras dicas

Claro que você pode apenas adicionar mais deles ao arquivo de configuração ou usando o código.

Os recursos de repouso do VS 2010 Beta 2 são construídos sobre o WCF; portanto, se você quiser usá -los, precisará refatorar seu serviço em um serviço WCF de qualquer maneira. Nesse ponto, como Dani e Marc_s dizem, você pode facilmente adicionar pontos de extremidade adicionais ao serviço através do arquivo de configuração.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top