Array
(
)

Validação: Fica aonde?

Não
   - 09 set 2011

Estou desenvolvendo uma pequena aplicação 3 camadas em C#: Gerenciamento de contatos.
Tenho uma pequena dúvida em relação à MVC e validação.
Eu tenho a camada DAL, que acessa os dados, tenho a tal BLL, que quase não tem nenhuma regra, serve apenas como fluxo mesmo, e tenho a apresentação. Na library de acesso a dados, tenho duas classes que são apenas propriedades automaticas para armazenar e retornar valores, tanto que é que eu referenciei ela para o datasource do DataGridView.
Então, eu estava atualizando os valores preenchidos nos campos na camada de apresentação e jogando para aqueles campos que serve apenas como armazenamento ou retorno, dai eu executo alguma ação na camada de negócios e ai passa para a de acesso a dados, mas existe alguns campos, que são do tipo inteiro, ou datetime. O que aconteceria se um usuário colocasse um "a" num campo idade por exemplo? não tem como fazer esse tipo de conversão, é aí que entra a validação, mas a validação deveria ser na camada de negócios não é? mas eu já to inserindo esses valores na camada de apresentação, como que faz?

Como faz pouco tempo que eu pratico programação, e esse projetinho é apenas para praticar, fiz um "remendo" na camada de apresentação mesmo, mas o código está horrivel, se um dia precisasse de fazer uma manutenção, daria muito dor de cabeça, tanto é que essa forma que eu usei não faz parte do padrão 3 camadas, mas o projeto é apenas para praticar.

O que eu faço? preciso atualizar os campos de armazenamento e ao mesmo tempo validando os valores preenchidos neles. Qual é a melhor pratica? o que eu devo fazer?

Vou deixar aqui um link do meu projeto pra se alguem quiser analisar pra fica melhor...
Nem tentem executar, pois não vai abrir a connection por causa da connection string.
Percebam que a camada de apresentação ta muito "zuada"

http://www.megaupload.com/?d=VNTX5X5B

Desculpa pelo tamanho do topico...

Por favor, quem puder analisar e ve se tem algo incorreto, fico feliz desde já...

Não
   - 13 set 2011

desculpa, acho que fui muito especifico..
o que eu preciso, é de alguma forma passar os valores para a class de negocio para dai eu poder validar esses valores lá.. to trabalhando numa aplicação em 3 camadas
entendem ?
alguem me ajuda

Rodrigo Odasaki
   - 14 set 2011

Fernando, 

Tenho certeza se você assistir este curso: Crie sistemas N camadas em "Cursos de .net" você vai entender como funciona a validação nas camadas.

Não
   - 15 set 2011

na verdade, fui me informar, mvc é bem diferente de 3 camadas ou n-camadas to mto confuso com tudo isso, mas eu to usando esse 3 camadas eu acho, e é windows applicatio

Não
   - 15 set 2011


Citação:
Fernando, 

Tenho certeza se você assistir este curso: Crie sistemas N camadas em "Cursos de .net" você vai entender como funciona a validação nas camadas.


esse curso é aplicação em asp.net, sei q é mto parecido, mas sei la, to usando windows application,

Leo Andrade
|
MVP
    22 set 2011

Olá amigo tudo bem?

Vamos lá vou tentar lhe ajudar.

Você pode colocar toda a validadação dentro da BLL, deve criar uma nova window para exibir os erros e também uma classe para transportar os mesmos.

Sendo assim quando a BLL encontrar um determinado erro ela seta na classe “Erro” e retorna false, sua IHM irá chamar os métodos de outra maneira algo parecido com isso:

If(!contatos.AlterarContatos(fields))
{
windowErro = new windowErro();
windowErro.ShowDialog();
}

Espero que ajude você,

Grande abraço,
Léo Andrade