none
Reaproveitamento de código (processamento que envolve varias operações no banco) RRS feed

  • Pergunta

  • Em nosso desenvolvimento de uma aplicação web em camadas que tem o seguinte formato:

    INTERFACE => SERVIÇO => BLL (instruçõe selects, inserts, updates e deletes estão aqui) => Classe DB

    Nossa camada BLL de forma dinâmica através da passagem de parâmetros, monta a instrução SQL e a executa passando para CLASSE DB. 
    Se for um comando DQL será retornado um objeto lista do tipo da entidade e se for uma operação DML retorna a quantidade de linhas afetadas.
    Nos processos de CRUD perfeito, operações específicas onde faço uma consulta, inclusão, alteração e exclusão...

    Agora temos um processo em nosso sistema que envolve várias operações no banco.
    Em uma BLL (vou chama-la de BLL X) serão feitas varias operações no banco, até que por fim o INSERT na TABELA X pela BLL X.

    Para explicar melhor:

     - BLL X
          CONSULTA TABELA 1
          INCLUI TABELA 2
          CONSULTA TABELA 3
          CONSULTA TABELA 4
          INCLUI TABELA 5
         Totalizando 11 passos até a conclusão deste processo...
    - INSERT na TABELA X pela BLL X    

    Todos estes passos, eles são contemplados nas BLL's para atender as operações CRUD...

    Minha dúvida:
    Neste processo que envolve varias operações no banco, é melhor INSTANCIAR CADA BLL e chamar o método específico obtendo o retorno e tratando-o ou passar as instruções na própria BLL X obtendo o retorno e tratando-o?

    Desde já agradeço a sugestão dos colegas.


    Eduardo Agostinho Analista Programador - C# Developer

    quinta-feira, 3 de outubro de 2013 18:49

Todas as Respostas

  • Pelo exemplo que você colocou não deixou claro se pra incluir na tabela 5, necessariamente terá que ter incluído na tabela 2, em caso afirmativo, acredito que o melhor caminho é uma chamada só, tomando cuidado para realizar os passos dentro de uma trasação.

    Caso contrário, se um insert não depender do outro, uma instância para cada provavelmente deixará a execução mais performática.

    Abraço.

    segunda-feira, 7 de outubro de 2013 17:11
  • Pelo exemplo que você colocou não deixou claro se pra incluir na tabela 5, necessariamente terá que ter incluído na tabela 2, em caso afirmativo, acredito que o melhor caminho é uma chamada só, tomando cuidado para realizar os passos dentro de uma trasação.

    Caso contrário, se um insert não depender do outro, uma instância para cada provavelmente deixará a execução mais performática.

    Abraço.

    Bahia,

    Obrigado pela dica...
    Vamos analisar mas acredito então que neste momento a melhor alternativa será trabalhar com chamadas às blls!

    Abraço.


    Eduardo Agostinho Analista Programador - C# Developer

    terça-feira, 8 de outubro de 2013 20:40