locked
Serviços WCF varios ou somente um? RRS feed

  • 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