Usuário com melhor resposta
Arquitetura usando LINQ e Generic

Pergunta
-
Pessoal,
Estou desenvolvendo um novo projeto e resolvi me aventurar usando LINQ e Generic, nos meus projetos eu gosto de dividir em camadas(dados, negócios, entre outros), encapsulando as funcionalidades mais básicas em uma BaseDAO.
Enfim, gostaria de saber se alguém poderia listar alguns exemplos, artigos ou qualquer coisa que me possa ser útil, pois não ainda muita afinidade com o LINQ e Generic.
Grato desde já,
Duan Brito
Respostas
-
Olá Duan Brito,
http://www.macoratti.net/indlinq.htm
Entra nesse site, que tem só artigos sobre linq pra vc criar afinidade
Abraço
- Sugerido como Resposta Alan Cossari quinta-feira, 30 de abril de 2009 20:22
- Marcado como Resposta Wagner dos Santos VasconcellosModerator segunda-feira, 28 de março de 2011 20:15
-
Olá Duan,
Sugiro a leitura do tópico abaixo:
Camada de Banco de Dados - Persistência - Mapeamento Objeto Relacional
http://forums.microsoft.com/msdn-br/ShowPost.aspx?PostID=4308063&SiteID=21
Abraços,
Caio Proiete
Caio Proiete
Microsoft MVP, MCT, MCPD, MCTS, MCSD
http://caioproiete.net- Sugerido como Resposta Alan Cossari sexta-feira, 30 de outubro de 2009 12:56
- Marcado como Resposta Wagner dos Santos VasconcellosModerator segunda-feira, 28 de março de 2011 20:15
- Editado C. Augusto Proiete [MVP]Moderator quinta-feira, 12 de abril de 2012 23:53
-
Brow, cê deve ta falando do Entity Framework, pq linq é apenas para fazer consultas a uma coleção de objetos com generic por exemplo.
Já o entity framework faz o ORM ( mapeamento ), ele mapeia as tabelas do seu sql serverzão para seu modelão de negócios ( classes ) / objetos de transferência de dados ( DTOs ).
Mas emfim, seguindo a arquitetura que a microsoft propõe ( DNA ) ... Vc teria suas classes de negócio com os atributos do entity framework ( Table , column , ... ). E teria a classe Data Context. Seus métodos de negocio, iria chamar a data context para acessar a base.
* dica: Criaria uma camada lógica de negócio, onde para cada classe de negócio acima, criaria uma outra herdando desta e sobrescrevendo os métodos aplicando as regras nesta super classe. Pq senão suas classes negócio vão parecer um mix de objeto de acesso a dados e objeto de negócio.
Bruno Gallego - Se este poste foi útil, por favor, classifique- Marcado como Resposta Wagner dos Santos VasconcellosModerator segunda-feira, 28 de março de 2011 20:15
-
Duan,Eu costumo utilizar o Design Pattern Repository para arquitetar meus sistemas.Tenho um post aqui que mostra como você pode fazer para separar as camadas: http://www.bizness.com.br/weblog/post/2008/12/11/Design-Patterns-Parte-4-Repository.aspxAt.Cássio Rogério Eskelsen
- Marcado como Resposta Wagner dos Santos VasconcellosModerator segunda-feira, 28 de março de 2011 20:15
Todas as Respostas
-
Olá Duan Brito,
http://www.macoratti.net/indlinq.htm
Entra nesse site, que tem só artigos sobre linq pra vc criar afinidade
Abraço
- Sugerido como Resposta Alan Cossari quinta-feira, 30 de abril de 2009 20:22
- Marcado como Resposta Wagner dos Santos VasconcellosModerator segunda-feira, 28 de março de 2011 20:15
-
Olá Duan,
Sugiro a leitura do tópico abaixo:
Camada de Banco de Dados - Persistência - Mapeamento Objeto Relacional
http://forums.microsoft.com/msdn-br/ShowPost.aspx?PostID=4308063&SiteID=21
Abraços,
Caio Proiete
Caio Proiete
Microsoft MVP, MCT, MCPD, MCTS, MCSD
http://caioproiete.net- Sugerido como Resposta Alan Cossari sexta-feira, 30 de outubro de 2009 12:56
- Marcado como Resposta Wagner dos Santos VasconcellosModerator segunda-feira, 28 de março de 2011 20:15
- Editado C. Augusto Proiete [MVP]Moderator quinta-feira, 12 de abril de 2012 23:53
-
Brow, cê deve ta falando do Entity Framework, pq linq é apenas para fazer consultas a uma coleção de objetos com generic por exemplo.
Já o entity framework faz o ORM ( mapeamento ), ele mapeia as tabelas do seu sql serverzão para seu modelão de negócios ( classes ) / objetos de transferência de dados ( DTOs ).
Mas emfim, seguindo a arquitetura que a microsoft propõe ( DNA ) ... Vc teria suas classes de negócio com os atributos do entity framework ( Table , column , ... ). E teria a classe Data Context. Seus métodos de negocio, iria chamar a data context para acessar a base.
* dica: Criaria uma camada lógica de negócio, onde para cada classe de negócio acima, criaria uma outra herdando desta e sobrescrevendo os métodos aplicando as regras nesta super classe. Pq senão suas classes negócio vão parecer um mix de objeto de acesso a dados e objeto de negócio.
Bruno Gallego - Se este poste foi útil, por favor, classifique- Marcado como Resposta Wagner dos Santos VasconcellosModerator segunda-feira, 28 de março de 2011 20:15
-
Duan,Eu costumo utilizar o Design Pattern Repository para arquitetar meus sistemas.Tenho um post aqui que mostra como você pode fazer para separar as camadas: http://www.bizness.com.br/weblog/post/2008/12/11/Design-Patterns-Parte-4-Repository.aspxAt.Cássio Rogério Eskelsen
- Marcado como Resposta Wagner dos Santos VasconcellosModerator segunda-feira, 28 de março de 2011 20:15
-
Olá amigo, bom dia!
Linq e Generics não vão te ajudar nisso... Você precisa pesquisar sobre Arquitetura de sistemas!
Vamos lá, comece a pesquisar nessa ordem:
- Modo que vai querer acessar os dados(EntityFramework - EF, NHibernate, DAO com os antigos Clients do .NET framework) - Primeiro de tudo você tem que saber como vai buscar os dados no banco... O EF como o NHibernate e os Clients antigos como o (SQLClient), ambos tem seu lado positivo e negativo, se você quer performance no acesso e um controle totalmente manual eu indico usar os clients(SQLClient) pois neles você não vai ter nada de conversões/Deparas e algo do tipo implicito, nele você vai executar direto e aguardar o retorno dos objetos do banco porem você perde muito em tempo de desenvolvimento e perde todas as facilidades oferecidas pelos ORM(EF e NHibernate).
- Após saber como vai acessar os dados, seria legal você saber se tem necessidade de desacoplar o acesso a dados EX- Desacoplar a tecnologia que vai utilizar.... Isso é legal porque se não quiser mais usar o EF você pode inverter e usar o NHibernate do dia pra noite... Um que eu uso é o REPOSITORY... bem legal.
- Se você desacoplou o acesso a dados não quer dizer que as dependencias ja estão desacopladas, então pesquise sobre (DI - Dependency Injection) e veja se você tem que usar ou não isso... se vale apena ou não(Lembrando que isso implica em performance).
- Após tudo isso, defina bem como vai ser sua camada de negocios e Visualização, mas a parte mais grossa vc ja vez, que foi definir como os dados serão acessados.
Onde o LINQ entra nisso ?
É simples, o linq vai te facilitar para trabalhar com os dados, pesquisar/manipular, ele é bom mas as vezes um Foreach ou o for resolvem o problema e são bem mais rapidos.... =D
Generics como o proprio nome ja diz, vai te facilitar em criar funções UNICAS, classes UNICAS que vão servir para tudo.... É legal, mas é lento e o codigo fica meio abstrato.. rs =D
PS - Tudo deve ser usado com moderação, generics por exemplo é muito bom, mas quando você pega o codigo para olhar, você não intende nada. =D
DI é legal, mas para debugar é uma MERDA.. rs
BOm, seja feliz. =D
-
Ola Duan Brito eu tenho uma video aula explicando como trabalhar com Repositorio + Generics + Linq, o linq do video é:
http://devdicas.blogspot.com.br/2012/12/aplicando-repositorio-com-generics-e.html
Se gostar da um curtir na minha fanpage de arquietura.net no facebook :
https://www.facebook.com/arquiteturadotnet
Espero que seja o que procura