.NET - As novidades de 2009 (ADO .NET Entity Framework)


Ano novo, vida nova e as novidades não param...

- Nova versão do VS 2010 e NET Framework 4.0

Prepare-se para o Visual Studio 2010 (Codenome: Rosário)  e o .NET Framework 4.0, eles já estão em desenvolvimento, conforme anúncio da Microsoft feito em setembro de 2008. Confira em: http://www.microsoft.com/presspass/press/2008/sep08/09-29VS10PR.mspx

Segundo o texto a nova versão esta focada em 5 áreas :

Como ainda é muito cedo para fazer considerações vamos aguardar...

- Novo controle Microsoft Chart Control

A Microsoft disponibilizou um novo controle gratuito para a criação de gráficos: o Microsoft Chart Control.

Este novo controle está disponível para aplicações Windows Forms e Web (ASP.NET) na plataforma .Net Framework 3.5.

Possui diversas novas funcionalidades e estão disponíveis mais de 200 exemplos para ASP.NET e Windows Forms. Em breve pretendo publicar um artigo mostrando como usar o componente.

Veja aqui :

Microsoft Chart Controls (Microsoft .NET Framework 3.5)
Microsoft Chart Controls Add-on para Microsoft Visual Studio 2008
Microsoft Chart Controls - Exemplos
Microsoft Chart Controls - Documentação
Microsoft Chart Controls - Forum Oficial

- Livro grátis sobre SQL Server 2008

A Microsoft Press disponibilizou gratuitamente (após registro) o livro em formato PDF "Introducing Microsoft SQL Server 2008".

O livro está disponível no seguinte endereço:
http://csna01.libredigital.com/?urss1q2we6

- E durante este ano de 2009 o que deverá estar em destaque ?

Vejamos...

SilverLight , MVC , ADO .NET Entity Framework, Mapeamento Objeto relacional, ADO .NET Data Services, Cloud Computing, WPF, LINQ , Web Services, XML , Testes Unitários, Arquitetura de software, Desenvolvimento em Camadas

Muitos conceitos relacionados com as siglas citadas acima não são novos mas começaram a ganhar mais destaque de uns dois anos para cá e estarão  na boca dos desenvolvedores.

O jeito é se atualizar para não ficar para trás; durante o ano estarei publicando artigos relacionados com os itens citados.

- Abordando o ADO .NET Entity Framework

Para começar vou falar um pouco sobre o ADO .NET Entity Framework pois ele veio sofrendo alterações até o lançamento do service pack 1(aliás você deve atualizar o seu Visual Studio e versões Express com o service pack 1 disponível em : http://www.microsoft.com/downloads/details.aspx?FamilyId=FBEE1648-7106-44A7-9649-6D9F6D58056E&displaylang=en e http://www.microsoft.com/eXPress/download/ )

A proposta do Entity Framework é ser uma ferramenta de mapeamento objeto relacional (vide NHibernate-VB .NET - Usando o NHibernate).

Vejamos como ele funciona:

Abra o Visual Studio 2008 (com service pack 1 atualizado) e crie uma nova solução em branco com o nome de DemoEF;

Agora vamos criar um novo projeto do tipo Class Library dentro desta solução usando a linguagem Visual Basic;

Clique com o botão direito do mouse e selecione Add New Project e selecione as opções conforme a figura abaixo informando o nome do projeto como : demoEF.ModeloEF;

A seguir clique sobre o projeto criado com o botão direito do mouse e selecione Add -> New Item;

Na lista Categories selecione o item Data e marque o template : ADO .NET Entity Data Model informando o nome : Northwind.edmx pois vamos usar o banco de dados Northwind.mdf;

Neste momento o assistente vai lhe apresentar a seguinte janela:

Aqui temos duas opções :

  1. Generate from database - O modelo será gerado a partir de um banco de dados existente; Cria o modelo de entidades baseado na estrutura do banco de dados;
  2. Empty model - O modelo será criado vazio; Neste caso teremos um modelo de entidades vazio baseado nas regras OOP e na sequência será criado a estrutura do banco de dados;

Vamos selecionar a primeira opção e clicar no botão Next>;

Na janela - Choose Your Data Connection - clique em New Connection para escolher uma nova conexão;

A seguir você pode selecionar uma fonte de dados dentre as opções oferecidas; Selecione Microsoft SQL Server e clique no botão Continue;

Informe o nome do seu Servidor SQL Server e selecione o banco de dados Northwind.mdf da lista de banco de dados apresentada e clique em OK;

   

Ao final você deverá obter o seguinte resultado :

Clique no botão Next> e será apresentada a janela abaixo onde devemos selecionar as tabelas do banco de dados que serão mapeados no modelo;

Vamos selecionas as tabelas Products e Categories e clique no botão Finish (poderíamos ter escolhido também views ou stored procedures);

Ao término desta ação para criação do modelo será apresentada a janela abaixo:

- No centro da janela temos o diagrama de classes que representa o modelo de entidades que foi criado a partir das tabelas Products e Categories;

- Olhando atentamente  a entidade Products você vai notar que não temos a propriedade CategoryID que existe na tabela Products;

- Observe que temos a Navigation Properties  Categories que serve como uma referência ao objeto da classe Categories;

- Na parte inferior temos a janela de mapeamento onde você pode verificar que cada propriedade da entidade selecionada aponta para uma coluna da respectiva tabela do banco de dados;

- No canto direito superior, a janela Model Browser dá uma visão de todos os itens do modelo; (Observe o modelo Store onde estão  os objetos do banco de dados usados no modelo)

Pronto o mapeamento objeto relacional já foi feito e o modelo já esta criado. Agora veremos como usar este modelo.

Vamos criar um novo projeto na solução usando o template ASP .NET Web Application usando a linguagem Visual Basic com o nome demoEF.WebEF;

No menu File selecione Add -> New Project;

A seguir selecione as opções conforme a figura abaixo;

Após criar o novo projeto a primeira providência a ser tomada e adicionar uma referência ao projeto demoEF.ModeloEF;

Clique com o botão direito do mouse sobre o projeto demoEF.WebEF e selecione Add Reference;

Em seguida na janela Add Reference clique na aba Projects e selecione o projeto clicando em OK;

Para poder usar os recursos do ADO .NET Entity Framework você precisa incluir  a referência a namespace System.Data.Entity;

Clique com o botão direito do mouse sobre o projeto demoEF.WebEF e selecione Add Reference;

Em seguida na janela Add Reference clique na aba .NET e selecione System.Data.Entity e clique em OK;

Agora só falta um ajuste final.

Você precisa configurar a string de conexão do arquivo web.config do projeto demoEF.WebEF que esta vazia;

Para isso copie a string de conexão do modelo no arquivo app.config do projeto demoEF.ModeloEF para o arquivo web.config do projeto demoEF.WebEF;

<connectionStrings>

<add name="NorthwindEntities" connectionString="metadata=res://*/Northwind.csdl|res://*/Northwind.ssdl|res://*/Northwind.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=MAC\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />

</connectionStrings>
 

Vamos criar uma interface em simples usando o WebForm Default.aspx; Selecione este arquivo e inclua um componente GridView (ID=gdvEF) e dois componentes Button (ID=btnCategorias e ID=bntProdutos) conforme a figura abaixo:

Defina a seguinte declaração de namespace no arquivo code-behind Default.aspx.vb;

Imports demoEF.ModeloEF

No evento Click do botão Categorias inclua o seguinte código:

No evento Click do botão Produtos insira o seguinte código:

Antes de executar clique com o botão direito do mouse sobre o projeto demoEF.WebEF e selecione a opção Set as Startup Project;

Executando o projeto, ao clicar no botão Categorias veremos todas a categorias sendo exibidas. Para exibir todos os produtos clique no botão Produtos;

Naturalmente você variar o seu código para exibir determinadas categorias e/ou produtos usando LINQ.

Dessa forma acabamos de usar o ADO .NET Entity Framework para efetuar o mapeamento objeto relacional usando as tabelas Products e Categories. Com isso não tivemos que nos preocupar com a definição de comandos SQL nem em como obter os dados através de datareaders, datasets ou datatables.

Pegue o projeto completo aqui : demoEF.zip

Eu sei é apenas .NET , mas eu gosto...

referências:


José Carlos Macoratti