A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Aprendendo como funciona o NHibernate Elvis Medeiros Programador .NET

Apresentações semelhantes


Apresentação em tema: "Aprendendo como funciona o NHibernate Elvis Medeiros Programador .NET"— Transcrição da apresentação:

1 Aprendendo como funciona o NHibernate Elvis Medeiros Programador .NET

2 Conteúdo da Apresentação
Porque usar Hibernate Como ele funciona Arquivos necessários para o Nhibernate Pontos Positivos Pontos Negativos Prática Referências

3 Porque usar Hibernate GUI – Camada de Apresentação Classes-GUI
Classes-Básicas Fachada – Camada de Negócio Classes-Cadastros Repositório – Camada de Dados Classes-Repositorios

4 Persistência dos Objetos
Objetos da Camada de Dados (Repositório) Hibernate Microsoft SQL Server 2005/2000 Oracle Microsoft Access Firebird PostgreSQL DB2 UDB MySQL SQLite Dados

5 Arquivos Necessários Arquivo de Mapeamento.
Arquivo de Configuração do NHibernate. API do NHibernate.

6 Arquivo de Mapeamento Tabela: AVISO_INSCRICAO

7 Arquivo de Mapeamento Public 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;}

8 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=" " /> <property column="DELETADO" type="Boolean" name="Deletado" not-null="true" /> </class> </hibernate-mapping>

9 Arquivo de Configuração
using System; using System.Web; using System.Collections.Generic; using System.Reflection; using System.Text; using NHibernate; using NHibernate.Cfg; public sealed class NHibernateHelper { private const string CurrentSessionKey = "nhibernate.current_session"; private static readonly ISessionFactory sessionFactory; static NHibernateHelper() sessionFactory = new Configuration().Configure().BuildSessionFactory(); } public static ISession GetCurrentSession() CloseSession(); HttpContext context = HttpContext.Current; ISession currentSession = context.Items[CurrentSessionKey] as ISession; if (currentSession == null) currentSession = sessionFactory.OpenSession(); context.Items[CurrentSessionKey] = currentSession; return currentSession; public static void CloseSession() // No current session return; try currentSession.Close(); catch (Exception ex) throw ex; context.Items.Remove(CurrentSessionKey); public static void CloseSessionFactory() if (sessionFactory != null) sessionFactory.Close();

10 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 name="dialect">NHibernate.Dialect.MsSql2005Dialect</property> <!-- mapping files --> <mapping assembly="BVR_CPM_Repositorios" /> </session-factory> </hibernate-configuration>

11 API do NHibernate

12 Pontos Positivos/Negativos
Separação do código em camadas. Tratamento contra SQL Injection. Abrange a maioria dos bancos de dados. Negativo Grande 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.

13 Prática

14 Referências http://www.macoratti.net/08/12/vbn_hib1.htm


Carregar ppt "Aprendendo como funciona o NHibernate Elvis Medeiros Programador .NET"

Apresentações semelhantes


Anúncios Google