artigo .net Magazine 56 - ASP.NET 35 e LINQ to SQL
Artigo da Revista .NET Magazine - Edição 56. http://www.devmedia.com.br/Imagens/gold/Net/56/artigo5/image7.jpg
Web - Novidades
ASP.NET 3.5 e LINQ to SQL
Use o LINQ to SQL em aplicações ASP.NET
· Definição do LINQ (Language Integrated Query);
· Exemplos de uso no ASP.NET com o VS.NET 2008;
· Novidades do Visual C# utilizados no LINQ.
· Mostrar o que é o LINQ e o uso em aplicações ASP.NET.
· Em qualquer aplicação .NET 3.5.
O LINQ para SQL é um excelente recurso que ajudará os desenvolvedores a focar em OOP, produtividade, trabalhar com mapeamento de objeto relacional, além de oferecer recursos de manipular coleções com as novidades do .NET Framework 3.0.
Em 2005 estive no evento MVP Summit na Microsoft em Seattle e uma das palestras que me chamou a atenção tinha como tema LINQ. Como o palestrante era o fantástico Anders Hejlsberg eu jamais poderia deixar de ir. Então, com o desenrolar da mesma o Anders abriu o bloco de notas, isto mesmo o bloco de notas, e começou a digitar alguns códigos que me pareceram muito simples de entender. Mas naquela época, como não tínhamos nada parecido (pelo menos pra mim), tudo me chamou a atenção e como o palestrante sabe conduzir uma apresentação perfeita, ele foi cada vez mais aumentando a complexidade dos códigos. Claro que a cada exemplo ele executava e explicava para que tudo ficasse claro. Ao final da palestra, todos ficaram paralisados com o LINQ, tive a sensação de estar exatamente no "forno" de uma nova tecnologia. Enfim, surgiram várias perguntas sobre a parte técnica, mercado e linguagens e o Anders afirmou que o LINQ iria mudar a forma de pensarmos e escrevermos o código.
Hoje, anos depois vejo que a Microsoft realmente investiu muitos esforços no LINQ e temos muitos recursos para colocarmos em produção com o Visual Studio .NET 2008. Portanto, o objetivo deste artigo será mostrar o que é o LINQ, como podemos incorporar esta tecnologia em uma aplicação ASP.NET e alguns exemplos.
O que é o LINQ?
LINQ significa Language Integrated Query, ou seja, linguagem de consulta integrada que podemos utilizar para manipular qualquer tipo de coleção, arrays, dados, objetos e demais itens. O LINQ dispõe de todos os recursos integrados ao Visual Studio .NET 2008, tanto nos templates quanto em nível de linguagem.
Em relação a banco de dados a Microsoft disponibiliza até o momento da publicação deste artigo os seguintes templates:
· LINQ to SQL – utilizado para trabalhar com o banco de dados SQL Server;
· LINQ to XML – utilizado para trabalhar com arquivos XML;
· LINQ to Dataset – utilizado para trabalhar com Dataset.
E por que não posso usar o LINQ com outros providers como Oracle, FireBird, DB2 etc.? A resposta é que teremos o Entity Framework o qual poderá trabalhar o LINQ com qualquer provider que o mercado criar, independente do banco de dados. Isto cabe aos fabricantes providenciarem.
Vamos iniciar o projeto do artigo. Crie um Web Site chamado ArtigoLINQ em http://localhost/ArtigoLINQ e a linguagem será o Visual C#. Veja na Figura 1 como deverá estar a configuração. Caso você esteja utilizando outra versão do Visual Studio (a minha é o VSTS) e tiver apenas a opção Web Application não há nenhum problema, crie a aplicação assim mesmo.
Figura 1. Novo Web Site
O primeiro passo é criar o arquivo que irá conter a estrutura do objeto relacional referente ao banco de dados. Portanto, no Solution Explorer adicione um novo item do tipo LINQ to SQL Classes chamado Northwind.dbml (Figura 2). Isto é um dos passos mais importantes nesta etapa de definição. Para o nome do arquivo, por costume prefiro utilizar o mesmo nome do banco de dados para ficar mais familiar e de fácil entendimento durante a instância do mesmo nos códigos. Note que a extensão do arquivo é DBML, o qual significa Database Mapping Language, ou seja, é a linguagem do mapeamento do banco de dados.