none
Desenvolvimento 3 camadas - Metodos para checagem de campos RRS feed

  • Pergunta

  • Bom dia!!

    Estou desenvolvendo um pqno projeto em C# e estou usando 3 camadas.

    Estou fazendo uma pqna classe que ira validar os dados antes do cadastro.

    Checar se CPF/CNPJ é valido, se a imagem é valida coisas do tipo.

    Ai veio a dúvida em que camada devo colocar esta classe?

    Seria na camada BLL? E quando eu for fazer os cadastros chamar esta classe nas classes responsável pelos cadastros?

    Muito obrigado


    Luiz Pires JP4 Desenvolvimento http://jp4.com.br

    sexta-feira, 8 de abril de 2016 12:10

Respostas

  • Concordo com o Silvaney,

    Vejo diferença entre validação de regras de negócio, que estão intrinsecamente ligadas ao processo executado pela tua aplicação, das validações de preenchimento e formatação de campos.

    Se você está preenchendo um campo e precisa que ele tenha 3 caracteres e apenas dígitos, ainda não saiu da camada de apresentação, quando esse dado passa a ser manipulado e a influenciar entidades, aí sim, vejo uma validação de negócio.

    Mas como dito anteriormente, é uma questão de prisma e essa definição deve ser discutida a nível de projeto pela equipe.

    Boa sorte !

    Att,


    Antero Marques

    __________________________________________________________________________

    Se a resposta for útil, marque como útil, se respondeu totalmente sua dúvida, marque como resposta.

    O Fórum MSDN é utilizado também como base de conhecimento, então é responsabilidade de todos mantê-lo organizado e funcional.






    • Marcado como Resposta Marcos SJ sexta-feira, 8 de abril de 2016 17:21
    • Editado Antero Marques domingo, 10 de abril de 2016 21:13
    sexta-feira, 8 de abril de 2016 13:28
  • Crie uma Class Library e va adicionando como referencia . Com o Class Library, você consegue reaproveitar esta dll em outros projetos


    Lucas Lima


    sexta-feira, 8 de abril de 2016 13:47
  • Bom dia JP4 Desenvolvimento,

    Sim, se for validação de regra via webservice do cpf/cnpj (para consultas por exemplo)  deverá ser feita na camada BLL. Validação de formatação ou entrada de usuário, faça no UI utilizando Javascript. Dentro da BLL, você pode implementar interfaces. Utilize DTO's para trafegar objetos entre as camadas. Na camada DAL faça o cadastro deste cpf/ cnpj.

    Ficaria assim:

    DTO (contem as classes do seu negócio)

    UI - referenciando BLL e DTO

    BLL (contendo interfaces) - referenciando DTO e DAL

    DAL - referenciando DTO


    Lucas Lima




    sexta-feira, 8 de abril de 2016 12:18
  • Bom dia

    Essa questão é bastante polêmica, pois as pessoas possuem idéias e pensamentos diferentes.
    No meu ponto de vista não seria incorreto validar na BLL. Mas particularmente eu utilizo a BLL apenas para regras de negócio e não validações de telas. Mas como citado anteriormente, no ponto de vista de algumas pessoas as validações de telas são também regras de negócio.

    O pessoal do grupo que possui mais experiência pode esclarecer melhor essa questão (dúvida).

    Mas segue minha opinião...

    Att,

    • Sugerido como Resposta Silvaney sexta-feira, 8 de abril de 2016 13:47
    • Marcado como Resposta Marcos SJ sexta-feira, 8 de abril de 2016 17:21
    sexta-feira, 8 de abril de 2016 12:19

Todas as Respostas

  • Bom dia JP4 Desenvolvimento,

    Sim, se for validação de regra via webservice do cpf/cnpj (para consultas por exemplo)  deverá ser feita na camada BLL. Validação de formatação ou entrada de usuário, faça no UI utilizando Javascript. Dentro da BLL, você pode implementar interfaces. Utilize DTO's para trafegar objetos entre as camadas. Na camada DAL faça o cadastro deste cpf/ cnpj.

    Ficaria assim:

    DTO (contem as classes do seu negócio)

    UI - referenciando BLL e DTO

    BLL (contendo interfaces) - referenciando DTO e DAL

    DAL - referenciando DTO


    Lucas Lima




    sexta-feira, 8 de abril de 2016 12:18
  • Bom dia

    Essa questão é bastante polêmica, pois as pessoas possuem idéias e pensamentos diferentes.
    No meu ponto de vista não seria incorreto validar na BLL. Mas particularmente eu utilizo a BLL apenas para regras de negócio e não validações de telas. Mas como citado anteriormente, no ponto de vista de algumas pessoas as validações de telas são também regras de negócio.

    O pessoal do grupo que possui mais experiência pode esclarecer melhor essa questão (dúvida).

    Mas segue minha opinião...

    Att,

    • Sugerido como Resposta Silvaney sexta-feira, 8 de abril de 2016 13:47
    • Marcado como Resposta Marcos SJ sexta-feira, 8 de abril de 2016 17:21
    sexta-feira, 8 de abril de 2016 12:19
  • Concordo com o Silvaney,

    Vejo diferença entre validação de regras de negócio, que estão intrinsecamente ligadas ao processo executado pela tua aplicação, das validações de preenchimento e formatação de campos.

    Se você está preenchendo um campo e precisa que ele tenha 3 caracteres e apenas dígitos, ainda não saiu da camada de apresentação, quando esse dado passa a ser manipulado e a influenciar entidades, aí sim, vejo uma validação de negócio.

    Mas como dito anteriormente, é uma questão de prisma e essa definição deve ser discutida a nível de projeto pela equipe.

    Boa sorte !

    Att,


    Antero Marques

    __________________________________________________________________________

    Se a resposta for útil, marque como útil, se respondeu totalmente sua dúvida, marque como resposta.

    O Fórum MSDN é utilizado também como base de conhecimento, então é responsabilidade de todos mantê-lo organizado e funcional.






    • Marcado como Resposta Marcos SJ sexta-feira, 8 de abril de 2016 17:21
    • Editado Antero Marques domingo, 10 de abril de 2016 21:13
    sexta-feira, 8 de abril de 2016 13:28
  • Eu fiz assim:

    Para cada camada do sistema eu criei um project dentro da solution. Esta(s) classe(s) de autenticação devem ficar em um project já criado, ou devo criar um novo project apenas para armazenar as classes de autenticação?

    Obrigado


    Luiz Pires JP4 Desenvolvimento http://jp4.com.br

    sexta-feira, 8 de abril de 2016 13:44
  • Crie uma Class Library e va adicionando como referencia . Com o Class Library, você consegue reaproveitar esta dll em outros projetos


    Lucas Lima


    sexta-feira, 8 de abril de 2016 13:47