O documento apresenta uma introdução ao LINQ, que permite consultas de propósito geral em C# com uma sintaxe semelhante à SQL. O LINQ pode consultar vários tipos de dados, incluindo coleções, XML e bancos de dados. Ele introduz novos recursos como expressões lambda, tipos anônimos e variáveis locais implicitamente tipadas que facilitam seu uso.
1. Introdução ao LINQ Everton Coimbra de Araújo everton@utfpr.edu.br http://pptinformatica.com.br/wordpress http://twitter.com/evertonfoz Fábio Augusto Pandolfo fabiopand@gmail.com http://dotando.blogspot.com http://twitter.com/fabiopand
2. Objetivos Fazer uma introdução conceitual e prática das tecnologias necessárias para a utilização do LINQ.
3. Agenda Visão geral sobre o LINQ Breve histórico Arquitetura Evoluções de linguagem
4. Oque é o LINQ? O LINQ(Language Integrated Query) é um componente do .NET que disponibiliza mecanismos para efetuar consultas de propósito geral, com uma sintaxe parecida a da SQL (Structured Query Language).
5. Breve histórico do LINQ Teve seu lançamento no .NET 3.5 O .NET 3.0 introduziu um conjunto de novas funcionalidades que viabilizaram o LINQ Extension Methods, Lambda Expressions, Anonymous Types, Implicitly Typed Local Variables (var)
6. Oque consultar com o LINQ? Praticamente tudo LINQ to Objects (IEnumerable and IQueryable) LINQ to XML LINQ to Entities Várias outras implementações
8. IEnumerable e IQueryable IEnumerable – executada parta por parte IQueryable – executada de uma só vez where select Execute Execute where select Capture & Execute
12. Implicitly Typed Local Variables (var) O compilador determina o tipo da variável Uma vez setada, não pode ser mudada Exemplo: var s = “olá mundo”; //string var i = 100; //int var d = 100.5; //double
14. Anonymous Types Permite encapsular propriedades públicas somente leitura em um único objeto, sem ter que definir explicitamente seus tipos Exemplo: new { Nome = “Homer”, Sobrenome= “Simpson”}
18. Lambda Expressions Lambda Operator => Abreviam a criação de um delegate (forma segura de ponteiro para função) Não é realmente necessário compreender o seu funcionamento Exemplo: alunos.Where( a => a.Nome == “Fábio”)
20. Query Expressions Parecido com SQL (Structured Query Language) Exemplo: SELECT a.* FROM alunos a WHERE a.Id != 0 ORDER BY a.Nome var resultado = from a in Alunos where a.Id != 0 orderby a.Nome select a;
22. Query Operators São Extension Methods. Exemplos: Select(), Where(), OrderBy(), etc. Muitos Query Operators retornam outra coleção (IEnumerable). Podem ser utilizados em conjunto: alunos.Where(aluno => aluno.Idade > 21).OrderBy(aluno => aluno.Idade)
24. Conclusões O LINQ oferece uma sintaxe de consulta próxima da linguagem do desenvolvedor, oque torna o desenvolvimento muito mais padronizado, gerando ganho de produtividade e facilidade de manutenção
25. Links interessantes Blog - Fábio Pandolfo - Slides e recursos deste minicurso http://dotando.blogspot.com Blog - Andy Schwam - Consultor Independente http://blog.ingenuitynow.net/ Artigo - Apresentando LINQ http://www.macoratti.net/07/12/net_linq.htm Artigo - Getting Started with LINQ in C# http://msdn.microsoft.com/en-us/library/bb397933.aspx Artigo - Language Integrated Query http://en.wikipedia.org/wiki/Language_Integrated_Query Artigo - Standard Query Operators with LINQ http://msdn.microsoft.com/en-us/magazine/cc337893.aspx