Usuário com melhor resposta
camadas

Pergunta
-
Olá amigos tudo bem?
Estou iniciado em .Net mais especificamente em Asp.Net.
Desenvolvi um exemplo de projeto com as seguintes camadas:
Vou chamar de camada de propriedades. Me corrijam quanto ao nome se tiver errado.
Code Snippetpublic
class Fornecedores{
private int codigo;
private string razaosocial;
private string cgccpf;
public
Fornecedores(int codigo, string razaosocial, string cgccpf){
this.codigo = codigo; this.razaosocial = razaosocial; this.cgccpf = cgccpf;}
public
int fcodigo{
{
}
set
{
codigo =
}
}
//Aqui segue os outros Gets e Sets dos outros atributos
//...
//...
//...
}
Agora aqui a minha camada de negocio.
Code Snippetpublic
class ManipulaDados{
public ManipulaDados()
{
}
{
try{
strConexao.Open();
using (SqlCommand cmd = new SqlCommand(sql, strConexao))
{
cmd.Parameters.AddWithValue("@codigo", forn.fcodigo);
cmd.Parameters.AddWithValue("@razao", forn.frazaosocial);
cmd.Parameters.AddWithValue("@cgc", forn.fcgccpf);
cmd.CommandType = CommandType.Text; //Tipo de comando executado, tipo texto
cmd.ExecuteNonQuery();
}
}catch
{
//..................
}
finally
{
strConexao.Close();
}
}
E finalmente na camada de apresentação, dentro do botão Salvar tem:
Code SnippetManipulaDados
mfForn = new ManipulaDados(); Fornecedores forn = new Fornecedores(int.Parse(txtcod.Text), txtnome.Text, txtcgc.Text);mfForn.incluirRegistro(forn);
Gostaria de saber a opinião deste tipo de estutura? As vantagens e desvantagens.
Estou estudando sobre o Linq to Sql e Entity Framework ou Linq to Entity.
No momento eu li mais artigos sobre o Linq to SQL, percebi que ele faz todo o trabalho pra mim na camada de dados, ou seja toda parte de dataset, conexão e etc, e que sua sintaxe é bem reduzida e de facil entendimento, mas ele funciona exclusivamente com SQL.
Enquanto que o Entity Framework é mais flexivel e pode trabalhar com diferentes bancos e posso usar os recursos que o Linq to Sql.
Então lhes pergunto, o Entity Framework irá sobrepor o Linq to SQL?
E é melhor usar uma uma ferrameta para ajudar a manipular os dados ou é melhor fazer toda a camada de dados no "braço" e ter um maior controle sobre a aplicação? posso confiar nessa ferramentas?
desculpe pelo texto grande, mas é que são muitas dúvidas e estou tentando seguir uma linha de desenvolvimento, por isso conto com a ajuda de vocês.
Desde já agradeço pela ajuda.
Respostas
-
Cesar,
Existem vários fatores que influenciam na estrutura das suas camadas, podemos colocar como exemplo:
-
Comunicação (Remoting, Web Services ....)
-
Segurança
-
Várias interfaces (Web e Desktop)
-
e assim vai ....
Cada aplicação tem as suas particularidades por isso é importante saber escolher o que vai usar, lembrando que isso tem que respeitar o prazo, custo e escabiliadde do projeto.
Recomendo você dar uma olhada nesse guide da equipe p&p:
Application Architecture for .NET: Designing Applications and Serviceshttp://msdn.microsoft.com/en-us/library/ms954595.aspx
Para ter uma base de desenvolvimento recomendo que você baixe o código do PetShop desenvolvido em .Net disponibilizado pela microsoft.
PetShop 3.0 .NET Sample Application
[]'s
-
Todas as Respostas
-
JrCesar,
A moda das camadas é válida, mas quando bem aplicada.
No caso você só dividiu o seu código em partes, o que configura o modelo anêmico descrito aqui por Martin Fowler.
Quanto a camada de dados, o melhor é você usar algo que seja prático para você. O Linq To SQL (L2S), não esta recebendo atualizações por parte da MS, a equipe que agora pertence a equipe do Entity Framework, irá focar neste último.
Mas existem diversas outras soluções, a Enterprise Library é uma por exemplo, que te facilita em alguns pontos e outros fica mais manual. Tudo vai depender do seu projeto. -
Olá Brandão tudo bem?
Muito obrigado por ter me ajudado, é que estou começando agora então estou com duvida em algumas coisas.
Por exemplo, quero construir um sistema web em 3 camadas, eu sei que tem as camadas de apresentação, de negocios e de dados. Pois então, como elaborar um bom projeto em camdas?
Gostaria de ter um exemplo de estrutura em camadas.
Quanto a camada de dados e que eu tenho lido é isso que você descreveu sobre o Linq e o Entity Framework, mas como o Enttity Framework está em desenvolvimento muitas pessoas estão reclamando.
Para uma aplicação web você recomendaria na camada de dados o uso de DataSets, DataAdapter e etc..., como mostra no site do Macoratti http://www.macoratti.net/08/02/lnq_usp1.htm e na continuação deste artigo ele mostra o uso do Linq onde que eu começei a me interessar sobre o assunto http://www.macoratti.net/08/02/lnq_usp2.htm .
O que você poderia me recomendar ao que diz respeito a camada de dados?
Agradeço pela ajuda.
"Eu tenho que ser melhor do que eu ontem"
-
Para entender o por que de camadas leia MVC e Camadas, e depois as questões relativas ao modelo anêmico leia Fantoches e Evitando VOs e BOs, todos do Phillip Calçado.
Quanto ao EF, ele esta finalizado no SP1, porém o funcionamento dele foi criticado pela comunidade, como você pode ler aqui, o time de desenvolvimento concordou com as observações e esta trabalhando na melhoria para a segunda versão do framework.
Você tem que usar o que for útil para você, se EF for complicado, use DataSet; se DataSet for pesado, principalmente por se tratar de uma arquitetura Web, use POCO com a Enterprise Library.
-
Cesar,
Existem vários fatores que influenciam na estrutura das suas camadas, podemos colocar como exemplo:
-
Comunicação (Remoting, Web Services ....)
-
Segurança
-
Várias interfaces (Web e Desktop)
-
e assim vai ....
Cada aplicação tem as suas particularidades por isso é importante saber escolher o que vai usar, lembrando que isso tem que respeitar o prazo, custo e escabiliadde do projeto.
Recomendo você dar uma olhada nesse guide da equipe p&p:
Application Architecture for .NET: Designing Applications and Serviceshttp://msdn.microsoft.com/en-us/library/ms954595.aspx
Para ter uma base de desenvolvimento recomendo que você baixe o código do PetShop desenvolvido em .Net disponibilizado pela microsoft.
PetShop 3.0 .NET Sample Application
[]'s
-