Your SlideShare is downloading. ×
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Desenvolvimento em .Net - nHibernate

4,926

Published on

Published in: Technology
2 Comments
2 Likes
Statistics
Notes
  • in .vb



    Dim myConfig As New Configuration



    myConfig.AddAssembly(Me.GetType().Assembly)



    myConfig.SetProperty('hibernate.dialect', 'NHibernate.Dialect.PostgreSQL82Dialect')

    'myConfig.SetProperty('dialect', 'NHibernate.Dialect.PostgreSQL82Dialect')



    MessageBox.Show(myConfig.GetProperty('hibernate.dialect'))





    'Dim myFactory As ISessionFactory = myConfig.Configure.BuildSessionFactory

    ->> Dim myFactory As ISessionFactory = myConfig.BuildSessionFactory()
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Could not find the dialect in the configuration
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
4,926
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
105
Comments
2
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Desenvolvimento em .Net nHibernate
  • 2. Objectivos ● identificar caracteristicas da framework nHibernate ● perceber como funciona a framework nHibernate ● identificar vantagens da utilização deste tipo de framework ● saber utilizar as ferramentas básicas da framework nHibernate
  • 3. O que é ● porting de framework Hibernate para Java – ambas são Open-Source + (L)GPL – nHibernate 1.0 comparável com Hibernate 2.1 – versão mais recente de Hibernate => 3.1
  • 4. Para que serve ● Mapear Dados / Objectos ● Fornecer serviços que: – permitam carregar os objectos – permitam persistir os objectos Operações CRUD C – create R – retrieve U – update D - delete
  • 5. Como funciona ● Reflection – a partir de uma definição inicial – inspecciona os nossos objectos – cria as instruções necessárias para as operações CRUD – injecta valores nos nossos objectos
  • 6. Porque queremos uma framework destas ● tipicamente para cada objecto necessitamos de: – definir a tabela onde ele vai ser persistido – criar uma instrução sql ● para ler um registo ● para ler um conjunto de registos baseado num critério ● para inserir um registo ● para actualizar um registo ● para eliminar um registo
  • 7. Porque queremos uma framework destas (cont.) ● tipicamente para cada objecto necessitamos de: – criar o codigo necessario para ligar-me à base de dados (.net => connection) – criar o codigo necessário para executar a instrução sql (.net => command e eventualmente parameters) – criar objecto propriamente dito – criar objecto agrupador (collection)
  • 8. Porque queremos uma framework destas (cont.) ● é um trabalho repetitivo ● é um trabalho moroso ● sujeito a erros (por exemplo tipos de dados diferentes entre tabela e objecto) ● ...
  • 9. nHibernate ● Objecto.Save – grava dados de um objecto numa tabela ● Object.Load – carrega dados de uma tabela para um objecto ou para uma colecção
  • 10. Produtividade? ● opção tradicional – +/- 50 linhas de código para operações CRUD – +/- 5 linhas de código para operações CRUD
  • 11. Por onde começar ● www.nhibernate.org ● instalar – vitorsilvadownloadslibsnhibernate-1.0.0.0 ● copiar para uma pasta do vosso computador ● configurar vstudio + nhibernate – copiar nhibernate-mapping-2.0.xsd e nhibernate- configuration-2.0.xsd da pasta do nhibernate para a pasta de instalação do vstudio ● C:Program FilesMicrosoft Visual Studio .NET 2003Common7Packagesschemasxml
  • 12. 1º Exemplo ● criar uma base de dados access ● nessa base de dados criar uma tabela chamada utilizadores
  • 13. 1º Exemplo ● Criar uma nova solução com um projecto do tipo windows application ● Alterar Assembly Name e Root Namespace para Infos.Teste.NHibernate ● Criar uma classe chamada Utilizador com as propriedades correspondentes aos campos da tabela “utilizadores”
  • 14. 1º Exemplo ● Configurações nHibernate – adicionar referencia ao assembly Nhibernate.dll – adicionar referencia ao assembly log4net.dll
  • 15. 1º Exemplo ● Configurações nHibernate – definição da fonte de dados e mecanismo de log ● adicionar um ficheiro do tipo “Application Configuration File” ● substituir conteudo automático pelo ficheiro codigo0403_01.txt
  • 16. 1º Exemplo ● analisar código
  • 17. 1º Exemplo ● Configurações nHibernate – configuração mecanismo de log ● acrescentar referencia a ficheiro ● acrescentar no ficheiro AssemblyInfo.vb a linha: <Assembly: log4net.Config.XmlConfigurator()>
  • 18. 1º Exemplo ● analisar código
  • 19. 1º Exemplo ● Configurações nHibernate – mapeamento tabela entidades / objecto Entidade ● acrescentar ficheiro xml chamado Entidade.hbm.xml ● substituir conteudo automático pelo ficheiro codigo0403_02.txt ● nas propriedades desse ficheiro mudar propriedade build action para “Embedded Resource”
  • 20. 1º Exemplo ● analisar código
  • 21. 1º Exemplo ● no formulario incluir um botão ● incluir no formulário o código do ficheiro codigo0403_03.txt
  • 22. 1º Exemplo ● analisar código
  • 23. 1º Exemplo ● Testar
  • 24. 2º Exemplo ● Herança – Estratégia 1ª classe => 1ª Tabela – Criar uma classe chamada Fornecedor que herda de Entidade e acrescenta a propriedade MoradaAlternativa – Acrescentar na base de dados uma tabela chamada fornecedores
  • 25. 2º Exemplo – alterar ficheiro Entidade.hbm.xml para o ficheiro codigo0403_05.txt
  • 26. 2º Exemplo ● Testar
  • 27. 2º Exemplo ● incluir um novo botão no formulário ● incluir nesse botao o código do ficheiro codigo0403_04.txt
  • 28. 2º Exemplo ● analisar código
  • 29. 2º Exemplo ● Testar
  • 30. 3º Exemplo ● Relações Um para Muitos – Criar uma nova classe chamada Artigo
  • 31. 3º Exemplo ● Criar na base de dados uma tabela chamada artigos
  • 32. 3º Exemplo ● Criar mapeamento entre objecto Artigo e tabela artigos – criar ficheiro xml chamado Artigo.hbm.xml – substituir conteúdo automático pelo conteúdo do ficheiro codigo0403_06.txt
  • 33. 3º Exemplo ● analisar código
  • 34. 3º Exemplo ● testar
  • 35. 3º Exemplo ● alterar mapeamento entidade ● acrescentar propriedade Artigos no objecto Entidade
  • 36. 4º Exemplo ● Load – agora que já temos bastantes dados nas nossas tabelas vamos recuperá-los – Session.Load() – Acrescentar novo botao no formulário – nesse botao acrescentar o codigo do ficheiro codigo0403_07.txt
  • 37. 4º Exemplo ● analisar código
  • 38. 4º Exemplo ● testar
  • 39. Objectivos ● identificar caracteristicas da framework nHibernate ● perceber como funciona a framework nHibernate ● identificar vantagens da utilização deste tipo de framework ● saber utilizar as ferramentas básicas da framework nHibernate
  • 40. Desafio ● Juntar o projecto Reflection com o projecto nHibernate ● a partir da definição de um objecto criar dinamicamente um formulário que permita a manutenção desses dados.

×