none
Camada de regras no WebService RRS feed

  • Pergunta

  • Bom dia.

    Tive uma reunião hoje com um gerênte de TI e ele está querendo colocar toda a camada de regras em um WebService.

    Basicamente seria o seguinte, temos várias aplicações e o que for comum a todas elas estamos pensando em colocar em um WebService como por exemplo a autenticação de logins (Colocariamos uma função onde se passa o usuário e a senha e a função retorna se o login é válido ou não).

    Gostaia da opinião de vocês, é viável fazer isto? Colocar a camada de regras em um WebServices?


    Riderman
    terça-feira, 18 de agosto de 2009 11:54

Respostas

  • A regra de negócio tem que ficar nas entidades de negócio. Se elas vão ser expostas através de um web service, ok, isso é só uma opção de acesso.
    Uma pergunta: não é mais fácil fazer um componente e compartilhar ele entre as aplicações, se o único objetivo é reaproveitar código?
    Giovanni Bassi, Microsoft MVP, MCSD, MCPD, CSM, Arquiteto de software - http://www.giovannibassi.com
    terça-feira, 18 de agosto de 2009 16:02
    Moderador
  • padrão FAÇADE = http://en.wikipedia.org/wiki/Facade_pattern
    DDD = http://domaindrivendesign.org/resources/what_is_ddd
    POCOs = +/- isto: classes que não dependem de interfaces ou abstrações para funcionar.
    Alessandro
    quinta-feira, 20 de agosto de 2009 13:29

Todas as Respostas

  • Estou pensando em fazer o mesmo, mas em WCF.
    Tenho uma aplicação que será desenvolvida em WPF e alguns módulos em Silverlight ou ASP.NET MVC, pensei na camada de regras em WCF pra facilitar esse acesso.

    Aproveito o seu tópico pra tirar tbm a minha dúvida, já que é bem parecido :P
    terça-feira, 18 de agosto de 2009 12:30
  • A regra de negócio tem que ficar nas entidades de negócio. Se elas vão ser expostas através de um web service, ok, isso é só uma opção de acesso.
    Uma pergunta: não é mais fácil fazer um componente e compartilhar ele entre as aplicações, se o único objetivo é reaproveitar código?
    Giovanni Bassi, Microsoft MVP, MCSD, MCPD, CSM, Arquiteto de software - http://www.giovannibassi.com
    terça-feira, 18 de agosto de 2009 16:02
    Moderador
  • Giovanni, particulamente eu não gostei da idéia por n motivos

    1. Segurança está muito comprometida uma vez que WebServices não implementão segurança
    2. A performance será afetada
    3. A dificuldade de utilização destes componentes iram ser maiores
    4. O custo será mais auto uma vez que teremos que hospedar este serviço

    Isto é o que estive pensando agora, garanto que se estudarmos direito podemos pensar em mais motivos.

    Esta foi uma idéia de um dos gerêntes de TI da empresa em que trabalho.


    Outra coisa, no meu ponto de vista webservices devem ser utilizados para integração entre aplicações, não como modelo do negócio.


    Riderman
    terça-feira, 18 de agosto de 2009 16:38
  • Penso que, como o Bassi já disse, as regras de negócio têm que ficar nas entidades de negócio, que se for usada a abordagem DDD se forem POCO´s é melhor ainda.
    Assim sendo deve-se usar WEBSERVICES como uma camada adicoinal (FACADE) para acesso as regras de negócio.

    Acho que assim fica uma estrutura legal, concordam?

    Att,
    Alessandro
    Alessandro
    quarta-feira, 19 de agosto de 2009 13:05
  • Comcordo Alessandro, WebServices deve ser uma camada adicional, não uma camada do sistema.

    Não conheço a abordagem DDD, FACEDE ou POCO's, o que é isto?
    Riderman
    quinta-feira, 20 de agosto de 2009 12:38
  • padrão FAÇADE = http://en.wikipedia.org/wiki/Facade_pattern
    DDD = http://domaindrivendesign.org/resources/what_is_ddd
    POCOs = +/- isto: classes que não dependem de interfaces ou abstrações para funcionar.
    Alessandro
    quinta-feira, 20 de agosto de 2009 13:29