Construindo uma aplicação em camadas com MySQL Server e ADO.NET Entity Framework – Parte 1

Nos últimos tempos, a Microsoft tem facilitado, e muito, a vida dos desenvolvedores que utilizam suas ferramentas. Vimos surgir o LINQ to SQL, que causou revolução ao permitir que, em poucos passos, tivéssemos todas as entidades de um banco de dados mapeadas em forma de objetos e com uma sintaxe extremamente simples para manipulação das informações nele contidas. No entanto, algumas vezes temos de nos adequar as circunstâncias externas, que, nem sempre, permitirá o uso de todas essas tecnologias citadas.

Um caso muito comum é quando temos de optar por um servidor de banco de dados que não seja o MS SQL Server. Ou seja, toda a praticidade disponibilizada pelo LINQ vai por “água abaixo”.

É aí que entra em ação o ADO.NET Entity Framework.

Como o nosso foco neste artigo não é explicar as características e funcionamento do ADO.NET Entity Framework, deixo aqui uma sugestão de leitura para uma breve compreensão da tecnologia.

Resumindo, com o ADO.NET Entity Framework iremos conseguir fazer com que nossas entidades sejam mapeadas em objetos e tenham as informações manipuladas com o uso da linguagem de programação .NET, assim como o LINQ o faz. É claro que existem algumas diferenças no modo de trabalhar, mas pra quem já conhece o LINQ, entender o ADO.NET Entity Framework é fácil. Pra quem ainda não conhece vale a pena conhecer.

O ADO.NET Entity Framework, diferentemente do LINQ to SQL, juntamente com conectores desenvolvidos por terceiros, permite que outros servidores de banco de dados que não o MS SQL Server sejam acessados.

Neste artigo iremos demonstrar o uso de tal tecnologia integrada a um servidor de banco de dados MySQL Server construindo uma pequena aplicação em camadas.

Tal aplicação será responsável por guardar informações de times de futebol e seus respectivos jogadores.

Para fins de organização e didática o artigo será dividido em 3 partes:
1ª Parte – Preparando o ambiente banco de dados
2º Parte – Construindo as camadas de dados e negócio
3ª Parte – Construindo a camada de apresentação

Preparando o ambiente de banco de dados

O ambiente de banco de dados da aplicação será constituído pelas seguintes ferramentas:

  • Servidor de banco de dados (MySQL Community Server), responsável pelo armazenamento e persistência dos dados trafegados nos sistemas;
  • Conector/Driver de acesso ao banco de dados (MySQL Connector/Net), responsável por fazer a integração entre a aplicação desenvolvida e o banco de dados MySQL;
  • Gerenciador de banco de dados (MySQL Workbench), responsável pela modelagem da estrutura de dados dos sistemas, como tabelas, relacionamentos, funções e procedimentos.

Instalando o Servidor de banco de dados

Primeiramente, vamos fazer o download do servidor de banco de dados no site da MySQL.

Navegue pela seção denominada Download MySQL Community Server, que é onde se encontra o instalador que iremos precisar. É importante dizer que no momento em que este artigo foi escrito a última versão para download era a 5.1.53, no entanto, os passos para instalação e configuração do MySQL Server dificilmente se alteram de uma versão para outra.

Uma vez identificado a versão do seu sistema operacional, selecione a opção de download do instalador denominada “MSI Instaler Essentials”. Estaremos utilizando neste exemplo a versão 64-bit, uma vez que o meu sistema operacional é o Windows 7.

Terminado o download execute o arquivo, que no meu caso se chama “mysql-essential-5.1.53-winx64.msi”, para iniciar o processo de instalação.

Clique em “Next” para prosseguir com a instalação conforme indicado na imagem acima.

Na próxima tela, o assistente de instalação pedirá a você que selecione o tipo de instalação a ser realizada. Selecione a primeira opção, “Typical” e clique novamente em “Next” para dar início ao processo de instalação. Aparecerão mais algumas janelas informativas até que a tela de conclusão da instalação seja exibida. Na versão em que estamos instalando, o assistente perguntará se iremos querer seguir com a configuração do servidor. Um novo assistente será apresentado: o assistente de configuração de instância do MySQL Server.

Para todas as opções apresentadas nas telas do assistente, selecione as alternativas que já vêm como padrão, a não ser que você queira fazer alguma customização e tenha conhecimento para tal.

Após alguns passos o assistente apresentará a tela de configuração de segurança, onde o usuário deverá informar a senha de acesso ao banco de dados. Eu costumo informar a senha “root”, uma vez que esse servidor será apenas acessado pelas aplicações em ambiente de desenvolvimento. Após estes últimos passos o assistente será finalizado e o servidor já estará instalado.

Instalando o Conector/Driver de acesso

Bom, já temos o banco de dados instalado e funcionando em nosso ambiente de produção, no entanto, precisamos fazer com que as aplicações que desenvolvermos enxerguem os dados que ali serão armazenados e interajam com os mesmos. Para isso, precisamos de um conector, ou melhor, um driver capaz de fazer com que nossos aplicativos desenvolvidos em plataforma .Net troquem informações com um servidor de banco de dados MySQL.

O tal conector também pode ser baixado diretamente do site da MySQL. Basta acessar a seção MySQL Connectors -> MySQL Connector/Net e fazer o download do instalador. Atente-se para fazer o download do arquivo instalador e não dos arquivos binários, pois o instalador, além de instalar os arquivos binários, configura o Visual Studio para fazer uso do conector facilitando o processo de desenvolvimento. Para diferenciar entre arquivo instalador e arquivos binários no site da MySQL basta analisar o nome e o tamanho do mesmo, pois, o instalador geralmente é maior e NÃO contém a seqüência de caracteres “src”.

Atualmente, a última versão disponibilizada é a 6.3.5.

Após a finalização do download basta descompactar o instalador e executá-lo.

Já na segunda janela do assistente selecione a opção “Typical” para que sejam instalados somente os arquivos necessários. Aguarde a finalização da instalação e pronto.

Instalando o Gerenciador de banco de dados

Para que possamos desenvolver a estrutura do banco de dados da aplicação é preciso fazer o download da ferramenta denominada “MySQL Workbench”, também no site da MySQL.

Acesse a seção “MySQL Workbench (GUI Tool)” e, assim como os dois últimos downloads, baixe o arquivo instalador da ferramenta (MSI Installer), execute-o e navegue pelas páginas do assistente de instalação deixando as configurações padrão setadas.

Finalizada a instalação, o gerenciador será automaticamente inicializado.

Bom, até aqui apenas instalamos as ferramentas necessárias para construção do ambiente de banco de dados. Agora, entretanto, é que começaremos a por a mão na massa.

Nossa estrutura de dados contará com duas tabelas relacionadas entre si: equipe e jogador.

Primeiramente será necessário fazer a configuração do sistema gerenciador que acabamos de instalar de maneira que o mesmo se conecte ao banco de dados MySQL, que instalamos há alguns passos atrás. Para isso, basta clicar na opção “New Connection” na seção “SQL Development” e configurar conforme a imagem a seguir.

Em “Connection Name” indique um nome qualquer para a conexão com a base de dados instalada no computador. Eu costumo chamá-la de LOCALHOST. Em “Hostname” digite “localhost”, depois clique no botão “Store in Vault…” para que seja indicado o password do banco. Lembre-se de que esse password é o mesmo digitado no momento em que o servidor de banco de dados foi instalado. Após essas configurações clique em “Test Connection” para verificar se a conexão foi bem sucedida, em caso afirmativo clique em “OK” para que as alterações sejam salvas.

Criando a base de dados

Agora que todas as ferramentas estão instaladas e funcionando devemos criar a base de dados que será acessada pelo aplicativo que desenvolveremos na próxima etapa.

Com o MySQL Workbench aberto, clique 2 vezes na conexão que criamos anteriormente, que no meu caso se chama “LOCALHOST”.

Uma nova aba, denominada “SQL EDITOR”, será aberta. Observe que ao lado esquerdo da tela existe uma área chamada de “Object Browser”, ali, estarão relacionadas todas as bases de dados que forem criadas no MySQL instalado. Por padrão uma base de dados chamada “test” é automaticamente criada no momento da instalação do banco, para nosso propósito não a iremos considerar.

Para criar a base de dados basta clicar com o botão direito do mouse sobre qualquer área em branco do “Object Browser” e selecionar a opção “Create Schema”. Uma nova tela, como a mostrada a seguir, será aberta. Nela vamos nomear o schema. Nesse momento é comum darmos o mesmo nome da aplicação que iremos desenvolver. Como em nosso artigo criaremos um sistema que armazena dados de jogadores de um time pensei em nomear o schema, e futuramente a aplicação, como “futebol”. Clique em “Apply” e, na próxima tela clique em “Apply SQL” para que o sistema execute o script de criação do schema.

Com o schema já criado vamos agora desenvolver as tabelas do banco. Note que agora, no Object Browser, já se encontra o schema “futebol”. Note que ao expandir o schema é mostrado 3 pastas. Clique com o botão direito do mouse na pasta “Tables” e selecione a opção “Create Table”. Irá ser exibida uma tela de criação de tabelas. Em nome da tabela digite “equipe”, depois, clique na ABA inferior denominada “Columns”. Note que o MySQL gera automaticamente a coluna chave primária com o nome de idequipe. Cheque o campo “AI” (Auto Incremento) da coluna idequipe e adicione um novo campo. Defina-o como “nome” e configure-o para ser do tipo VARCHAR(45). Clique em “Apply” e depois em “Apply SQL” para gerar o script de criação da tabela no banco.

Crie outra tabela chamada “jogador” com os campos nome, idade e idequipe. Salve as alterações. Só então, depois de executado o script de criação da tabela jogador é que deverá ser feito o relacionamento da mesma com a tabela equipe.

Para tanto, clique na tabela jogador com o botão direito do mouse e selecione a opção “Alter Table”. Caso as tabelas ainda não estejam aparecendo na pasta “Tables”, clique sobre a mesma com o botão direito do mouse e clique em “Refresh” para que sejam atualizadas as alterações recentes.

Uma vez que a tela de alteração da tabela jogador estiver aberta identifique na parte inferior um TAB chamada “Foreing Keys”. Ao ser clicada, uma janela, conforme mostrado na imagem abaixo, com os dados necessários para o relacionamento é aberta.

Em “Foreing Key Name” digite FK_joagador_equipe, ou qualquer outro nome que desejar, em “Referenced Table” selecione a tabela equipe., em “Column” selecione idequipe e em “Referenced Column” selecione idequipe (este já é trazido automaticamente).

Clique em “Apply” e, na próxima tela clique em “Apply SQL” e pronto, nosso ambiente de dados está preparado.

Na próxima parte do artigo iremos então iniciar o desenvolvimento do aplicativo que utilizará esta estrutura recém montada como persistência de suas informações.

Até lá!

Anúncios