Banco de Dados

4 jul, 2011

Utilizando bancos de dados MySQL com WebMatrix

Publicidade

Recentemente a caixa de entrada de minha conta de e-mails tem
recebido várias mensagens com a mesma indagação: “Como faço para trabalhar
com bases de dados MySQL com WebMatrix?”
. Assim, este artigo pretende responder a esta questão.

O problema

Hoje, o WebMatrix não traz nativamente suporte a bases de dados MySQL
(pelo menos não no mesmo esquema de bases de dados SQL Server). Assim,
sem que haja qualquer instalação adicional, a única forma para se
trabalhar com bases de dados MySQL no WebMatrix é criar projetos PHP
(disponíveis na seção “Site from web gallery“, tais como:
Wordpress, Joomla, PHPbb, etc.). Mas e para gerenciar bases de dados
MySQL para outros tipos de projetos (como projetos em branco, por
exemplo)?

Trabalhando com MySQL

A outra maneira disponível para que consigamos criar projetos PHP ou
ASP.NET utilizando bancos de dados MySQL com WebMatrix, é instalando uma
instância do MySQL e seu conector, e assim, adicionando uma nova
conexão no gerenciador de bancos de dados da ferramenta com esta
instância.

Também é possível efetuar tal conexão sem conector,
referenciando a DLL “MySql.Data.MySqlClient.dll” no web.config
do projeto, mas, como nosso objetivo é simplificar as coisas, será
possível observar que, a instalação do conector resolve o problema com
apenas alguns cliques.

Instalando a instância do MySQL

O primeiro passo a se executar é a instalação da instância do MySQL.
Para isso, caso você ainda não tenha o instalador, pode fazê-lo clicando
aqui. Execute o instalador recém baixado. Clicar em “Next“.

Figura 1: Tela inicial do instalador do MySQL

A tela seguinte apresentará os termos de licença para instalação. Marque a aceitação dos termos e clique em “Next“.

Figura 2: Aceitando os termos de licença

A tela
seguinte é onde escolhemos o modelo de instalação. Para a maioria das
aplicações que criaremos com WebMatrix, a instalação padrão (Typical) é suficiente, portanto, nossa instalação será seguida nestes moldes.

Figura 3: Escolhendo o modelo de instalação

Na tela
seguinte o que pode ser visualizado é um texto que traz a mensagem de
que todos os requisitos necessários a intalação foram executados com
sucesso e que a instalação será iniciada ao clicar “Next“.

Figura 4: Assistente pronto para iniciar processo de instalação

Ao clicar em “Next” a instalação é iniciada. A instalação poderá demorar alguns minutos, dependendo de seus recursos de hardware.

Figura 5: Instalação do MySQL em andamento

Enquanto a instalação prossegue, duas janelas exibindo features do MySQL são apresentadas. Nestas janelas, simplesmente clique em “Next“.
Após isso, uma janela com a informação de que a instalação foi
concluída com sucesso (semelhante a Figura 6) deve aparecer. Caso não
apareça, algo em seu processo de instalação não ocorreu como esperado.
Neste caso, retome o processo de instalação do início.

Figura 6: Instalação realizada com sucesso

Note que na Figura 6, está selecionado em amarelo a opção “Launch the MySQL Instance Configuration Wizard“. Se você clicar em “Finish
com esta opção selecionada, o que ocorrerá é que o assistente de
configuração do MySQL será iniciado. Caso contrário, a instância será
iniciada com as configurações padrões do MySQL. Deixe esta opção marcada
e finalize o instalador. Uma janela com as boas vindas do assistente de
configuração será exibida.

Figura 7: Iniciando o assistente de configuração do MySQL

A tela a seguir permite a escolha do tipo de configuração que se deseja realizar. A primeira opção “Datailed Configuration“, permite parametrizar de forma detalhada o funcionamento da instância do MySQL. A segunda opção, “Standard Configuration
disponibiliza apenas as opções gerais de configuração, sendo que
aspectos avançados de configuração ficam a cargo do próprio MySQL. Para
nosso exemplo, escolheremos a segunda opção e prosseguiremos clicando em
Next“.

Figura 8: Escolhendo o modelo de configuração

A próxima etapa consiste na definição de como o Windows
deverá tratar a instância do MySQL. O recomendado pela Oracle para
estas situações é que seja definido como um serviço, portanto, assim
faremos.

Figura 9: Tratando o MySQL como um serviço

Estamos quase finalizando. O processo seguinte consiste da configuração de senha para o usuário root
do MySQL. Como você deve saber, este usuário é aquele que possui a
permissão para realizar qualquer operação no MySQL. O que faremos é
selecionar a primeira opção disponível, i. e., “Modify Security Settings” e informar uma senha e sua confirmação para o usuário root e, em seguida prosseguir clicando em “Next“.

Figura 10: Definindo senha para o usuário root

A próxima
tela informa ao usuário que os requisitos de configuração estão prontos
para serem executados e pede que, se tudo estiver correto, o botão “Execute
seja pressionado.

Figura 11: Configuração realizada com sucesso

Se tudo
correu conforme o planejado, você deve visualizar ao final do processo
de configuração uma tela como a apresentada pela Figura 11.

Pronto! Nossa instância de MySQL está instalada e devidamente configurada. Falta
agora entender o processo de integração com o WebMatrix correto? Sim,
mas para que possamos trabalhar com o MySQL de forma simplificada no
WebMatrix, precisamos instalar o conector do SGBD para a plataforma
.NET.

Instalando o Conector MySQL para .NET

Se você não
tem ideia do que estamos falando ao utilizar o termo “conector”, nos
referimos ao set de DLL’s disponibilizadas pelo fabricante do MySQL (a
Oracle) para que o acesso e gerenciamento dos dados no mesmo possa ser
realizado na plataforma de trabalho escolhida, em nosso caso, o .NET.

O download do instalador do conector é gratuíto e pode ser realizado clicando aqui. Após efetuar o download e impor o duplo clique sobre o arquivo msi
baixado, uma tela semelhante a apresentada pela Figura 12 deve ser
apresentada. Esta tela contém apenas a mensagem de boas vindas do
instalador. Prossiga com “Next“.

Figura 12: Iniciando o processo de instalação do conector

A seguir, é
solicitado o tipo de instalação que você deseja realizar. Novamente três
opções são disponibilizadas e, aquela que mais se adequa as nossas
necessidades é  ‘Typical“, portanto, você deve escolher esta opção.

Figura 13: Escolhendo o modelo de instalação

Prosseguindo
no processo de instalação, nos é apresentada uma tela com uma mensagem
de que a instalação está pronta para iniciar. Ao clicar em “Next” a instalação então é iniciada.

Figura 14: Instalação do conector em andamento

Se tudo
correu conforme o esperado, a próxima tela a ser apresentada é a de
conclusão da instalação (Figura 15). Com isso, temos a estrutura pronta
para que consigamos trabalhar com MySQL dentro do WebMatrix. Uma
observação importante é que, o processo de instalação (tanto do MySQL
quanto do conector) só precisa ser executado uma vez :-).

Utilizando MySQL com WebMatrix

Chegou o momento mais esperado deste post, vamos escrever uma app simples que se conecta ao MySQL e exibir seus dados na tela.

Estou planejando para um futuro próximo uma série de posts que irá construir uma WebApplication
para gerência de clínica médica com WebMatrix e Razor, portanto, vou
utilizar um fragmento do banco de dados (a tabela de Médicos) para
exemplificar a utilização do MySQL.

Para criar o banco de dados, a tabela e a população da mesma, estou utilizando o MySQL Workbench, que pode ser baixado gratuitamente aqui. A Figura 15 apresenta a estutura da tabela “tbMedicos” presente no banco “ClinicaMedica”.

Figura 15: Estrutura da tabela de médicos

Executando o WebMatrix e criando uma aplicação do tipo “Empty Site” em “Site from Template“, temos o ambiente de trabalho pronto. A Figura 16 ilustra este processo.

Figura 16: Criando um projeto em branco

Nossa
primeira providência ao ter acesso ao ambiente de trabalho do WebMatrix,
deve ser preparar o ambiente de acesso a dados. Para isso, no menu
principal do WebMatrix (localizado no canto inferior esquerdo), alterne
para a guia “Databases“. No gerenciador de bases de dados, clique em “New connection“. Informe todos os campos solicitados adequadamente, e clique em “Ok”. A Figura 17 ilustra o processo.

Figura 17: Informando dados da conexão

Se tudo correu como esperado, a sua esquerda, na solution explorer
do gerenciador de bancos de dados, você deve estar visualizando uma
estrutura semelhante aquela apresentada pela Figura 18, onde temos a
conexão recém criada e a tabela “tbMedicos” associada com dois
registros.

Figura 18: Solution Explorer do gerenciador de banco de dados

Pronto.
Nossa conexão está estabelecida. Só nos resta agora exibir as
informações hospedadas na tabela de médicos. Para isso, alterne o
ambiente de trabalho novamente para a guia “Files” e, na solution explorer equivalente, adicione um novo arquivo do tipo *.cshtml. A Listagem 1 apresenta o código que lista todos os médicos cadastrados.

[html]
<!DOCTYPE html>
@{
var banco = Database.Open("ClinicaMedica_MySQL");
string sentenca = "select * from tbMedicos";
}
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Médicos - MySQL e WebMatrix</title>
</head>
<body>

<h1>Médicos cadastrados</h1>

<ul>
@{
foreach(var med in banco.Query(sentenca))
{
<li>
@med.NomeCompleto<br />
@med.CRM<br />
@med.Email<br />
</li>
}
}
</ul>

</body>
</html>
[/html]

Listagem 1: Exibindo os dados do MySQL

O código da
Listagem 1 é extremamente simples e dispensa comentários. O resultado
obtido ao executar o código apresentado pela Listagem 1.

Figura 19: Exibindo dados dos médicos cadastrados

Por hoje é isso. Espero que este artigo
possa ter tirado suas dúvidas em relação a utilização do MySQL com
WebMatrix. Caso as dúvidas não tenham sido completamente sanadas, por
favor, entre em contato através do formulário de contato do site ou
através dos comentários. A propósito, não deixe de comentar, é de fundamental importância para quem escreve receber o feedback.

Grande abraço e até a próxima!