Dúvidas de programação e banco de dados (C#)

4 respostas
desenvolvimentopostgresqlprogramaçãocsharpsqlserver
yuriFS

Venho a algum tempo estudando sobre programação, banco de dados, etc. Nesse meio tempo migrei de Java para C#, apenas por preferência pessoal.

Entretanto, possuo várias dúvidas.

Por exemplo, estou fazendo uma aplicação simples para colocar em prática o que venho aprendendo. Como estou usando C#, já notei que uma boa maneira é programar em camadas, cada uma assumindo uma responsabilidade.

Porém, ainda não consigo compreender como fazer a comunicação com o banco de dados. Crio uma camada para as entidades e cada classe atribuo para uma relação existente no banco? Qual seria a melhor forma?

Vou deixar uma imagem do Banco Relacional que fiz utilizando o BrModelo

4 Respostas

Dragoon

Olha realmente para um bom aproveitamento da POO em C# é bom dividir em camadas, mas, tudo vai depender como está hoje seu projeto.

Uma coisa que é para mim um retrocesso e antigo é fazer o nome das tabelas assim:

Tabela
Pessoa

Campos:

  • CodPessoa
  • NomePessoa

para que colocar CodPessoa se a tabela é Pessoa?, porque pra mim se estou em Pessoa eu tenho que atribuir nome de campos somente o que necessita. Pessoa.Codigo, Pessoa.Nome a grafia é melhor e não precisa utilizar nomenclaturas que em vez de padronizar, só atrapalha, e fica dificil a leitura.

Então os nomes de campos e tabelas devem ser o mais simples possível e seguir a mesma regra, já visto que Locacao se colocou idLocacao totalmente fora do padrão da sua tabela Pessoa que você colocou CodPessoa, já ai tem problemas.

###Como exemplificar um modelo básico:

Projeto Web? ou Projeto Desktop?

Web seria MVC o mais indicado que é MODEL, VIEW E CONTROLE e Desktop é um pouco diferente.

Na camada MODEL as classes Conexão, Modelos de Tabela, DAL de cada tabela, já tem uma estrutura básica CRUD. Pode utilizar até um ORM para persistir as informações, ou seja, tem coisas melhores para trabalhar com um projeto que ajudam a facilitar a padronização e escrever menos código.

Tudo depende você poderia focar a sua dúvida num pequeno modelo.

yuriFS

Realmente, na questão de padronização da nomenclatura percebi que é totalmente inviável montar as tabelas dessa forma, então já irei consertar esta parte. Em relação ao modelo que penso em adotar seria para projeto Desktop, no qual já possuo mais familiaridade. Porém não descarto a ideia do projeto Web, pois já venho estudando Asp.Net.

Projeto em camadas com a linguagem C#, como deveria organizá-las?

Dragoon

Para a parte de Models faz uma class library que ela pode ser utilizada tanto por desktop quanto para web.



Preste atenção esse é o primeiro caminho, eu por exemplo refino isso bem, mas, para você é um bom inicio, perceba que nesses videos pelo menos as tabelas tem a mesma nomenclatura, só que a modelagem dos campos a primeira letra poderia ser maiusculas, por exemplo em vez de id no lugar seria Id e assim por diante, o resto é bem isso mesmo.

Dá uma olhada vê se clareá pra você.

Tem esse link aqui de criação de uma camada DAL que também pode ser basear!

pfk66

Você está desenvolvendo uma app postgre ou c#?

Criado 18 de março de 2017
Ultima resposta 19 de mar. de 2017
Respostas 4
Participantes 3