none
Dúvida sobre namespaces e arquitetura RRS feed

  • Pergunta

  • Boa tarde!

     

    Aqui na empresa onde trabalho, nós criamos um assembly com várias classes e métodos (espalhados em seus respectivos namespaces) que possuem os métodos e classes responsáveis pela maioria das atividades existentes.

     

    Para expor essas funcionalidades à outros aplicativos, resolvemos criar serviços (wcf) com esta finalidade. Então fizemos realmente cerca de 5 serviços. Separando-os por macro funcionalidade. Por exemplo:

    Atendimento.svc
    Transporte.svc
    Funcionarios.svc
    ...

    Todos esses serviços estão no mesmo projeto e utilizam a referência ao assembly que mencionei anteriormente. Esses serviços estão hospedados em um Windows Service e cada um responde em uma porta distinta (cada um possui o seu próprio endpoint, etc...)

    Até aí, tudo lindo...


    Agora imagine um aplicativo interno que utilize dois destes serviços ao mesmo tempo. Os serviços não possuem classes próprias, eles apenas expõem as classes do Assembly. O problema é que os serviços compartilham classes iguais do assembly. Por exemplo, tanto em Transporte.svc quanto em Funcionarios.svc eu tenho a figura (e classe) de um Funcionário, por exemplo.

     

    Isso está fazendo com que no meu aplicativo client que consome os serviços, exista classes em diferentes namespaces mas que são iguais (provém no mesmo assembly/fonte).

     

    Fazer cast eu acho que não seja a melhor alternativa e juntar os serviços pode me "engessar" quanto à infra. Ou seja, eu teria um único serviço respondendo por todas as solicitações.

     

    O que me sugerem ?

     


    Michel Wilker Prado
    quinta-feira, 3 de fevereiro de 2011 19:50

Respostas

  • E ai Michel blz. Eu sugiro que você faça a referencia do seu framework no seu proxy. Acredito que assim todos os seus projetos usaram a referencia o namespace do seu framework. É claro que nos seus metodos que recebem como atributo um objeto desse framework você deverá informar o namespace completo para o copilador entender quem é o dono do objeto em questão. Att Marcos Cardoso
    Marcos Cardoso "Uma pessoa inteligente resolve um problema, um sábio o previne." Albert Einstein
    sexta-feira, 4 de fevereiro de 2011 10:49
  • Boas galera,

     

    Existe uma propriedade do atributo ServiceContractAttribute chamada Namespace. Nela voce pode especificar uma string que representara a namespace do seu serviço. Tenta utilizar ela e me confirma se funcionou.

     

     

    sexta-feira, 4 de fevereiro de 2011 12:07

Todas as Respostas

  • E ai Michel blz. Eu sugiro que você faça a referencia do seu framework no seu proxy. Acredito que assim todos os seus projetos usaram a referencia o namespace do seu framework. É claro que nos seus metodos que recebem como atributo um objeto desse framework você deverá informar o namespace completo para o copilador entender quem é o dono do objeto em questão. Att Marcos Cardoso
    Marcos Cardoso "Uma pessoa inteligente resolve um problema, um sábio o previne." Albert Einstein
    sexta-feira, 4 de fevereiro de 2011 10:49
  • Boas galera,

     

    Existe uma propriedade do atributo ServiceContractAttribute chamada Namespace. Nela voce pode especificar uma string que representara a namespace do seu serviço. Tenta utilizar ela e me confirma se funcionou.

     

     

    sexta-feira, 4 de fevereiro de 2011 12:07