Recentemente a caixa de entrada de minha conta de e-mails tem recebido várias mensagens com uma indagação: “Como faço para trabalhar com bases de dados MySQL com WebMatrix?”. Assim, este post 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. A Figura 1 apresenta a tela a ser exibida. Clicar em “Next“.
Figura 1: Tela inicial do instalador do MySQL
A tela seguinte apresenta os termos de licença para instalação. Marque a aceitação dos termos e clique em “Next“. A Figura 2 apresenta a tela mencionada.
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. A Figura 3 apresenta a tela com as três opções.
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“, conforme ilustra a Figura 4.
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. A Figura 5 apresenta a tela com o processo de instalação em andamento.
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, conforme apresenta a Figura 7.
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“. A Figura 8 ilustra este processo.
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. A Figura 9 apresenta este procedimento.
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“, conforme ilustra a Figura 10.
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. Ao impor esta ação, uma tela semelhante aquela apresentada pela Figura 11 deve ser apresentada ao final do processo.
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. A Figura 13 ilustra este processo.
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. A Figura 14 apresenta o andamento da instalação.
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 pode ser visualizado na Figura 19.
Figura 19: Exibindo dados dos médicos cadastrados
Bom pessoal, por hoje é isso. Espero que este post 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 deste post. A propósito, não se esqueça de comentar esse post. É de fundamental importância para quem escreve receber o feedback.
Grande abraço e até o próximo post.
Facebook
Twitter
Instagram
LinkedIn
RSS