desenvolvimento em .net - nhibernate

40
Desenvolvimento em .Net nHibernate

Upload: vitor-silva

Post on 06-Jul-2015

4.955 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Desenvolvimento em .Net - nHibernate

Desenvolvimento em .Net

nHibernate

Page 2: Desenvolvimento em .Net - nHibernate

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

Page 3: Desenvolvimento em .Net - nHibernate

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

Page 4: Desenvolvimento em .Net - nHibernate

Para que serve● Mapear Dados / Objectos● Fornecer serviços que:

– permitam carregar os objectos– permitam persistir os objectos

Operações CRUDC – createR – retrieveU – updateD - delete

Page 5: Desenvolvimento em .Net - nHibernate

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

Page 6: Desenvolvimento em .Net - nHibernate

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

Page 7: Desenvolvimento em .Net - nHibernate

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)

Page 8: Desenvolvimento em .Net - nHibernate

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)● ...

Page 9: Desenvolvimento em .Net - nHibernate

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

Page 10: Desenvolvimento em .Net - nHibernate

Produtividade?● opção tradicional

– +/- 50 linhas de código para operações CRUD– +/- 5 linhas de código para operações CRUD

Page 11: Desenvolvimento em .Net - nHibernate

Por onde começar● www.nhibernate.org● instalar

– \\vitorsilva\downloads\libs\nhibernate-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 Files\Microsoft Visual Studio .NET 2003\Common7\Packages\schemas\xml

Page 12: Desenvolvimento em .Net - nHibernate

1º Exemplo● criar uma base de dados access● nessa base de dados criar uma tabela

chamada utilizadores

Page 13: Desenvolvimento em .Net - nHibernate

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”

Page 14: Desenvolvimento em .Net - nHibernate

1º Exemplo● Configurações nHibernate

– adicionar referencia ao assembly Nhibernate.dll– adicionar referencia ao assembly log4net.dll

Page 15: Desenvolvimento em .Net - nHibernate

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

Page 16: Desenvolvimento em .Net - nHibernate

1º Exemplo● analisar código

Page 17: Desenvolvimento em .Net - nHibernate

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()>

Page 18: Desenvolvimento em .Net - nHibernate

1º Exemplo● analisar código

Page 19: Desenvolvimento em .Net - nHibernate

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”

Page 20: Desenvolvimento em .Net - nHibernate

1º Exemplo● analisar código

Page 21: Desenvolvimento em .Net - nHibernate

1º Exemplo● no formulario incluir um botão● incluir no formulário o código do ficheiro

codigo0403_03.txt

Page 22: Desenvolvimento em .Net - nHibernate

1º Exemplo● analisar código

Page 23: Desenvolvimento em .Net - nHibernate

1º Exemplo● Testar

Page 24: Desenvolvimento em .Net - nHibernate

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

Page 25: Desenvolvimento em .Net - nHibernate

2º Exemplo– alterar ficheiro Entidade.hbm.xml para o ficheiro

codigo0403_05.txt

Page 26: Desenvolvimento em .Net - nHibernate

2º Exemplo● Testar

Page 27: Desenvolvimento em .Net - nHibernate

2º Exemplo● incluir um novo botão no formulário● incluir nesse botao o código do ficheiro

codigo0403_04.txt

Page 28: Desenvolvimento em .Net - nHibernate

2º Exemplo● analisar código

Page 29: Desenvolvimento em .Net - nHibernate

2º Exemplo● Testar

Page 30: Desenvolvimento em .Net - nHibernate

3º Exemplo● Relações Um para Muitos

– Criar uma nova classe chamada Artigo

Page 31: Desenvolvimento em .Net - nHibernate

3º Exemplo● Criar na base de dados uma tabela chamada

artigos

Page 32: Desenvolvimento em .Net - nHibernate

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

Page 33: Desenvolvimento em .Net - nHibernate

3º Exemplo● analisar código

Page 34: Desenvolvimento em .Net - nHibernate

3º Exemplo● testar

Page 35: Desenvolvimento em .Net - nHibernate

3º Exemplo● alterar mapeamento entidade

● acrescentar propriedade Artigos no objecto Entidade

Page 36: Desenvolvimento em .Net - nHibernate

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

Page 37: Desenvolvimento em .Net - nHibernate

4º Exemplo● analisar código

Page 38: Desenvolvimento em .Net - nHibernate

4º Exemplo● testar

Page 39: Desenvolvimento em .Net - nHibernate

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

Page 40: Desenvolvimento em .Net - nHibernate

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.