SlideShare uma empresa Scribd logo
Desenvolvimento em .Net




     Dados vs Objectos
Objectivos
    perceber questão quot;dados ou objectosquot;
●


    perceber conceito 3-tier
●


    identificar semelhanças e diferenças entre
●

    sgbdr e objectos
    perceber conceito n-tier e soa
●


    perceber de que forma podemos ver o acesso
●

    a dados como um serviço
    saber o que é O/R Mapping
●


    identificar caracteristicas de um O/R Mapper
●
Dados vs Objectos




Como se relacionam?
Dados vs Objectos
    Necessidades
●


        Objectos incluem dados e comportamentos
    –

        Dados... bem são só dados...
    –

    Existência fisica
●


        objectos normalmente existem em memória volátil
    –
        (ram)
        dados normalmente existem em memória não
    –
        volátil (hdd)
             eventualmente num SGBDR
         ●
Dados vs Objectos
    No entanto:
●


        qualquer aplicação minimamente interessante
    –
        necessitará de guardar informação para utilização
        futura - “data-persistence”.
    Ou seja...
●


        teremos SEMPRE que arranjar alguma forma de
    –
        mapear a estrutura de objectos para a estrutura de
        tabelas!
Nota Prévia
    a análise partindo de um paradigma “data-
●

    oriented” ou partindo de um paradigma “object-
    oriented” não chega ao mesmo modelo de
    “entidades”
        (considerando uma entidade uma tabela ou um
    –
        objecto respectivamente.)
             várias soluções para o mesmo problema
         ●


             legacy code
         ●


             ...
         ●
Mapeamento dados / objectos
    ORM – Object/Relational Mapping
●


        tem como objectivo ligar os dois mundos... bases
    –
        de dados e objectos
Mapeamento dados / objectos
    Dataset – Uma solução .Net
●


        não é só uma tabela
    –

        não é bem um objecto
    –

        facilita a resolução de alguns problemas
    –

             se quisermos um conjunto de objectos do mesmo tipo
         ●

             normalmente teremos que:
                  criar o objecto (uma classe);
              –

                  criar uma coleção desses objectos (outra classe)
              –

                  escrever código para filtrar / ordenar esses dados
              –
Mapeamento dados / objectos
    Problema Simples
●


        Um Objecto <=> Uma Tabela
    –

        Uma Propriedade <=> Um Campo
    –

    Problemas Complexos
●


        Hierarquia de objectos (herança)
    –

        Propriedades que não têm tipos de dados
    –
        “primitivos” => são por exemplo outro objecto.
Mapear Hierarquias
    Estratégia 1
●


        mapear toda a estrutura hierarquica para uma
    –
        tabela
Mapear Hierarquias
    Estratégia 2
●


        mapear cada classe uma tabela
    –
Mapear Hierarquias
    Outras opções
●


        mapear cada classe concreta para uma tabela
    –

        criar uma estrutura genérica de tabelas que permita
    –
        acomodar todo o tipo de objectos
    outras dificuldades
●


        herança multipla
    –
Mapeamento dados / objectos
    assumindo que é baixo o custo (tempo) para:
●


        a criação de objectos
    –

        a criação de mecanismos para persistir esses
    –
        objectos
        a criação de mecanismos para utilizar esses
    –
        objectos
    então a opção poderá ser
●


        esquecer os datasets...
    –

             não ignorando as suas possiveis aplicações (por
         ●

             exemplo relatórios)
de volta ao inicio...
Recapitulando
    porque queremos adoptar o famoso conceito
●

    “3-camadas”?




  Separação de Responsabilidade
●

● Independencia na tecnologia usada nas diversas camadas
SOA e N-Tier – pequena introdução




    “...the concept is to build an application, not as a monolithic system, but as
●

    an aggregation of smaller systems that form a community”
Acesso a dados como um serviço
    SE:
●


        todos os objectos precisam de ser persistidos
    –

        todos os objectos precisam de ser pesquisáveis
    –

    SE um serviço é:
●


        uma função perfeitamente definida
    –

        quot;self-containedquot;
    –

        que não depende do contexto ou estado de outro
    –
        serviço
Acesso a dados como um serviço
    ENTÃO
●


        o acesso a dados é um serviço
    –

    MELHOR...
●


        Já há frameworks que implementam esse serviço!
    –

             (O/R Mapper)
         ●


             exemplos
         ●


                  Hibernate, ActiverRecord, LLBLGen, ...
              –
Caracteristica de um O/R Mapper
    herança
●


    transações
●


    agregações (SUM, AVG, ...)
●


    independente da base de dados
●


    linguagem de pesquisa (tipo SQL)
●


    ...
●
Objectivos
    perceber questão quot;dados ou objectosquot;
●


    perceber conceito 3-tier
●


    identificar semelhanças e diferenças entre
●

    sgbdr e objectos
    perceber conceito n-tier e soa
●


    perceber de que forma podemos ver o acesso
●

    a dados como um serviço
    saber o que é O/R Mapping
●


    identificar caracteristicas de um O/R Mapper
●

Mais conteúdo relacionado

Semelhante a Desenvolvimento em .Net - Dados vs Objectos

Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernateDesenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
Vitor Silva
 
01 banco de dados-basico
01 banco de dados-basico01 banco de dados-basico
01 banco de dados-basico
Amadeo Santos
 
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a ObjetosIES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
Ramon Mayor Martins
 
Desenvolvimento em .Net - Acesso a Dados
Desenvolvimento em .Net - Acesso a DadosDesenvolvimento em .Net - Acesso a Dados
Desenvolvimento em .Net - Acesso a Dados
Vitor Silva
 
Modelos de banco de dados
Modelos de banco de dadosModelos de banco de dados
Modelos de banco de dados
Edgar Stuart
 
Mapeamento Objeto Relacional em PHP com Outlet ORM
Mapeamento Objeto Relacional em PHP com Outlet ORMMapeamento Objeto Relacional em PHP com Outlet ORM
Mapeamento Objeto Relacional em PHP com Outlet ORM
Fábio Rehm
 
Desenvolvimento em .Net - Databinding
Desenvolvimento em .Net - DatabindingDesenvolvimento em .Net - Databinding
Desenvolvimento em .Net - Databinding
Vitor Silva
 
Pos-QCon-BigData
Pos-QCon-BigDataPos-QCon-BigData
Pos-QCon-BigData
Fernando Cicconeto
 
Banco de dados aula 2
Banco de dados  aula 2Banco de dados  aula 2
Banco de dados aula 2
Albert Belchior
 
WorkShop - Exatas
WorkShop - ExatasWorkShop - Exatas
WorkShop - Exatas
Jeferson Martins
 
Introdução a o Python
Introdução a o PythonIntrodução a o Python
Introdução a o Python
Jeferson Martins
 
Aprendendo R
Aprendendo RAprendendo R
NoSQL e MongoDB - ETEC
NoSQL e MongoDB - ETECNoSQL e MongoDB - ETEC
NoSQL e MongoDB - ETEC
Jefferson Queiroz
 
Processos iniciais do mapeamento OR
Processos iniciais do mapeamento ORProcessos iniciais do mapeamento OR
Processos iniciais do mapeamento OR
Nécio de Lima Veras
 
Java 02
Java 02Java 02
Java 02
samuelthiago
 
Resumão java
Resumão javaResumão java
Slide Semana2 Rodrigo
Slide Semana2 RodrigoSlide Semana2 Rodrigo
Slide Semana2 Rodrigo
RodrigoPeresPires
 
Pged 03
Pged 03Pged 03
Pged 03
samuelthiago
 
Slide Semana2 Rodrigo2
Slide Semana2 Rodrigo2Slide Semana2 Rodrigo2
Slide Semana2 Rodrigo2
RodrigoPeresPires
 
Slide Share s2 Rodd
Slide Share s2 RoddSlide Share s2 Rodd
Slide Share s2 Rodd
RodrigoPeresPires
 

Semelhante a Desenvolvimento em .Net - Dados vs Objectos (20)

Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernateDesenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
 
01 banco de dados-basico
01 banco de dados-basico01 banco de dados-basico
01 banco de dados-basico
 
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a ObjetosIES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
 
Desenvolvimento em .Net - Acesso a Dados
Desenvolvimento em .Net - Acesso a DadosDesenvolvimento em .Net - Acesso a Dados
Desenvolvimento em .Net - Acesso a Dados
 
Modelos de banco de dados
Modelos de banco de dadosModelos de banco de dados
Modelos de banco de dados
 
Mapeamento Objeto Relacional em PHP com Outlet ORM
Mapeamento Objeto Relacional em PHP com Outlet ORMMapeamento Objeto Relacional em PHP com Outlet ORM
Mapeamento Objeto Relacional em PHP com Outlet ORM
 
Desenvolvimento em .Net - Databinding
Desenvolvimento em .Net - DatabindingDesenvolvimento em .Net - Databinding
Desenvolvimento em .Net - Databinding
 
Pos-QCon-BigData
Pos-QCon-BigDataPos-QCon-BigData
Pos-QCon-BigData
 
Banco de dados aula 2
Banco de dados  aula 2Banco de dados  aula 2
Banco de dados aula 2
 
WorkShop - Exatas
WorkShop - ExatasWorkShop - Exatas
WorkShop - Exatas
 
Introdução a o Python
Introdução a o PythonIntrodução a o Python
Introdução a o Python
 
Aprendendo R
Aprendendo RAprendendo R
Aprendendo R
 
NoSQL e MongoDB - ETEC
NoSQL e MongoDB - ETECNoSQL e MongoDB - ETEC
NoSQL e MongoDB - ETEC
 
Processos iniciais do mapeamento OR
Processos iniciais do mapeamento ORProcessos iniciais do mapeamento OR
Processos iniciais do mapeamento OR
 
Java 02
Java 02Java 02
Java 02
 
Resumão java
Resumão javaResumão java
Resumão java
 
Slide Semana2 Rodrigo
Slide Semana2 RodrigoSlide Semana2 Rodrigo
Slide Semana2 Rodrigo
 
Pged 03
Pged 03Pged 03
Pged 03
 
Slide Semana2 Rodrigo2
Slide Semana2 Rodrigo2Slide Semana2 Rodrigo2
Slide Semana2 Rodrigo2
 
Slide Share s2 Rodd
Slide Share s2 RoddSlide Share s2 Rodd
Slide Share s2 Rodd
 

Mais de Vitor Silva

Cidadania20
Cidadania20Cidadania20
Cidadania20
Vitor Silva
 
Forum Onde Vais Cidade - Habitação No Porto
Forum Onde Vais Cidade - Habitação No PortoForum Onde Vais Cidade - Habitação No Porto
Forum Onde Vais Cidade - Habitação No Porto
Vitor Silva
 
Desenvolvimento em .Net - Deployment
Desenvolvimento em .Net - DeploymentDesenvolvimento em .Net - Deployment
Desenvolvimento em .Net - Deployment
Vitor Silva
 
Desenvolvimento em .Net - Testes Unitários
Desenvolvimento em .Net - Testes UnitáriosDesenvolvimento em .Net - Testes Unitários
Desenvolvimento em .Net - Testes UnitáriosVitor Silva
 
Desenvolvimento em .Net - Reflection
Desenvolvimento em .Net - ReflectionDesenvolvimento em .Net - Reflection
Desenvolvimento em .Net - Reflection
Vitor Silva
 
Desenvolvimento em .Net - Eventos
Desenvolvimento em .Net - EventosDesenvolvimento em .Net - Eventos
Desenvolvimento em .Net - Eventos
Vitor Silva
 
Desenvolvimento em .Net - Excepções
Desenvolvimento em .Net - ExcepçõesDesenvolvimento em .Net - Excepções
Desenvolvimento em .Net - Excepções
Vitor Silva
 
Desenvolvimento em .Net - User Interface
Desenvolvimento em .Net - User InterfaceDesenvolvimento em .Net - User Interface
Desenvolvimento em .Net - User Interface
Vitor Silva
 
Desenvolvimento em .Net - Boas Praticas De Desenvolvimento
Desenvolvimento em .Net - Boas Praticas De DesenvolvimentoDesenvolvimento em .Net - Boas Praticas De Desenvolvimento
Desenvolvimento em .Net - Boas Praticas De Desenvolvimento
Vitor Silva
 
Desenvolvimento em .Net - Herança e Interfaces
Desenvolvimento em .Net - Herança e InterfacesDesenvolvimento em .Net - Herança e Interfaces
Desenvolvimento em .Net - Herança e Interfaces
Vitor Silva
 
Desenvolvimento em .Net - A Framework e o Visual Studio
Desenvolvimento em .Net - A Framework e o Visual StudioDesenvolvimento em .Net - A Framework e o Visual Studio
Desenvolvimento em .Net - A Framework e o Visual Studio
Vitor Silva
 
Desenvolvimento em .Net - Estruturas Basicas
Desenvolvimento em .Net - Estruturas BasicasDesenvolvimento em .Net - Estruturas Basicas
Desenvolvimento em .Net - Estruturas Basicas
Vitor Silva
 
Desenvolvimento em .Net - Introducao A Framework
Desenvolvimento em .Net - Introducao A FrameworkDesenvolvimento em .Net - Introducao A Framework
Desenvolvimento em .Net - Introducao A Framework
Vitor Silva
 

Mais de Vitor Silva (13)

Cidadania20
Cidadania20Cidadania20
Cidadania20
 
Forum Onde Vais Cidade - Habitação No Porto
Forum Onde Vais Cidade - Habitação No PortoForum Onde Vais Cidade - Habitação No Porto
Forum Onde Vais Cidade - Habitação No Porto
 
Desenvolvimento em .Net - Deployment
Desenvolvimento em .Net - DeploymentDesenvolvimento em .Net - Deployment
Desenvolvimento em .Net - Deployment
 
Desenvolvimento em .Net - Testes Unitários
Desenvolvimento em .Net - Testes UnitáriosDesenvolvimento em .Net - Testes Unitários
Desenvolvimento em .Net - Testes Unitários
 
Desenvolvimento em .Net - Reflection
Desenvolvimento em .Net - ReflectionDesenvolvimento em .Net - Reflection
Desenvolvimento em .Net - Reflection
 
Desenvolvimento em .Net - Eventos
Desenvolvimento em .Net - EventosDesenvolvimento em .Net - Eventos
Desenvolvimento em .Net - Eventos
 
Desenvolvimento em .Net - Excepções
Desenvolvimento em .Net - ExcepçõesDesenvolvimento em .Net - Excepções
Desenvolvimento em .Net - Excepções
 
Desenvolvimento em .Net - User Interface
Desenvolvimento em .Net - User InterfaceDesenvolvimento em .Net - User Interface
Desenvolvimento em .Net - User Interface
 
Desenvolvimento em .Net - Boas Praticas De Desenvolvimento
Desenvolvimento em .Net - Boas Praticas De DesenvolvimentoDesenvolvimento em .Net - Boas Praticas De Desenvolvimento
Desenvolvimento em .Net - Boas Praticas De Desenvolvimento
 
Desenvolvimento em .Net - Herança e Interfaces
Desenvolvimento em .Net - Herança e InterfacesDesenvolvimento em .Net - Herança e Interfaces
Desenvolvimento em .Net - Herança e Interfaces
 
Desenvolvimento em .Net - A Framework e o Visual Studio
Desenvolvimento em .Net - A Framework e o Visual StudioDesenvolvimento em .Net - A Framework e o Visual Studio
Desenvolvimento em .Net - A Framework e o Visual Studio
 
Desenvolvimento em .Net - Estruturas Basicas
Desenvolvimento em .Net - Estruturas BasicasDesenvolvimento em .Net - Estruturas Basicas
Desenvolvimento em .Net - Estruturas Basicas
 
Desenvolvimento em .Net - Introducao A Framework
Desenvolvimento em .Net - Introducao A FrameworkDesenvolvimento em .Net - Introducao A Framework
Desenvolvimento em .Net - Introducao A Framework
 

Desenvolvimento em .Net - Dados vs Objectos

  • 1. Desenvolvimento em .Net Dados vs Objectos
  • 2. Objectivos perceber questão quot;dados ou objectosquot; ● perceber conceito 3-tier ● identificar semelhanças e diferenças entre ● sgbdr e objectos perceber conceito n-tier e soa ● perceber de que forma podemos ver o acesso ● a dados como um serviço saber o que é O/R Mapping ● identificar caracteristicas de um O/R Mapper ●
  • 3. Dados vs Objectos Como se relacionam?
  • 4. Dados vs Objectos Necessidades ● Objectos incluem dados e comportamentos – Dados... bem são só dados... – Existência fisica ● objectos normalmente existem em memória volátil – (ram) dados normalmente existem em memória não – volátil (hdd) eventualmente num SGBDR ●
  • 5. Dados vs Objectos No entanto: ● qualquer aplicação minimamente interessante – necessitará de guardar informação para utilização futura - “data-persistence”. Ou seja... ● teremos SEMPRE que arranjar alguma forma de – mapear a estrutura de objectos para a estrutura de tabelas!
  • 6. Nota Prévia a análise partindo de um paradigma “data- ● oriented” ou partindo de um paradigma “object- oriented” não chega ao mesmo modelo de “entidades” (considerando uma entidade uma tabela ou um – objecto respectivamente.) várias soluções para o mesmo problema ● legacy code ● ... ●
  • 7. Mapeamento dados / objectos ORM – Object/Relational Mapping ● tem como objectivo ligar os dois mundos... bases – de dados e objectos
  • 8. Mapeamento dados / objectos Dataset – Uma solução .Net ● não é só uma tabela – não é bem um objecto – facilita a resolução de alguns problemas – se quisermos um conjunto de objectos do mesmo tipo ● normalmente teremos que: criar o objecto (uma classe); – criar uma coleção desses objectos (outra classe) – escrever código para filtrar / ordenar esses dados –
  • 9. Mapeamento dados / objectos Problema Simples ● Um Objecto <=> Uma Tabela – Uma Propriedade <=> Um Campo – Problemas Complexos ● Hierarquia de objectos (herança) – Propriedades que não têm tipos de dados – “primitivos” => são por exemplo outro objecto.
  • 10. Mapear Hierarquias Estratégia 1 ● mapear toda a estrutura hierarquica para uma – tabela
  • 11. Mapear Hierarquias Estratégia 2 ● mapear cada classe uma tabela –
  • 12. Mapear Hierarquias Outras opções ● mapear cada classe concreta para uma tabela – criar uma estrutura genérica de tabelas que permita – acomodar todo o tipo de objectos outras dificuldades ● herança multipla –
  • 13. Mapeamento dados / objectos assumindo que é baixo o custo (tempo) para: ● a criação de objectos – a criação de mecanismos para persistir esses – objectos a criação de mecanismos para utilizar esses – objectos então a opção poderá ser ● esquecer os datasets... – não ignorando as suas possiveis aplicações (por ● exemplo relatórios)
  • 14. de volta ao inicio...
  • 15. Recapitulando porque queremos adoptar o famoso conceito ● “3-camadas”? Separação de Responsabilidade ● ● Independencia na tecnologia usada nas diversas camadas
  • 16. SOA e N-Tier – pequena introdução “...the concept is to build an application, not as a monolithic system, but as ● an aggregation of smaller systems that form a community”
  • 17. Acesso a dados como um serviço SE: ● todos os objectos precisam de ser persistidos – todos os objectos precisam de ser pesquisáveis – SE um serviço é: ● uma função perfeitamente definida – quot;self-containedquot; – que não depende do contexto ou estado de outro – serviço
  • 18. Acesso a dados como um serviço ENTÃO ● o acesso a dados é um serviço – MELHOR... ● Já há frameworks que implementam esse serviço! – (O/R Mapper) ● exemplos ● Hibernate, ActiverRecord, LLBLGen, ... –
  • 19. Caracteristica de um O/R Mapper herança ● transações ● agregações (SUM, AVG, ...) ● independente da base de dados ● linguagem de pesquisa (tipo SQL) ● ... ●
  • 20. Objectivos perceber questão quot;dados ou objectosquot; ● perceber conceito 3-tier ● identificar semelhanças e diferenças entre ● sgbdr e objectos perceber conceito n-tier e soa ● perceber de que forma podemos ver o acesso ● a dados como um serviço saber o que é O/R Mapping ● identificar caracteristicas de um O/R Mapper ●