Fórum Arquitetura da aplicação #13414
29/12/2009
0
Atualmente trabalho em um projeto que criei a camada de interface (windows application), a camada de negócios (uma pasta chamada BLL dentro de um projeto Class Library) e a camada de persistência (uma pasta chamada DAL dentro do mesmo projeto Class Library da pasta BLL).
Na DAL no momento que se tem é apenas persistência no banco de dados. Mas em alguns casos (pensando em adotar um padrão) uma aplicação tem a necessidade de trabalhar na sua infra com arquivos, seja texto, xml... ou outras coisas do tipo.
Inicialmente estava pensando em criar uma pasta chamada Infra na Class Library, e nessa sim, ter uma outra para DAL, outra pasta para Arquivos, outra para XML, conforme a necssidade de infra do projeto.
O que vocês acham a respeito, melhor estruturar dessa forma para organizar as coisas e adotar assim como um padrão, ou fazer a infra dessas classes dentro da pasta DAL não tem nenhum problema?
Outra coisa que notei em um projeto que vi recentemente, o desenvolvedor criou um projeto Class Library em uma solution, e depois criou a camada de interface em outra solution, e fez referência para o arquivo compilado na pasta bin\Release.
Geralmente eu crio os projetos dentro de uma solution mesmo, e faço referências de um projeto para outro apontando o próprio projeto.
Para questões de distribuição da aplicação (independente de windows, web, mobile), qual seria melhor? O que eu faço hoje, ou o que eu notei no outro projeto?
OBS: Faço esta pergunta pois, no projeto feito por outra pessoa ao ter estruturado dessa forma, deu a entender que ele poderia compilar o projeto de Class Library caso houvesse alguma alteração na classe, e distribuiria somente o arquivo dll, sem ter que recompilar o projeto com a camada de interface (exemplo windows application). Estou certo nesse pensamento?
Carlos Nogueira
Curtir tópico
+ 0Posts
04/01/2010
Fabio Mans
Atualmente trabalho em um projeto que criei a camada de interface (windows application), a camada de negócios (uma pasta chamada BLL dentro de um projeto Class Library) e a camada de persistência (uma pasta chamada DAL dentro do mesmo projeto Class Library da pasta BLL).
Na DAL no momento que se tem é apenas persistência no banco de dados. Mas em alguns casos (pensando em adotar um padrão) uma aplicação tem a necessidade de trabalhar na sua infra com arquivos, seja texto, xml... ou outras coisas do tipo.
Inicialmente estava pensando em criar uma pasta chamada Infra na Class Library, e nessa sim, ter uma outra para DAL, outra pasta para Arquivos, outra para XML, conforme a necssidade de infra do projeto.
O que vocês acham a respeito, melhor estruturar dessa forma para organizar as coisas e adotar assim como um padrão, ou fazer a infra dessas classes dentro da pasta DAL não tem nenhum problema?
Outra coisa que notei em um projeto que vi recentemente, o desenvolvedor criou um projeto Class Library em uma solution, e depois criou a camada de interface em outra solution, e fez referência para o arquivo compilado na pasta bin\Release.
Geralmente eu crio os projetos dentro de uma solution mesmo, e faço referências de um projeto para outro apontando o próprio projeto.
Para questões de distribuição da aplicação (independente de windows, web, mobile), qual seria melhor? O que eu faço hoje, ou o que eu notei no outro projeto?
OBS: Faço esta pergunta pois, no projeto feito por outra pessoa ao ter estruturado dessa forma, deu a entender que ele poderia compilar o projeto de Class Library caso houvesse alguma alteração na classe, e distribuiria somente o arquivo dll, sem ter que recompilar o projeto com a camada de interface (exemplo windows application). Estou certo nesse pensamento?
Gostei + 0
05/01/2010
Carlos Nogueira
Muito obrigado pelas dicas. Só me restou algumas dúvidas.
Quanto ao que você mencionou de não misturar infra com DAL, o que seria? É o caso que mencionei de ter uma pasta DAL e lá estar fazendo todas as situações até mesmo de trabalhar com arquivos texto, xml e etc... desta forma, misturando o conceito de DAL (camada de acesso) com demais situações que podem acontecer na infra?
Então, sobre o segundo item que você mencionou, até o momento para ser sincero, ainda não participei de um projeto que utiliza a mesma regra de negócio (mesma class library/assembly). Eu entendi quando você mencionou que não existe um padrão, é que estou pesquisando a melhor forma de fazer isso (ou se já é pelo que estou fazendo) para que, se possível, adotar como um padrão para equipe, principalmente para aqueles que ainda vão trabalhar com .NET, entende?
Então caso alguém questione essa questão da distribuição, precisaria ter uma justificativa boa por ter adotado daquela forma.
Gostei + 0
07/01/2010
Fabio Mans
{
public int IncluirPedidoCotacaoRetornado(PedidoCotacaoRetornadoVO pedidoCotacaoRetornadoVo)
{
if (pedidoCotacaoRetornadoVo.CodigoPedidoCotacao == "0")
throw new Exception("Codigo pedido cotação inválido"); if(pedidoCotacaoRetornadoVo.CodigoFornecedor == "0")
throw new Exception("Codigo do fornecedor inválido"); if(!ValidaData(pedidoCotacaoRetornadoVo.DataResposta.ToString()))
throw new Exception("Data de resposta inválida"); if (pedidoCotacaoRetornadoVo.ValidadeResposta.Trim().Length == 0)
throw new Exception("Informe a validade da resposta."); if (pedidoCotacaoRetornadoVo.Frete.Trim().Length == 0)
throw new Exception("Informe o frete");
//Se tudo estiver ok, chama a rotina de gravação
PedidoCotacaoRetornadoDAO PedidoCotacaoRetornadoDao = new PedidoCotacaoRetornadoDAO();
int solicitacao = PedidoCotacaoRetornadoDao.IncluirPedidoCotacaoRetornado(pedidoCotacaoRetornadoVo);
return solicitacao; } private bool ValidaData(string strDate)
{
try
{
DateTime.Parse(strDate);
return true;
}
catch (FormatException e)
{
return false;
}
} } Tem projetos que crio Class Library outros mais simples deixo as classes na App_Code mesmo. http://social.msdn.microsoft.com/Forums/pt-BR/arquiteturapt/threads Espero ter ajudado. =========================================================== Olá Fabio!
Muito obrigado pelas dicas. Só me restou algumas dúvidas.
Quanto ao que você mencionou de não misturar infra com DAL, o que seria? É o caso que mencionei de ter uma pasta DAL e lá estar fazendo todas as situações até mesmo de trabalhar com arquivos texto, xml e etc... desta forma, misturando o conceito de DAL (camada de acesso) com demais situações que podem acontecer na infra?
Então, sobre o segundo item que você mencionou, até o momento para ser sincero, ainda não participei de um projeto que utiliza a mesma regra de negócio (mesma class library/assembly). Eu entendi quando você mencionou que não existe um padrão, é que estou pesquisando a melhor forma de fazer isso (ou se já é pelo que estou fazendo) para que, se possível, adotar como um padrão para equipe, principalmente para aqueles que ainda vão trabalhar com .NET, entende?
Então caso alguém questione essa questão da distribuição, precisaria ter uma justificativa boa por ter adotado daquela forma.
Gostei + 0
08/01/2010
Carlos Nogueira
E neste mesmo modelo que você passou, se você precisar gerar um arquivo XML para enviar para um outro sistema, a escrita deste arquivo ou as regras que contém nele para manipular (nome, local que será armazenado,...) você delegaria essa responsabilidade para PedidoCotacaoRetornadoBLL ou para alguma outra classe que trate de arquivo XML?
Gostei + 0
08/01/2010
Fabio Mans
Gostei + 0
11/01/2010
Fabio Mans
Gostei + 0
12/01/2010
Carlos Nogueira
Obrigado pela sua atenção e me desculpe pelo atraso!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)