none
Como passar um objeto qualquer do meu servico para web e da web para o serviço? RRS feed

  • Pergunta

  • Olá pessoal, como estão??

     

    Estou com uma dúvida, e não estou conseguindo solucioná-la.

     

    Tenho um seriço que é a camada de negócio de todo o sistema. Tem a aplicação web que é a camada de apresentação e a camada de negócio é a serviço (wfc) que nesse serviço contém todos os métodos para solucionar problemas que a camada de apresentação pedir.

     

    Tem mais uma camada, a de banco de dados também, no qual só o serviço tem acesso.

     

    O que estou com problemas é que há metodos que gostaria de retornar um objeto especifico, como por exemplo um cliente, um login e gostaria de passar esse objeto que foi instanciado na aplicação passar para o serviço e dai o serviço pode também retornar esse objeto para a aplicação.

     

     

    O que eu posso fazer?

     

    obrigado a todos

    segunda-feira, 8 de dezembro de 2008 13:06

Respostas

  • Ola Carlos,

    Por padrão, a serialização (independentemente do WCF) não serializa métodos, mas somente o estado do objeto, ou seja, as propriedades.

    Para que você consiga reutilizar os métodos, você tem que isolar os objetos que são retornados pelo serviço (como a classe Cliente) em um Assembly (DLL) a parte e referenciá-la nos dois projetos (Cliente e Host). Ao fazer a referência do serviço no cliente, por padrão, ela reutiliza os tipos encontrados os assemblies referenciados, isso quer dizer que, se no momento da referência ele encontrar a classe Cliente referenciada no teu projeto ele a utilizará.

    Somente atente-se para a questão do SOA e interoperabilidade, já que você está estrapolando os limites do host.

    terça-feira, 9 de dezembro de 2008 14:10
    Moderador

Todas as Respostas

  • Boas Carlos,

    Na criação do teu contrato você especificar objetos complexos, como é o caso de um objeto Cliente, Usuario, etc. Apenas atente-se para definir o atributo DataContractAttribute para todos esses objetos que fazem parte do contrato.

    Ao referenciá-lo na aplicação, automaticamente a IDE do Visual Studio ou o utilitário svcutil.exe irá, baseado no WSDL, criar uma representação deste objeto do lado do cliente, permintindo que você receba e envie este para o serviço.

    segunda-feira, 8 de dezembro de 2008 14:01
    Moderador
  •  

    Olá Israel, tudo bem?

     

    Obrigado pela ajuda!!! Mas gostaria de saber se uma dessas classes tiver alguns métodos, e esses métodos precisarem ser utilizados tanto na camada de aplicação quanto a do serviço é possível que ambos utilizem esses métodos?

     

    Os atributos e propriedades eu não tive problemas. Tanto na camada de aplicação quanto a de serviço os atributos e propriedades da classe como Cliente estavam visiveis, porém os métodos dessa classe não estavam.

     

    Teria alguma sugestão?

     

    Abraço,

     

    Carlos

    terça-feira, 9 de dezembro de 2008 11:20
  • Ola Carlos,

    Por padrão, a serialização (independentemente do WCF) não serializa métodos, mas somente o estado do objeto, ou seja, as propriedades.

    Para que você consiga reutilizar os métodos, você tem que isolar os objetos que são retornados pelo serviço (como a classe Cliente) em um Assembly (DLL) a parte e referenciá-la nos dois projetos (Cliente e Host). Ao fazer a referência do serviço no cliente, por padrão, ela reutiliza os tipos encontrados os assemblies referenciados, isso quer dizer que, se no momento da referência ele encontrar a classe Cliente referenciada no teu projeto ele a utilizará.

    Somente atente-se para a questão do SOA e interoperabilidade, já que você está estrapolando os limites do host.

    terça-feira, 9 de dezembro de 2008 14:10
    Moderador
  • Olá Israel,

     

    Obrigado pela ajuda!  Gostaria de saber se tem algum livro, site, tutorial de explica de uma forma clara boas práticas de programação para esse tipo de aplicação. Você conheçe algum?

     

    Abraços,

     

    Carlos

     

    terça-feira, 9 de dezembro de 2008 17:32
  • Ola Carlos,

    No meu site eu tenho escrito vários artigos para falar sobre as features do WCF: http://www.projetando.net/Sections/Articles.aspx. Já no meu blog, eu comento também alguns detalhes sobre ele: http://weblogs.pontonetpt.com/israelaece/

    quarta-feira, 10 de dezembro de 2008 09:59
    Moderador