Usuário com melhor resposta
Por onde começar?

Pergunta
-
Olá a todos.
Tenho acompanhado algumas discussões sobre arquitetura de aplicações há algum tempo. Após muito ler, buscando elucidar minhas dúvidas de iniciante e, não tendo chegado a um lugar muito concreto, resolvi postar algumas dúvidas.
É o seguinte:
Imaginemos uma aplicação bem simples de controle de pedidos. Nesta, tenho duas classes: Cliente e Pedido.
1. Pensando em separação de camadas e boas práticas, como organizaria meu projeto?
Ex.:
Em uma dll, coloco minhas classes de negócio (cliente e pedido) ;
Em outra dll, as classes de acesso a dados (DAO - DAL);
Em outra a interface com o usuário (windows form - view) ??
2. Quanto ao mapeamento do banco de dados relacional X Classes, o que é recomendado? Criar minha própria classe, usar algum framework, tipo NHibernate... ?
3. Quanto às classes de acesso às tabelas, utilizo DataSet's? Existe outra solução? Qual a "melhor" (sabendo que isto pode variar de caso para caso) ?
4. Alguém conhece algum material onde é demonstrado a construção, passo-a-passo, de uma aplicação, conforme esses conceitos que mencionei, utilizando C# / Windows Form (estilo MS Pet Shop) ???
Desde já agradeço a atenção.
Abs,
Respostas
-
Alexandre,
Vamos lá.
1)Eu gosto de trabalhar da forma que você explicou, desta forma acho que fica mais organizado.
2)Existe os dois modelos, cada um tem vantagens e desvantagens.
Por exemplo, se vc construir sua própia classe vc terá mais controle. Se vc utilizar um framework ganhará em produtividade!
3)Referente a DataSet, tudo é relativo a qual o objetivo.
Por exemplo, para popular um DropDownList onde vc não utilizar para alterar os dados é mais indicado utilizar o dataReader, pois é mais rápido. Por outro lado vc quer um boa integração com XML quer trabalhar de forma desconectada e pode alterar os dados é mais indicado o dataset/datatable. Sujiro vc dar uma estuda mais afundo nestas classes, pois compreender o foco de cada uma delas é de grande valia, pois ajudará vc a constriuir aplicações sólidas e performáticas.
4)A questão quatro não conheço nenhum projeto público deste nível.
Abraços,
- Marcado como Resposta Wagner dos Santos VasconcellosModerator sábado, 26 de março de 2011 00:19
-
Alexandro no meu projeto que estou desenvolvendo para escola. Estou usando da seguinte forma
Windows Forms (camada de apresentação)
|
|
DLL ( 1 classe capa de acesso a dados ) e o restante faz parte do negocio (Alunos.vb, Classes.vb, Matricula.vb, DocRec.vb, DocAlu.vb, Pendfin.vb) - Sem contar que fiz tudo atráves do diagrama de classe que a IDE ofere...dentro do projeto do tipo Class Libray
|
| |_______Aplicações Mobile Device
| |
| |_______Asp.NET Web Application
|
E la no fundo do posso ( o SGBD PosgresSQL super robusto)
Indico esse sgbd porque trabalho com ele ja a 4 anos em uma empresa que tem um fluxo de mais de 10 milhoes de registros roda em plataforma linux (Servidor com 8gb de Ram, biprocessado, so a fonte da maquina e 2000 Watts).- Marcado como Resposta Wagner dos Santos VasconcellosModerator sábado, 26 de março de 2011 00:19
-
O link abaixo mostra um desejo macro de como minhas camadas se comunicão:
http://www.topliga.com.br/images/camadas.jpg
Para mais detalhes me encaminhem um e-mail:
- Marcado como Resposta Wagner dos Santos VasconcellosModerator sábado, 26 de março de 2011 00:19
Todas as Respostas
-
Alexandre,
Vamos lá.
1)Eu gosto de trabalhar da forma que você explicou, desta forma acho que fica mais organizado.
2)Existe os dois modelos, cada um tem vantagens e desvantagens.
Por exemplo, se vc construir sua própia classe vc terá mais controle. Se vc utilizar um framework ganhará em produtividade!
3)Referente a DataSet, tudo é relativo a qual o objetivo.
Por exemplo, para popular um DropDownList onde vc não utilizar para alterar os dados é mais indicado utilizar o dataReader, pois é mais rápido. Por outro lado vc quer um boa integração com XML quer trabalhar de forma desconectada e pode alterar os dados é mais indicado o dataset/datatable. Sujiro vc dar uma estuda mais afundo nestas classes, pois compreender o foco de cada uma delas é de grande valia, pois ajudará vc a constriuir aplicações sólidas e performáticas.
4)A questão quatro não conheço nenhum projeto público deste nível.
Abraços,
- Marcado como Resposta Wagner dos Santos VasconcellosModerator sábado, 26 de março de 2011 00:19
-
Alexandro no meu projeto que estou desenvolvendo para escola. Estou usando da seguinte forma
Windows Forms (camada de apresentação)
|
|
DLL ( 1 classe capa de acesso a dados ) e o restante faz parte do negocio (Alunos.vb, Classes.vb, Matricula.vb, DocRec.vb, DocAlu.vb, Pendfin.vb) - Sem contar que fiz tudo atráves do diagrama de classe que a IDE ofere...dentro do projeto do tipo Class Libray
|
| |_______Aplicações Mobile Device
| |
| |_______Asp.NET Web Application
|
E la no fundo do posso ( o SGBD PosgresSQL super robusto)
Indico esse sgbd porque trabalho com ele ja a 4 anos em uma empresa que tem um fluxo de mais de 10 milhoes de registros roda em plataforma linux (Servidor com 8gb de Ram, biprocessado, so a fonte da maquina e 2000 Watts).- Marcado como Resposta Wagner dos Santos VasconcellosModerator sábado, 26 de março de 2011 00:19
-
O link abaixo mostra um desejo macro de como minhas camadas se comunicão:
http://www.topliga.com.br/images/camadas.jpg
Para mais detalhes me encaminhem um e-mail:
- Marcado como Resposta Wagner dos Santos VasconcellosModerator sábado, 26 de março de 2011 00:19