none
WCF - Chamadas RRS feed

  • Pergunta

  • Pessoal,

    Gostaria de saber o seguinte. Precisarei invocar ou chamar um serviço wcf a partir de outro dentro do mesmo projeto.

    Qual seria a melhor forma de se fazer ? Criando uma instância ou por meio de url ? Tem algum site que explica melhor isso?

    Também gostaria de saber as opções de binding mais utilizadas e as diferenças entre elas.

    obrigado

    • Movido Olavo Oliveira Neto segunda-feira, 5 de março de 2012 11:46 Amigo, estou movendo sua thread para um fórum especifico de WCF (De:.NET Development - Geral)
    sábado, 3 de março de 2012 19:12

Respostas

  • .NET Dev

    Conceitualmente essa abordagem arquitetural ao meu ver não esta escalável, você tem uma serviço que acessará outro serviço, ou seja, você estará encapsulando um serviço dentro de outro realizando um alto acoplamento entre esses serviços aonde o serviço 1 dependdera do serviço 2, futuramente você terá problemas se precisar usar  "refactoring", não tenho conhecimento do cenário porém acredito que a abordagem interessante seria, que sua classe consultasse o serviço 1 recebia um retorno e com esse retorno sua clase consultasse o serviço 2.

    Vamos as questões. 

    Qual seria a melhor forma de fazer? 

    Antes de explicar é importante entender que WCF nada mais é do que uma plataforma de serviços onde você tem uma enorme interoperabilidade com outras plataformas através de ASMX, Enterprise Services .netRemoting, Messagind entre outros.

    Existem razões para se usar URL utilizasse WCF com URL quando você precisa disponibilizar um serviço através de um protocolo HTTP aonde qualquer empresa localizada no mundo pode consumir esse serviço, já referenciar um serviço dentro do outro você vai precisar acoplar uma dll de um serviço no outro, por exemplo se você for vender um serviço x, o serviço y terá que ir junto seria interessante isso? estamos falando num nível alto de abstração se falarmos de um nível baixo, aonde você terá 100 mil serviços que dentro por exemplo de um serviço poderá existir referencia para 20 serviços, que dentro de cada serviço desses 20 tenha mais 5 serviços, acha que seria interessante essa abordagem?

    Tipos de Binding

    http://wcftutorial.net/WCF-Types-of-Binding.aspx

    Saiba tudo e mais um pouco sobre WCF

    http://wcftutorial.net/

    Espero ter ajudado,

    Abraços,

    Leandro Rodrigues


    Caso a resposta tenha ajudado, não esqueça de marcar como resposta válida

    • Sugerido como Resposta Olavo Oliveira Neto segunda-feira, 5 de março de 2012 11:45
    • Marcado como Resposta .NET Dev segunda-feira, 5 de março de 2012 23:20
    sábado, 3 de março de 2012 20:11
  • .NET Dev,

    Para você entender sobre isso, você tem que entender a diferença de componente e de serviço, você entende a diferença de componente e de serviço você entenderá a diferença de chamada por instância e de chamada por uri.

    Links:

    http://blog.fragmental.com.br/2006/07/25/desmitificando-picaretas-do-soa-1-qual-a-diferenca-entre-servicos-e-componentes-distribuidos/index.html
    http://www.slideshare.net/msavio/componentes-vs-servios

    Quando você fizer chamado por instancia pensa em componente, e quando você usar uri pensa em serviço, acredito que isso te ajude a entender o conceito.
    Ai se você se perguntar, mais quando eu vou usar a instância ou o uri, ai eu te pergunto você vai precisar de um componente ou de um serviço? entendeu?

    Espero ter ajudado,

    Abraços,

    Leandro Rodrigues


    Caso a resposta tenha ajudado, não esqueça de marcar como resposta válida

    • Marcado como Resposta .NET Dev terça-feira, 6 de março de 2012 01:03
    segunda-feira, 5 de março de 2012 23:56

Todas as Respostas

  • .NET Dev

    Conceitualmente essa abordagem arquitetural ao meu ver não esta escalável, você tem uma serviço que acessará outro serviço, ou seja, você estará encapsulando um serviço dentro de outro realizando um alto acoplamento entre esses serviços aonde o serviço 1 dependdera do serviço 2, futuramente você terá problemas se precisar usar  "refactoring", não tenho conhecimento do cenário porém acredito que a abordagem interessante seria, que sua classe consultasse o serviço 1 recebia um retorno e com esse retorno sua clase consultasse o serviço 2.

    Vamos as questões. 

    Qual seria a melhor forma de fazer? 

    Antes de explicar é importante entender que WCF nada mais é do que uma plataforma de serviços onde você tem uma enorme interoperabilidade com outras plataformas através de ASMX, Enterprise Services .netRemoting, Messagind entre outros.

    Existem razões para se usar URL utilizasse WCF com URL quando você precisa disponibilizar um serviço através de um protocolo HTTP aonde qualquer empresa localizada no mundo pode consumir esse serviço, já referenciar um serviço dentro do outro você vai precisar acoplar uma dll de um serviço no outro, por exemplo se você for vender um serviço x, o serviço y terá que ir junto seria interessante isso? estamos falando num nível alto de abstração se falarmos de um nível baixo, aonde você terá 100 mil serviços que dentro por exemplo de um serviço poderá existir referencia para 20 serviços, que dentro de cada serviço desses 20 tenha mais 5 serviços, acha que seria interessante essa abordagem?

    Tipos de Binding

    http://wcftutorial.net/WCF-Types-of-Binding.aspx

    Saiba tudo e mais um pouco sobre WCF

    http://wcftutorial.net/

    Espero ter ajudado,

    Abraços,

    Leandro Rodrigues


    Caso a resposta tenha ajudado, não esqueça de marcar como resposta válida

    • Sugerido como Resposta Olavo Oliveira Neto segunda-feira, 5 de março de 2012 11:45
    • Marcado como Resposta .NET Dev segunda-feira, 5 de março de 2012 23:20
    sábado, 3 de março de 2012 20:11
  • Existe algum artigo que explique mais detalhadamente as diferenças entre fazer chamadas por instância e por uri?
    segunda-feira, 5 de março de 2012 11:41
  • .NET Dev,

    Para você entender sobre isso, você tem que entender a diferença de componente e de serviço, você entende a diferença de componente e de serviço você entenderá a diferença de chamada por instância e de chamada por uri.

    Links:

    http://blog.fragmental.com.br/2006/07/25/desmitificando-picaretas-do-soa-1-qual-a-diferenca-entre-servicos-e-componentes-distribuidos/index.html
    http://www.slideshare.net/msavio/componentes-vs-servios

    Quando você fizer chamado por instancia pensa em componente, e quando você usar uri pensa em serviço, acredito que isso te ajude a entender o conceito.
    Ai se você se perguntar, mais quando eu vou usar a instância ou o uri, ai eu te pergunto você vai precisar de um componente ou de um serviço? entendeu?

    Espero ter ajudado,

    Abraços,

    Leandro Rodrigues


    Caso a resposta tenha ajudado, não esqueça de marcar como resposta válida

    • Marcado como Resposta .NET Dev terça-feira, 6 de março de 2012 01:03
    segunda-feira, 5 de março de 2012 23:56