Usuário com melhor resposta
Abrir o channelfactory várias vezes pode causar problemas?

Pergunta
-
Olá pessoal,
hoje ao invés de criar um proxy para cada tela, eu crio por ação. Quando o usuário clicar no botão "Salvar", abro o proxy, executo e fecho o proxy.
Quando o usuário clicar no excluir, abro novamente um proxy (no caso outra instância, certo? dei um New novamente) executo o Delete e fecho o proxy.
Gostaria de saber se isso pode me causar problemas. Performance, erros, qualquer coisa.
Gostaria de saber qual a melhor prática ou o que vocês aconselham (por experiência de vida). Utiliza um proxy apenas (quando der um new do formulário, dar um new no proxy e guardar a variável e ficar utilizando esta instância) ou do jeito que faço, ou tanto faz.
Obrigado
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand" (Martin Fowler)
Respostas
-
Boas Leandro,
Eu comento sobre isso aqui: http://www.israelaece.com/post/Internals-Proxy-de-servicos-WCF.aspx
http://www.israelaece.com- Marcado como Resposta LeandrodeMelloFagundes segunda-feira, 21 de dezembro de 2009 13:05
Todas as Respostas
-
Boas Leandro,
Eu comento sobre isso aqui: http://www.israelaece.com/post/Internals-Proxy-de-servicos-WCF.aspx
http://www.israelaece.com- Marcado como Resposta LeandrodeMelloFagundes segunda-feira, 21 de dezembro de 2009 13:05
-
Israel,
lendo seu post entendi que se utilizarmos a criação de tudo de forma automática ele consegue guardar em um cache os utilizados mais recentemente e acaba não precisando criar.
Quando executamos manualmente, esse "cache" não existe pois estariamos "manipulando" ele, certo?
Se ao abrir um form eu inicializo um channelfactory visando um determinado endpoint, e só fechar quando fechar o formulário eu estaria mantendo um Cache, é isso?
Se eu abrir por ação, além de não manter esse cache ainda perderia performance pois abrir e fechar, pelo que entendi, executa algumas ações custosas que podem influenciar na minha performance.
Assim, precisaria mudar minha forma de fazer, para abrir ao inicializar o form e fechar ao fechar o form.
Seria isso que entendi mesmo?
att
Leandro
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand" (Martin Fowler) -
Boas Leandro,
Sim, o WCF já mantém o cache quando você utiliza o proxy que é gerado. Mesmo que você feche o proxy, o WCF mantém o cache dessa factory, reutilizando-a mais tarde para acessar o serviço.
http://www.israelaece.com -
Israel, me confundi um pouco: "o WCF já mantém o cache quando você utiliza o proxy que é gerado", você esta se referindo somente ao gerado automaticamente pelo web references certo?
O gerado pelo ChannelFactory de forma manual ele não faz isso, ou faz também?
Se fizer tb, não existe necessidade de eu alterar a forma que trabalho hoje, tendo em vista q ele gerencia sozinho pra mim.
att
Leandro
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand" (Martin Fowler) -
Boas Leandro,
Sim, o cache é mantido somente quando você está utilizando o proxy que é gerado pela referencia ao serviço.
Se você estiver utilizando o ChannelFactory diretamente, então é você que deve criar e gerenciar o cache.
http://www.israelaece.com