Usuário com melhor resposta
Serviços WCF varios ou somente um?

Pergunta
-
Boa noite pessoal,
Seguinte, minha dúvida pode ser besta mas gostaria de algum esclarecimento.
Tenho minha aplicação silverlight e ela se comunica com os serviços wcf. Porém eu preciso ter somente um serviço (.svc) para a aplicação inteira, ou seja, todas as consultas em banco e tal eu utilizo somente um serviço(.svc)??? ou terei que ter um serviço(.svc) para cada "Cadastro" do sistema??
o que é melhor para a performance da aplicação e qual a maneira correta de fazer???
quinta-feira, 4 de agosto de 2011 22:02
Respostas
-
Rafael,
Não sou especialista em WCF mas acredito que a diferença seja minima. A não ser que você crie uma instancia única do serviço durante a execução da aplicação e deixe ela sempre aberta para evitar ficar abrindo e fechando a conexão. Mas não vejo pq fazer isso.
Separe os seus svc's por "áreas", exemplo, Clientes, Fornecedores, Funcionários, etc..
Abraço
- Marcado como Resposta Rafael Lazzari terça-feira, 9 de agosto de 2011 21:55
terça-feira, 9 de agosto de 2011 14:32
Todas as Respostas
-
Boa tarde Rafael,
Acho que a métrica principal para a decisão nessa caso talvez não seja a performance, mas sim a escalabilidade e reutilização da aplicação ou de quem vá utilizar esses serviços. Eles serão utilizados por outras aplicações também? Poderão ser modificados por outras equipes?
Acho que esses são pontos importantes a serem levantados para a decisão da arquitetura de serviços da sua aplicação.
Abraço!
sexta-feira, 5 de agosto de 2011 18:41 -
Tenho uma aplicação de NF-e que utiliza apenas um serviço (.svc) e não tive nenhum tipo de problema:
Ex:
public class Servico : ICliente, ICargo, etc...
sexta-feira, 5 de agosto de 2011 20:52 -
Então, futuramente várias pessoas irão utilizar esses serviços, este foi um ponto que eu pensei também. Digamos que eu tenha uma equipe de umas 3 pessoas criando e alterando cadastros e telas do sistema, se eu tiver apenas um .svc toda hora teria que estar dando merge no arquivo e assim iria aumentar o risco de alguem esquecer de alguma coisa. Por outro lado se eu tiver um .svc para cada funcionalidade, cada pessoa cria ou altera o .svc específico para cada tela e assim nao tem risco de dar problema no que já está funcionando.
pelo que vocês falaram acho q consegui entender e decidir como vou fazer, eu gostaria de uma ajuda em outro tópico meu pois estou encontrando um grande problema e na consigo resolver, se vcs puderem ajudar eu agradeço, http://social.msdn.microsoft.com/Forums/pt-BR/silverlightpt/thread/d9a896b7-184c-4950-ac0e-6622c3f08f56/#d9a896b7-184c-4950-ac0e-6622c3f08f56
sábado, 6 de agosto de 2011 15:15 -
Rafael,
Só um porém, por que tantas alterações nas assinaturas dos métodos do seu serviço? Você está colocando regras de negócio dentro do método do serviço?
O ideal é que o serviço chame alguma outra camada da sua aplicação, a de négocios por exemplo.
Abraço!
segunda-feira, 8 de agosto de 2011 17:08 -
Edjan,
Então, as regras de negócio ficam em outra camada na minha aplicação, a grosso modo os serviço faz a comunicação desta camada com o silverlight. Porém como varias pessoas vao programar eu acho melhor criar um .svc para cada cadastro para que nao precise ficar todos mexendo e alterando o mesmo .svc. O problema é q nao sei até onde isso é "melhor", pois vai diminuir as possibilidades de erros nos .svc sendo q cada pessoa estaria trabalhando em um porém nao sei como fica isso na questão da performance.
segunda-feira, 8 de agosto de 2011 22:29 -
Rafael,
Não sou especialista em WCF mas acredito que a diferença seja minima. A não ser que você crie uma instancia única do serviço durante a execução da aplicação e deixe ela sempre aberta para evitar ficar abrindo e fechando a conexão. Mas não vejo pq fazer isso.
Separe os seus svc's por "áreas", exemplo, Clientes, Fornecedores, Funcionários, etc..
Abraço
- Marcado como Resposta Rafael Lazzari terça-feira, 9 de agosto de 2011 21:55
terça-feira, 9 de agosto de 2011 14:32 -
Ok,
Obrigado Edjan e Samuel pelas dicas.. vou fazer isso que o Edjan comentou na ultima postagem...
terça-feira, 9 de agosto de 2011 21:55