Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

NHibernate

1,217 views

Published on

Apresentação sobre Hibernate na plataforma do Visual Stúdio 2005, onde foram abordados seus conceitos como motivos de sua utilização, pontos fracos, pontos fortes, como integrá-lo no sistema, quais arquivos precisam ser gerados para o mapeamento e como realizar consultas utilizando o HQL (linguagem sql do Hibernate).

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

NHibernate

  1. 1. Aprendendo como funciona o NHibernate Elvis Medeiros Programador .NET
  2. 2. Conteúdo da Apresentação <ul><li>Porque usar Hibernate </li></ul><ul><li>Como ele funciona </li></ul><ul><li>Arquivos necessários para o Nhibernate </li></ul><ul><li>Pontos Positivos </li></ul><ul><li>Pontos Negativos </li></ul><ul><li>Prática </li></ul><ul><li>Referências </li></ul>
  3. 3. Porque usar Hibernate
  4. 4. Persistência dos Objetos Objetos da Camada de Dados (Repositório) Dados Microsoft SQL Server 2005/2000 Oracle Microsoft Access Firebird PostgreSQL DB2 UDB MySQL SQLite
  5. 5. Arquivos Necessários <ul><li>Arquivo de Mapeamento. </li></ul><ul><li>Arquivo de Configuração do NHibernate. </li></ul><ul><li>API do NHibernate. </li></ul>
  6. 6. Arquivo de Mapeamento Tabela: AVISO_INSCRICAO
  7. 7. Arquivo de Mapeamento <ul><li>Public class AvisoInscricao </li></ul><ul><li>{ </li></ul><ul><li>private int _id; </li></ul><ul><li>private string _aviso_inscricaoname; </li></ul><ul><li>private bool _deletado; </li></ul><ul><li>... </li></ul><ul><li> public virtual int Id </li></ul><ul><li>{ </li></ul><ul><li>get{ return _id;} </li></ul><ul><li>set{isChanged |=(_id != value); _id = value;} </li></ul><ul><li>} </li></ul><ul><li>public virtual bool Deletado </li></ul><ul><li>{ </li></ul><ul><li>get{ return _deletado;} </li></ul><ul><li>set{isChanged |=(_deletado != value); _deletado = value;} </li></ul><ul><li>} </li></ul><ul><li>... </li></ul><ul><li>} </li></ul>
  8. 8. Arquivo de Mapeamento <ul><li><?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?> </li></ul><ul><li><hibernate-mapping xmlns=&quot;urn:nhibernate-mapping-2.2&quot; assembly=&quot;BVR_CPM_ClassesBasicas&quot; namespace=&quot;BVR_CPM_ClassesBasicas&quot; default-lazy=&quot;false&quot;> </li></ul><ul><li><class name=&quot;BVR_CPM_ClassesBasicas.AvisoInscricao,BVR_CPM_ClassesBasicas&quot; table=&quot;CPM_AVISO_INSCRICAO&quot;> </li></ul><ul><li><id name=&quot;Id&quot; column=&quot;ID&quot; type=&quot;Int32&quot; unsaved-value=&quot;0&quot;> </li></ul><ul><li><generator class=&quot;native&quot; /> </li></ul><ul><li></id> </li></ul><ul><li><property column=&quot;AVISO_INSCRICAO&quot; type=&quot;String&quot; name=&quot;AvisoInscricaoName&quot; not-null=&quot;true&quot; length=&quot;2147483647&quot; /> </li></ul><ul><li><property column=&quot;DELETADO&quot; type=&quot;Boolean&quot; name=&quot;Deletado&quot; not-null=&quot;true&quot; /> </li></ul><ul><li></class> </li></ul><ul><li></hibernate-mapping> </li></ul>
  9. 9. Arquivo de Configuração
  10. 10. Arquivo de Configuração <ul><li><?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?> </li></ul><ul><li><hibernate-configuration xmlns=&quot;urn:nhibernate-configuration-2.2&quot; > </li></ul><ul><li><session-factory name=&quot;NHibernate.NHROWS&quot;> </li></ul><ul><ul><li><!-- properties --> </li></ul></ul><ul><ul><li><property name=&quot;connection.provider&quot;>NHibernate.Connection.DriverConnectionProvider </li></ul></ul><ul><ul><li></property> </li></ul></ul><ul><ul><li><property name=&quot;connection.driver_class&quot;>NHibernate.Driver.SqlClientDriver</property> </li></ul></ul><ul><ul><li><property name=&quot;connection.connection_string&quot;>Data Source=SRV-DB;Initial Catalog=BVR_CPM_BASE; Persist Security Info=True;User ID=sa; password=Redes21220 </li></ul></ul><ul><ul><li></property> </li></ul></ul><ul><ul><li><property name=&quot;dialect&quot;>NHibernate.Dialect.MsSql2005Dialect</property> </li></ul></ul><ul><ul><li><!-- mapping files --> </li></ul></ul><ul><ul><li><mapping assembly=&quot;BVR_CPM_Repositorios&quot; /> </li></ul></ul><ul><li></session-factory> </li></ul><ul><li></hibernate-configuration> </li></ul>
  11. 11. API do NHibernate
  12. 12. Pontos Positivos/Negativos <ul><li>Positivos </li></ul><ul><ul><li>Separação do código em camadas. </li></ul></ul><ul><ul><li>Tratamento contra SQL Injection. </li></ul></ul><ul><ul><li>Abrange a maioria dos bancos de dados. </li></ul></ul><ul><li>Negativo </li></ul><ul><ul><li>Grande quantidade de código gerada, aumenta a chance de erros de código. </li></ul></ul><ul><ul><li>Não é mais rápido do que uma consulta direto no banco. </li></ul></ul><ul><ul><li>Amarração a coleção de objetos. </li></ul></ul>
  13. 13. Prática
  14. 14. Referências <ul><li>http://www.macoratti.net/08/12/vbn_hib1.htm </li></ul><ul><li>http://www.linhadecodigo.com.br/Artigo.aspx?id=546 </li></ul><ul><li>http://www.linhadecodigo.com.br/Artigo.aspx?id=2140 </li></ul>

×