aprendendo como funciona o nhibernate elvis medeiros programador.net

14
Aprendendo como funciona o NHibernate Elvis Medeiros Programador .NET

Upload: raissa-miranda-santarem

Post on 07-Apr-2016

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Aprendendo como funciona o NHibernate Elvis Medeiros Programador.NET

Aprendendo como funciona o NHibernate

Elvis MedeirosProgramador .NET

Page 2: Aprendendo como funciona o NHibernate Elvis Medeiros Programador.NET

Conteúdo da Apresentação

Porque usar HibernateComo ele funcionaArquivos necessários para o NhibernatePontos PositivosPontos NegativosPráticaReferências

Page 3: Aprendendo como funciona o NHibernate Elvis Medeiros Programador.NET

Porque usar Hibernate

Page 4: Aprendendo como funciona o NHibernate Elvis Medeiros Programador.NET

Persistência dos ObjetosObjetos da Camada de Dados (Repositório)

DadosMicrosoft SQL Server 2005/2000 Oracle Microsoft Access Firebird PostgreSQL DB2 UDB MySQL SQLite

Page 5: Aprendendo como funciona o NHibernate Elvis Medeiros Programador.NET

Arquivos Necessários

Arquivo de Mapeamento.

Arquivo de Configuração do NHibernate.

API do NHibernate.

Page 6: Aprendendo como funciona o NHibernate Elvis Medeiros Programador.NET

Arquivo de Mapeamento

Tabela: AVISO_INSCRICAO

Page 7: Aprendendo como funciona o NHibernate Elvis Medeiros Programador.NET

Arquivo de MapeamentoPublic class AvisoInscricao

{private int _id; private string _aviso_inscricaoname; private bool _deletado; ... public virtual int Id{

get{ return _id;}set{isChanged |=(_id != value); _id = value;}

}

public virtual bool Deletado{

get{ return _deletado;}set{isChanged |=(_deletado != value); _deletado =

value;}}...

}

Page 8: Aprendendo como funciona o NHibernate Elvis Medeiros Programador.NET

Arquivo de Mapeamento

<?xml version="1.0" encoding="utf-8" ?><hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="BVR_CPM_ClassesBasicas"

namespace="BVR_CPM_ClassesBasicas" default-lazy="false"><class name="BVR_CPM_ClassesBasicas.AvisoInscricao,BVR_CPM_ClassesBasicas" table="CPM_AVISO_INSCRICAO">

<id name="Id" column="ID" type="Int32" unsaved-value="0"><generator class="native" />

</id><property column="AVISO_INSCRICAO" type="String" name="AvisoInscricaoName" not-null="true"

length="2147483647" /><property column="DELETADO" type="Boolean" name="Deletado" not-null="true" />

</class></hibernate-mapping>

Page 9: Aprendendo como funciona o NHibernate Elvis Medeiros Programador.NET

Arquivo de Configuração

Page 10: Aprendendo como funciona o NHibernate Elvis Medeiros Programador.NET

Arquivo de Configuração<?xml version="1.0" encoding="utf-8" ?><hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" > <session-factory name="NHibernate.NHROWS">

<!-- properties --> <property

name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>

<property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>

<property name="connection.connection_string">Data Source=SRV-DB;Initial Catalog=BVR_CPM_BASE; Persist Security Info=True;User ID=sa; password=Redes21220</property>

<property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property> <!-- mapping files --> <mapping assembly="BVR_CPM_Repositorios" />

</session-factory></hibernate-configuration>

Page 11: Aprendendo como funciona o NHibernate Elvis Medeiros Programador.NET

API do NHibernate

Page 12: Aprendendo como funciona o NHibernate Elvis Medeiros Programador.NET

Pontos Positivos/NegativosPositivos

Separação do código em camadas.Tratamento contra SQL Injection.Abrange a maioria dos bancos de dados.

NegativoGrande quantidade de código gerada, aumenta

a chance de erros de código.Não é mais rápido do que uma consulta direto

no banco.Amarração a coleção de objetos.

Page 13: Aprendendo como funciona o NHibernate Elvis Medeiros Programador.NET

Prática

Page 14: Aprendendo como funciona o NHibernate Elvis Medeiros Programador.NET

Referências

http://www.macoratti.net/08/12/vbn_hib1.htmhttp://www.linhadecodigo.com.br/Artigo.aspx?

id=546http://www.linhadecodigo.com.br/Artigo.aspx?

id=2140