Yamapper: instalação e configuração
Em Yamapper | 10/02/2011 21:10
Primeiros passos
Este artigo tem como intuito apresentar a instalação e configuração do ORM Yamapper em uma aplicação web .NET 4.0 com banco de dados SQL Server.
Ao longo do artigo, serão discutidos:
- Criação das tabelas;
- Instalação do Yamapper;
- Criação do projeto;
- Geração das classes no MyGeneration;
- Acesso ao banco de dados.
Este artigo assume que o leitor já esteja familiarizado com a plataforma .NET 4.0, IDE Visual Studio 2010, conceitos básicos do Yamapper e configuração e utilização do My Generation.
Criação das tabelas
Para este exemplo, serão criadas três tabelas, Cliente, Produto e ClienteProduto, simulando uma atividade de venda de produtos.
Tabelas a serem criadas.O arquivo SQL para criação das tabelas pode ser baixado aqui.
Crie um banco de dados chamado Yamapper e execute o script para a criação dos objetos de banco de dados, cadastrando alguns clientes.
Instalação do Yamapper
Primeiramente, obtenha a última versão do Yamapper.
No arquivo baixado, haverá os seguintes arquivos:
- dotNet35: diretório dos binários do Yamapper para o .NET 3.5, incluindo as bibliotecas Intentor.Utilities e Castle.Core;
- dotNet40: diretório dos binários do Yamapper para o .NET 4.0 Full Profile, incluindo as bibliotecas Intentor.Utilities [http://intentor.com.br/projects/utilities/] e Castle.Core [http://www.castleproject.org/castle/download.html];
- Intentor.Yamapper Class Generator.csgen: arquivo MyGeneration para geração das classes;
- changelog.txt: log de versões do Yamapper;
- LGPL-LICENSE.txt: arquivo com informações sobre a licença LGPL;
- readme.txt: arquivo leia-me do Yamapper.
Diretório lib e os assemblies do Yamapper.Após o download do arquivo, crie um diretório chamado Yamapper.Example para armazenamento do projeto a ser criado e em seu interior crie um diretório chamado lib. Neste diretório, ficarão armazenados os assemblies do Yamapper e de suas dependências. Descompacte os arquivos do diretório dotNet40 do arquivo baixado, movendo todas as DLLs, PDBs e XMLs para o diretório lib recém criado. Feito isso, o Yamapper já está devidamente instalado.
Criação do projeto
Abra o Visual Studio 2010 e crie um novo projeto ASP.Net Web Application na linguagem C#. Chame-o de Yamapper.Example, defina a localização dele como o diretório recém criado, desmarque Create Directory for solution e clique em OK.
Criação de novo projeto ASP.Net Web Application.Após a criação do projeto, outros quatro novos projetos do tipo Class Library devem ser criados para composição da camada de modelo:
- Yamapper.Example.Core: núcleo da camada de modelo;
- Yamapper.Example.Data: camada de acesso a dados;
- Yamapper.Example.Domain: camada de domínio;
- Yamapper.Example.Facade: camada de fachadas.
Apague todos os arquivos de classe criados automaticamente. Ao término destes passos, a solução deverá estar similar a imagem abaixo:
Projetos da solução.Diretórios especiais
Após a criação de todos os projetos, alguns diretórios especiais devem ser criados, de acordo com a arquitetura proposta para uso com o Yamapper:
Yamapper.Example
- Util: contém arquivos de configuração.
- Config: diretório de arquivos de configuração diversos, incluindo o arquivo Yamapper.config;
- Mapping: diretório de mapeamentos.
Yamapper.Example.Core
- DataInterfaces: interfaces que representam ações em um repositório de dados;
- Entities: classes que representam tabelas do banco de dados;
- TransferObjects: objetos de transferência de dados;
- Util: objetos de apoio da camada de modelo;
- Views: visões do banco de dados, sendo objetos somente leitura.
Yamapper.Example.Data
- Supertypes: conterá os tipos base da camada de dados.
Yamapper.Example.Domain
- Supertypes: conterá os tipos base da camada de domínio.
Configurações do Yamapper
Após a criação de todos os projetos e diretórios necessários, deve-se configurar o Yamapper nos projetos.
Adicione como referência em todos os projetos os assemblies Intentor.Yamapper.dll, Intentor.Utilities.dll e Castle.Core.dll.
No projeto Yamapper.Example:
Crie um novo arquivo de configuração em Util\Config chamado Yamapper.config conforme código abaixo, alterando a string de conexão conforme necessário:
<?xml version="1.0" encoding="utf-8" ?>
<yamapper-configuration xmlns="urn:yamapper-configuration-10.4.1.0">
<yamapper
defaultConnection="Yamapper"
mappingsFolder="Util\Mappings" />
<databaseConnections>
<connection name="Yamapper"
connectionString="Data Source=localhost;Initial Catalog=Yamapper;User Id=Yamapper;Password=Yamapper"
provider="Intentor.Yamapper.Drivers.SqlServerDriver" />
</databaseConnections>
</yamapper-configuration>
Abra o arquivo Web.config, crie uma nova configSection chamada yamapper e configure o módulo DbProviderModule, conforme código-exemplo abaixo:
<?xml version="1.0"?>
<configuration>
<configSections>
<!--Início da definição da section group do componente Yamapper-->
<sectionGroup name="intentor">
<section name="yamapper" type="Intentor.Yamapper.YamapperConfigurationSection, Intentor.Yamapper" allowLocation="true" allowDefinition="Everywhere"/>
</sectionGroup>
<!--Fim da definição da section group do componente Yamapper-->
</configSections>
<appSettings/>
<connectionStrings/>
<!--Início da section group do componente Yamapper-->
<intentor>
<yamapper pathConfigurationFile="Util\Config\Yamapper.config"/>
</intentor>
<!--Fim da section group do componente Yamapper-->
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpModules>
<!--Início do módulo do Yamapper para gerenciamento automatizado de conexões.-->
<add name="DbProviderModule" type="Intentor.Yamapper.DbProviderModule, Intentor.Yamapper"/>
<!--Fim do módulo do Yamapper para gerenciamento automatizado de conexões.-->
</httpModules>
</system.web>
</configuration>
Após essas configurações iniciais, a aplicação já está pronta para acessar o banco de dados utilizando o Yamapper.
Geração das classes no MyGeneration
Execução do MyGeneration
Clique duas vezes no arquivo Intentor.Yamapper Class Generator.csgen para que o MyGeneration seja aberto. Clique em Execute.
Na janela que surgir:
- Altere o nome da conexão para Yamapper;
- Altere o prefixo principal para Yamapper.Example;
- Selecione o banco de dados criado, Yamapper;
- Selecione todas as tabelas criadas;
- Marque as opções Gerar DaoBase, Gerar BizBase, Gerar Custom Objects, Nomes de tabels/campos já em PascalCasing e Mapeamento em arquivo externo.
Todos os controles da janela possuem descrições ao manter o mouse sobre suas posições.
Janela do script de geração de objetos no MyGeneration.Clique em OK para gerar os objetos.
Cópia dos arquivos
Os arquivos gerados ficam armazenados em pastas que se relacionam com cada um dos projetos criados. Mova-os arquivos de acordo com cada projeto, incluindo os supertypes, e adicione-os no Visual Studio.
Acesso ao banco de dados
Abra o código de retaguarda do arquivo Default.aspx do projeto Yamapper.Example e digite os códigos conforme abaixo:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Yamapper.Example.Domain;
using Yamapper.Example.Data;
namespace Yamapper.Example
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
ClienteBiz biz = new ClienteBiz(new ClienteDao());
var clientes = biz.GetAll();
}
}
}
Ao executar a aplicação, a variável clientes conterá todos os clientes cadastrados no banco de dados.
Ao infinito e além
O código-fonte completo do projeto criado pode ser baixado aqui.
Caso tenha alguma dúvida, curiosidade, trauma ou angústia sobre o projeto, ou apenas deseja elogiá-lo, utilize o espaço de comentários mais abaixo para entrar em contato.