3 CAMADAS

CHMATOS 16/12/2014 16:14:48
#443245
Pessoal, vou iniciar o desenvolvimento de um sistema e vou utilizar arquitetura em 3 camadas, minda esta na construção dos métodos que envolve i insert, update, select e delete. Eu sei que será necessário a classa DAl.

Mas os scripts sql eu utilizo na camada de negocio? Como exemplo abaixo.

Dados = dal new Dados
return dal.RetornaDataSet([Ô]select * from cliente[Ô])

F001E 16/12/2014 17:27:50
#443247
faça com NHibernate...

http://www.devmedia.com.br/criando-uma-aplicacao-crud-parte-01-nhibernate-fluent-nhibernate-e-structuremap/20167

confesso que no começo me deu um nó na cabeça, mas agora ficou bem mais produtivo.....
TUNUSAT 16/12/2014 17:30:26
#443248
CHMATOS,

Coloquei aqui um Sistema Exemplo completo em 3 camadas:

==================================================
SISTEMA EXEMPLO CLIENTE / PRODUTO DE LOJA
http://www.vbmania.com.br/index.php?modulo=detalhe&id=9259
==================================================

Veja também:

==================================================
VB .NET - Criando uma aplicação em camadas (de novo)
http://www.macoratti.net/09/02/vbn_3cam.htm
==================================================
VB .NET – 7 passos para criar uma aplicação em 3 camadas – Parte 01
http://imasters.com.br/framework/dotnet/vb-net-7-passos-para-criar-uma-aplicacao-em-3-camadas-parte-01/
==================================================
Criando Aplicações em 3, 4 ou n Camadas
http://www.juliobattisti.com.br/artigos/ti/ncamadas.asp
==================================================
Criando uma aplicação ASP .NET em três camadas
http://imasters.com.br/artigo/21147/dotnet/criando-uma-aplicacao-asp-net-em-tres-camadas/
==================================================

Li e gostei deste livro embora seja bem básico, explica as camadas:

==================================================
http://www.livrariacultura.com.br/p/desenvolvimento-em-camadas-com-c-net-3235420# .net&ref=3235420&_=0.942441158691314
http://www.saraiva.com.br/desenvolvimento-em-camadas-com-c-net-2612791.html
==================================================
Desenvolvimento em Camadas com C# .net
Camacho Jr., Carlos Olavo de Azevedo
Editora Visual Books
Peso = 0.4000
I.S.B.N. = 9788575022429
Cód. Barras = 9788575022429
Idioma = Português
ANO = 2008
==================================================

[][ô]s,
Tunusat.
FOXMAN 17/12/2014 10:33:28
#443263
Citação:

:
Pessoal, vou iniciar o desenvolvimento de um sistema e vou utilizar arquitetura em 3 camadas, minda esta na construção dos métodos que envolve i insert, update, select e delete. Eu sei que será necessário a classa DAl.

Mas os scripts sql eu utilizo na camada de negocio? Como exemplo abaixo.

Dados = dal new Dados
return dal.RetornaDataSet([Ô]select * from cliente[Ô])



Na verdade não, a camada de Negócio irá atribuir regras e validações aos dados.
Vou explicar de uma forma diferentemente , e acredito que didaticamente seja mais fácil de entender.

Eu particularmente utilizo N-Tier ao invés de 3 Camadas .
Uma classe para representar os campos do banco de dados(inclusive criei uma Procedure que gero a classe automaticamente).
Uma classe para as Regras.
Uma classe para manipular os dados. Retornar dados, inserir, excluir, filtrar, etc....(lembrando que aqui ainda não faço acesso aos dados, apenas preparo.)
Uma classe para SQL. CRUD.
Uma classe para apresentação.

Classe apresentação solicita as regras de negocio que por sua vez passa para dados, que faz a requisição a SQL, que retorna a solicitação revertendo o caminho.

APRESENTAÇÃO>BLL>DADOS>SQL que retorna SQL>DADOS>BLL>APRESENTAÇÃO

Sendo assim :

Apresentação passa os campos/dados, para BLL. BLL examina os dados fazendo diversas validações(CPF/CNPJ, ENDEREÇO, ETC...). Estando tudo ok, envia para DADOS, que monta as instruções sql e envia para SQL. SQL executa os comandos e retorna fazendo o caminho inverso.

Eu poderia já na camada DADOS fazer acesso ao banco e executar as instruções sqls, no entanto eu prefiro deixar separado o acesso a dados das instruções.Mesmo porque minha classe SQL não serve apenas para este sistema.

JABA 17/12/2014 11:32:06
#443267
Citação:

Eu particularmente utilizo N-Tier ao invés de 3 Camadas .
Uma classe para representar os campos do banco de dados(inclusive criei uma Procedure que gero a classe automaticamente).
Uma classe para as Regras.
Uma classe para manipular os dados. Retornar dados, inserir, excluir, filtrar, etc....(lembrando que aqui ainda não faço acesso aos dados, apenas preparo.)
Uma classe para SQL. CRUD.
Uma classe para apresentação.



Isso está me cheirando a um MODELO ANÊMICO.
O meu conselho é que fuja desse tipo de modelo e procure desenvolver seus sistemas no MODELO Rico, assim você estará dentro dos princípios da POO.
FOXMAN 17/12/2014 18:03:39
#443277
Citação:

:
Eu particularmente utilizo N-Tier ao invés de 3 Camadas .
Uma classe para representar os campos do banco de dados(inclusive criei uma Procedure que gero a classe automaticamente).
Uma classe para as Regras.
Uma classe para manipular os dados. Retornar dados, inserir, excluir, filtrar, etc....(lembrando que aqui ainda não faço acesso aos dados, apenas preparo.)
Uma classe para SQL. CRUD.
Uma classe para apresentação.

Isso está me cheirando a um MODELO ANÊMICO.
O meu conselho é que fuja desse tipo de modelo e procure desenvolver seus sistemas no MODELO Rico, assim você estará dentro dos princípios da POO.



Talvez eu não tenha me expressado de forma correta. Entenda CAMADA onde escrevo CLASSE.
Observe que na explicação mesclo classe com camada, mas entenda camada.ok.

Mas como diz o ditado, para quem sabe ler um pingo é letra. Todos sabemos que uma CAMADA é composta de diversas Classes, então seria fácil identificar que ao dizer Uma classe para as Regras. estou me referindo a uma camada.

Citação:

Eu poderia já na [txt-color=#e80000]camada [/txt-color]DADOS fazer acesso ao banco e executar as instruções sqls, no entanto eu prefiro deixar separado o acesso a dados das instruções.Mesmo porque minha classe SQL não serve apenas para este sistema.



Citação:

Eu particularmente utilizo N-Tier ao invés de 3 Camadas .
Uma classe camada para representar os campos do banco de dados(inclusive criei uma Procedure que gero a classe automaticamente).
Uma classe camada para as Regras.
Uma classe camada para manipular os dados. Retornar dados, inserir, excluir, filtrar, etc....(lembrando que aqui ainda não faço acesso aos dados, apenas preparo.)
Uma classe camada para SQL. CRUD.
Uma classe camada para apresentação.


JABA 17/12/2014 22:00:04
#443280
Citação:

Uma classe para representar os campos do banco de dados(inclusive criei uma Procedure que gero a classe automaticamente).



Essa parte citada acima me levou a crer que você está usando uma camada DTO para separar as caracteristicas dos comportamentos. Se esse for realmente o caso, você está desenvolvendo o seu projeto no modelo anêmico.

No modelo rico, não existe essa separação. Sendo assim, o modelo não fica sendo apenas um pacote de dados, mas um objeto com comportamentos.
IDELVAN 24/12/2014 00:36:32
#443389
Meu amigo Fox tudo bem.


Rapaz, estou cortando o cordão umbilical do vb6 e partindo para o VSTO 2010.

Como nossa vida é um constante aprendizado. Algo que estou estudando é aplicação em camadas. ( DTO, DAL, BLL, WF)

Agora pergunto, esse é o caminho certo para ter uma aplicação robusta ( uma pergunta ).



Forte abraço.
PAULOOLIVEIRA 24/12/2014 20:16:18
#443400
Cara, no começo vai ser chato.. mais depois vai ficar [Ô]doce[Ô] aqui no forum tem um modelo bem simples e facilll
FOXMAN 25/12/2014 10:51:58
#443402
Citação:

:
Meu amigo Fox tudo bem.


Rapaz, estou cortando o cordão umbilical do vb6 e partindo para o VSTO 2010.

Como nossa vida é um constante aprendizado. Algo que estou estudando é aplicação em camadas. ( DTO, DAL, BLL, WF)

Agora pergunto, esse é o caminho certo para ter uma aplicação robusta ( uma pergunta ).



Forte abraço.



Grande Idelvan, tudo bem.....

Rapaz, certamente sim. é tudo uma questão de mudar o conceito da forma atual de programação.
Sugiro ( já que estará iniciando do zero) que vá para C#, pois com certeza irá encotrar muito conteúdo(principalmente gringo) para dúvidas que irão surgir.

Mão na massa, 2015 está ai.....
Faça seu login para responder