quinta-feira, 29 de julho de 2010
Busca  
Porta 80 Web Hosting
 :: Acessibilidade
Ir para conteúdo principal: ALT + 1
 :: Participe
Seja um autor de CD/DVD de Treinamento
Publique um artigo
Publique uma oportunidade
Publique uma notícia
Publique um curso
Publique uma dica
Publique um código
 :: Informativo
Receba nossos informativos por e-mail.
E-mail:   
 
Digite a palavra abaixo:  
 
 
 :: Oportunidades
Cadastrar oportunidades
Gerenciar suas oportunidades
Cadastrar nova empresa
 :: Especiais
Básico de C++
C++ Builder
Curso ASP.NET 3.5 em VB.NET e C#
Guia Prático de HTML
Testes com Visual Studio Team System 2008
 :: Desenvolvimento
ActionScript
ADO.NET
ASP
ASP.NET
Automação Comercial
C#
C/C++
Coldfusion
CSS
Delphi
Disp. Móveis
HTML
Java
Javascript
LSL (Second Life)
Modelagem
PHP
Python
Sharepoint
Silverlight
SQL
VBA (Office)
Visual Basic
Visual Basic .NET
Visual Fox Pro
WCF/WPF
Web Services
XML
 :: Infra
BizTalk Server
CRM
Exchange Server
ForeFront / Antigen / IAG
Interoperabilidade
ISA Server
Linux
MOF
MS Dynamics CRM
Network
OCS / LCS
Outlook
Powershell e Scripts
Redes
Segurança
System Center e Gerenciamento
Virtualização
Windows
Windows Server
 :: Banco de Dados
Access
Caché
Firebird
Interbase
MySQL
Oracle
SQL Server
Sybase
 :: Gerência
Arquitetura
Ciclo de Vida de Desenvolvimento
Controle de Versão
Estimativas
Metodologias
MOF
Qualidade e Testes
 :: Design
Corel
Flash
Photopaint
Photoshop
 :: Livros
Análise Sistemas
Aplicativos
Banco de Dados
Certificação
Design e CAD
Gerência
Hardware
Internet
Programação
Programação Web
Rede
Segurança
Servidores
Sistemas Operacionais
 :: CDs/DVDs
Desenvolvimento
Infra
Design
 :: E-Books
.NET 2.0 (VS 2005)
.NET 1.1 (VS 2003)
SQL Server
Excel 2007
Excel 2003
Access 2003
ASP 3.0
Delphi
Java
Artigos
db4o - Banco de Dados Orientado a Objetos
Por: Cassio R. Eskelsen
[Entre em contato com o autor ]
Desenvolvedor C# desde 2001. Atualmente trabalha como desenvolvedor independente de soluções na área de CRM e mantém um site relacionado ao projeto Mono e a Linguagem Boo: http://www.br-mono.org.
Feed de artigos.
Feed de artigos deste autor.
Gere seu feed personalizado  
db4o - Banco de Dados Orientado a Objetos
Publicado em: 09/12/2005

Parte I - Introdução

De uns tempos para cá tenho percebido uma procura crescente por ferramentas que facilitem a integração entre o mundo orientado a objetos (a linguagem e o framework) e o mundo relacional (o banco de dados). As tais ferramentas de mapeamento objeto relacional nada mais são do que um "tradutor" entre duas línguas totalmente diferentes.

Em todas as traduções você acaba perdendo as sutilezas de uma língua ou tendo que usar muito mais palavras para expressar um conceito que é relativamente simples na língua de origem. No mapeamento O/R não é diferente: você acaba perdendo uma série de recursos da programação OO, ou tendo que escrever muito mais código para simular no banco de dados algo simples na linguagem (como por exemplo, uma propriedade do tipo array ou o gerenciamento de uma herança).

Particularmente acredito que estaremos em um mundo perfeito quando todos os banco de dados permitirem que você simplesmente pegue seu objeto do jeito que ele está e jogue-o no banco de dados(vou passar a chamar de banco de objetos) sem se preocupar com camadas e mais camadas de código para "traduzir" um objeto em query.

Já existem várias tentativas de se fazer isso, incluindo algumas muito avançadas como o Prevayler (bambooprevalence e xprevail nas encarnações .Net). No entanto, a falta de confiabilidade nos equipamentos e sistema operacional aliadas a uma certa dose de preconceito fazem com que essa solução ainda seja rotulada como "algo para o futuro".

Na outra ponta existem soluções como o LINQ da Microsoft, uma feature que estará disponível oficialmente no C# 3.0 mas que já pode ser testado agora. Não considero que isso seja verdadeiramente uma solução pois misturar conceitos relacionais (selects, wheres, etc) em uma linguagem OO como o C# é o que poderíamos chamar de "código alienígena".

Um banco realmente OO deve permitir que você faça suas consultas de forma orientada a objetos, como se estivesse pesquisando em uma Array, List ou qualquer outro container de objetos.
É aqui que se encaixa o db4o! Claro que existem outras soluções como o Caché, mas prefiro me ater ao db4o pelo seu custo acessível e por já estar mais integrado a plataforma .Net

db4objects

O db4objects(db4o) surgiu a alguns anos atrás inicialmente apenas para Java. Com a grande semelhança de código entre o .Net e o Java, foi um pulo para que fosse criada uma versão .Net. Hoje, as versões .Net e Java caminham lado a lado, tendo ambas os mesmos recursos.

Com esse banco você pode desenvolver aplicações WEB, Windows.forms e Compact Framework. Você não precisa instalar nem configurar um servidor de banco de dados. Basta enviar junto com sua aplicação uma pequena dll. Claro que você pode fazer uma aplicação cliente/servidor. O próprio db4o provê recursos para que isso seja feito, mas sempre de uma forma simples, sem a necessidade de ser um PHD em configuração de banco de dados.

O db4o tem um mecanismo de replicação muito útil para quem tem necessidade por exemplo, de manter bancos off-line parte do tempo e
on-line o restante (quem desenvolve para forças de venda deve imaginar o que estou falando!).

Quando falo em db4o, algumas perguntas são inevitáveis:

a) Não tenho problemas de performance? Não. Alguns testes mostram inclusive que o db4o é muito mais rápido que soluções que envolvam o uso de Nhibernate por exemplo. Veja benchmarks aqui: http://www.db4o.com/about/productinformation/benchmarks/

b) Ele não é caro como o Caché? Não. A licença do db4o é open-source dual como a do MySql, ou seja, se você está desenvolvendo para uso dentro de sua empresa, criando seu website ou desenvolvendo um programa GPL, ele é gratuito para você.
Mas mesmo que você precise distribuir sua aplicação, o custo da licença runtime é muito baixo.





MS TechEd 2010



 

Inclua um comentário sobre o artigo Topo
Elogios e críticas são muito bem vindos, porém o comentário deve ter referência ao artigo em pauta.
O portal e o autor agradecem.
Nome:    
E-mail:      
Comentários:    
Digite a palavra abaixo:  
Para dúvidas técnicas, NÃO UTILIZE ESTE ESPAÇO, utilize nosso fórum de discussão.
http://linhadecodigo.com.br/cs2/forum
 
Comentários sobre o artigo Ver Todos comentários
Gosto muito dos seus artigos sobre DB4o.
Gostaria de Ver como resolver-se-ia a hipotese de acrescentar na Classe Livro um atributo Foto para guardar as capas de livros:

public class Livro
{
private Autor _autor;
private string _titulo;
private string _isbn;

private image _foto;
Quem enviou: Salomão Isaac Manjate
Postado em: 26/2/2010 0:00:00
Olá, gostei muito do seu artigo sobre DB4O me vai ser muito útil para que eu possa implementar um BDOO para o TCC que estou fazendo. È muito interessante que você escreva mais sobre ele pois a fonte de pesquisa sobre este é muito pouca.
Obrigada mesmo!
Quem enviou: Janaina da Silva Moura
Postado em: 21/7/2008 0:00:00
Oi O artigo está muito bom, so que para mim , que sou principiante, não etendi a parte da instalação, o que quer dizer com referenciar a dll e o using .com.db4o??
Gostaria que me ajudasse
obrigada
Thiana
Quem enviou: Thiana
Postado em: 5/5/2008 0:00:00
Faço sistema de informação tenho grande dificuldade nessa área de implementação, analisei esse site e percebir que quem publicou poderia me ajudar, gostei do trabalho de vocês será que teria uma boa dica para me ajudar quanto a lógica de programação.


Parabéns.
Edineti
Quem enviou: Edineti
Postado em: 6/11/2007 0:00:00
Estou prestes a fazer um TCC e gostaria de saber se este assunto tem relevância para a exploração de um trabalho ciêntifico baseado em banco de dados relacionais e Orientado a Objetos fazendo um comparativo entre ambos os modelos afim de clarear mais esse assunto ainda um pouco obscuro. Se tiverem material a respeito deste assunto eu agradeço se me mandarem ou me indiacarem.
100+
Obrigado.
Quem enviou: elias pinto da silva junior
Postado em: 12/2/2007 0:00:00
Cara tenho muita vontade de aprender sobre prgramação mas gostaria de saber se é possivel aprender sem fazer um curso especifico,so lendo apostilas e excutando certos comandos basicos do Delphi se puderem me indicar como faço agradeceria muito!
Quem enviou: Eduardo Marques Dias
Postado em: 9/1/2007 0:00:00
Ola Cassio,
Parabéns pelo artigo.
Tenho uma pergunta a lhe fazer:
-- O nHibernate usa um recurso chamado Dynamic Proxy para evitar que todos os objetos relacionados a outro objeto sejam instanciados automaticamente mas apenas quando algum desses objeto é requisitado.
Como o db4o faz para evitar que muitos objetos sejam instanciados ?
Quem enviou: Humberto
Postado em: 4/1/2007 0:00:00
Sou estudande de Ciência da computação (8º período) e programador Java. Estou usando o db4o num projeto de conclusão de curso e me deparei com o seguinte:
Usando o banco no modo direto, eu não consigo usar o método .openFile() em mais de uma classe.então tentei utilizar o mode Client/Server e estou tendo dificuldades (acho que na verdade não entendi bem como fazer).

Quando estabeleço uma conexão usando minha classe "pessoa", por exemplo, ó processo conclui normalmente, porém quando tento em uma outra classe estabelecer outra conexão ao banco, o sistema me retorno que o arquivo está locado e a segunda conexão não é estabelecida. Segue abaixo(e em anexo) um trecho da minha classe "pessoa".

Como estou trabalhando com RMI e tenho um servidor que fica o tempo todo executando e uma interface Cliente que envia mensagem ao servidor que realiza a busca na base de dados e retorna ao cliente algumas validações, se eu tiver com a classe cliente sendo executada e acessando também o mesmo banco, o que executar por último não consegue estabelecer a conexão.
Acredito que devo estar fazendo algo errado, pois o sistema está se comportando como se fosse uma conexão no modo direto.
Comecei a usar esse banco e fiquei encantado e já até recomendei aos meus professores na Universidade. Tive o primeiro contato com o banco atraves de seu artigo e não pretendo parar de usar, porém estou com essa dificuldade que relatei e espero que você possa me ajudar indicando onde estou errando e como devo resolver o problema.

Estou sendo orientado pelo GERMAN (não sei se você o conhece), parece ser um cara legal, porém achei melhor recorrer a você diante dessa dificuldade e por eu estar seguindo as orientações de seu artigo. Estou com a versão 5.5 e queria saber de você o que acha de atualizar para a 5.7 ou não é conveniente fazer isso agora?

antecipadamente agradeço qualquer ajuda que puder oferecer.

Parabens pelo artigo. Ficou SHOW DE BOLA!

abraços,
Dutra.

Quem enviou: Dutra
Postado em: 3/11/2006 0:00:00
Gostei muito do que li. Sinceramente não conhecia esse banco orientado a objeto. Estou em fase de conclusão de curso e tenho que implmentar um projeto em Java. Já iniciei estudos para a utilização desse banco em substituição a um DB relacional.
Quem enviou: José Francisco Dutra Junior
Postado em: 23/9/2006 0:00:00
Berdam,

Uma das principais indicaçõe para o db4o é a utilização em dispositivos embedded, incluindo disp. móveis.

Cássio
Meu novo site: http://www.virgula.etc.br
Quem enviou: Cássio Rogério Eskelsen
Postado em: 17/8/2006 0:00:00
Outros artigos do autor Topo
db4o - Banco de Dados Orientado a Objetos - Parte II - Modos de Acesso, Configuração, Performance e Outras Opções
Listando arquivos de um diretório para download em ASP.NET
Artigos relacionados Topo
Acesso a Dados com ASP.NET - Parte 4
Acesso a Dados com ASP.NET - Parte 3
Acesso a Dados com ASP.NET - Parte 2
Acesso a Dados com ASP.NET - Parte 1
Usando DataSet Tipado com ASP.NET
Gerenciador de conteúdo ASP.NET MVC 2 - Kooboo
Criando um Leitor de Arquivos em ASP.NET
Criando um Leitor de RSS em ASP.NET
Trabalhando com Update Panel no ASP.NET
Como fazer Deploy no ASP.NET 4?
Utilizando jQuery para invocar Actions
Enviando Emails com ASP.NET usando System.Net.Mail
Criando editor de texto personalizado em Asp.Net
JQuery auto complete em Asp.Net
Autenticação via Claims no ASP.NET MVC
Detectando erro a todo custo
Explorando os módulos do WIF para o ASP.NET
Autenticação via Claims no ASP.NET WebForms
Uma nova forma de Autenticação/Autorização
Autenticação e Autorização no ASP.NET MVC
Explorando Segurança do ASP.NET - Roles
Explorando Segurança do ASP.NET - Membership e MembershipUser
Programação Assíncrona no ASP.NET MVC
Compactação de ViewState em ASP.NET
Criando e utilizando User Controls no Silverlight
Gerando JavaScript do lado do servidor com ASP.NET
Introdução às Dependency Properties
Efeitos de imagem com ASP.NET e LightBox 2
Marca d´agua em imagens usando System.Drawing
Asp.Net + Twitter sem API de terceiros
Produtos relacionados Topo
Pacote: Promoção C# Básico (válido somente para pagamento via boleto bancário)
CD/DVD: CD de Treinamento Criando Aplicações Asp.Net em Camadas (parte integrante do portal de vídeos .Net)
Pacote: Promoção: Portal de Vídeos .Net + CD Novidades das Linguagens (válido somente para pagamento via boleto bancário)
Pacote: Promoção Linq To SQL (válido somente para pagamento via boleto bancário)
Pacote: Promoção ASP.Net com Banco de Dados (válido somente para pagamento via boleto bancário)
Pacote: Promoção Linq + Asp.Net
CD/DVD: DVD de Treinamento E-Commerce com Visual Web Developer
CD/DVD: CD de Treinamento - Office SharePoint 2007 para Desenvolvedores WEB
CD/DVD: DVD de Treinamento - Crie uma aplicação ASP.NET com LINQ TO SQL
Livro: Desenvolvendo para web usando o Visual Studio 2008
CD/DVD: DVD de Treinamento Explorando o LINQ para SQL
Pacote: Pacote: Desenvolvedor Web Kit III (4 CDs)
Pacote: Pacote: Desenvolvedor Web Kit II (3 CDs)
Pacote: Pacote: Desenvolvedor Web Kit I (2 CDs)
CD/DVD: CD de Treinamento - RAD Studio 2007 e ASP.NET 2.0 (Delphi)
Pacote: Pacote ASP.NET - 4 CDs (Implementando AJAX em páginas ASP.NET 3.5 com o Visual Studio .NET 2008 + ASP.NET 2.0 Básico + Um mergulho no Controle GridView do ASP.NET 2.0 + Explorando as novidades)
CD/DVD: CD de Treinamento – Implementando AJAX em páginas ASP.NET 3.5 com o Visual Studio .NET 2008
CD/DVD: CD de Treinamento ASP.NET para Iniciantes - Visual Studio 2008
CD/DVD: CD de Treinamento sobre ASP.NET 2.0 Básico
CD/DVD: CD de treinamento: Um mergulho no Controle GridView do ASP.NET 2.0
E-Book: ASP.NET Ajax com C# e VB.NET (E-Book com entrega via download)
CD/DVD: CD de Treinamento sobre LINQ to SQL para iniciantes com Visual Studio .Net 2008
CD/DVD: CD de Treinamento Introdução a banco de dados com SQL Server 2005 Express
CD/DVD: CD de Treinamento Novidades das Linguagens C# 3.0 e VB 9 (Visual Basic 9)
CD/DVD: CD ASP.NET 2.0 - Atualização Rápida (Visual Studio .NET 2005)
CD/DVD: CD - Treinamento de ASP.NET 2.0 AJAX Extensions
CD/DVD: CD de Treinamento de ASP.NET 2.0 - Explorando as novidades
Livro: ASP.NET para desenvolvedores de web sites
Livro: ASP.NET Utilizando C# - De Programador para Programador
E-Book: E-Book: Tutorial de GridView no ASP.NET 2.0 (via download)
Livro: Instant ASP Scripts
© Copyright 2001-2010 Codeline Editora, Comércio e Tecnologia Ltda. | Política de privacidade e de uso | Anuncie | Fale conosco

» Site hospedado na Porta 80 Web Hosting «
Nossos números
Dicas: 1.314
Códigos/scripts: 279
Funções de VBScript : 90
Funções JScript : 05
Livros: 1.805
Notícias: 2.488
Artigos: 2.972
Cases: 14
Oportunidades: 4.546
Publicidade

Conheça a loja do Linha de Código.

Microsoft indica Linha de Código.

Assine a Revista Mundo .NET
Portal de Vídeos .NET - os melhores vídeos .NET estão aqui
O que você fará com o Visual Studio 2010?
Revista Codificando .Net

Siga-nos no Twitter

Linha de Código no Orkut
Fórum de discussão do portal Linha de Código
Feeds
Oportunidades
Notícias
Artigos
Artigos personalizado
       (Por assunto)
Artigos personalizado
       (Por autor)
Portal Vídeos .NET
Portal Vídeos Delphi
LC Blog
       (Onde você faz a notícia)
Promoções
Promoção Mobile com entrega via download (válido somente para pagamento via boleto bancário)
Promoção Mobile com entrega via download (válido somente para pagamento via boleto bancário)
De: R$ 189,00
Por: R$ 126,00
Promoção Wordpress + Tabless (válido somente para pagamento via boleto bancário)
De: R$ 149,70
Por: R$ 99,80
Promoção C# Básico (válido somente para pagamento via boleto bancário)
De: R$ 185,90
Por: R$ 136,00
Promoção PHP + MYSQL Intelimax (válido somente para pagamento via boleto bancário)
De: R$ 308,00
Por: R$ 219,00
Promoção Especial Infra
De: R$ 175,95
Por: R$ 136,00
CDs/DVDs
DVD Desenvolvimento de Games - Programando Jogos com o 3D Game Studio
DVD Desenvolvimento de Games - Programando Jogos com o 3D Game Studio
Por: R$ 59,00
DVD Curso de CorelDraw X4
Por: R$ 79,90
DVD Curso de Fireworks CS4
Por: R$ 49,90
DVD Curso de Indesign CS4
Por: R$ 55,00
DVD Curso de Efeitos Digitais
Por: R$ 49,90
Livros
MSProject 2007 - Metodologia e Critérios de Qualidade para o Gerenciamento de Projetos
MSProject 2007 - Metodologia e Critérios de Qualidade para o Gerenciamento de Projetos
De: R$ 129,00
Por: R$ 77,40
Foundation FLASH CS3 para Designers
Ciência Moderna
De: R$ 139,00
Por: R$ 83,40
Recursos Visuais na Web com PHP
Ciência Moderna
De: R$ 49,00
Por: R$ 29,40
Crie um Sistema Web com PHP 5 e AJAX - Controle de Estoque
Erica
De: R$ 99,50
Por: R$ 84,50
Crie Projetos Gráficos com Adobe Photoshop CS4, CorelDRAW X4 e Adobe InDesign CS4 - em Português
Erica
De: R$ 77,50
Por: R$ 65,80
E-Books
Manual Completo de Estudos MCSE 70-270 - Instalando, Configurando e Administrando o Windows XP (506 páginas) - Entrega via download
Manual Completo de Estudos MCSE 70-270 - Instalando, Configurando e Administrando o Windows XP (506 páginas) - Entrega via download
Por: R$ 30,00
Manual de Estudos - Exame 70-291 - Windows Server 2003 (606 páginas) - entrega via download
Por: R$ 30,00
Dominando MS – Visio ® em 20 Passos - Melhores Práticas em Gestão de Projetos (entrega via download)
Por: R$ 30,00
MS-Project® 2007 - Melhores Práticas de Gestão de Projetos - Dominando MS – Project ® em 20 Passos (e-book com entrega via download)
Por: R$ 20,00
Banco de dados com C# e Visual Studio .Net 2005 (entrega via download)
Por: R$ 20,00
Os 10+ | Autores do dia
Israel Aéce
Júlio Cesar Fabris Battisti
Anderson Patricio
Alfred Reinold Baudisch
Luiz Felipe de Freitas
Robert Martim
Ramon Durães
Alessandro de Oliveira Faria
José Carlos Macoratti
Eric C M Oliveira
Os 10+ | Artigos do dia
HTML Básico
HTML Avançado
Criando aplicativos para o Orkut
Tutorial de Tabelas Dinâmicas no Excel – Parte 1
Excel: fórmulas matriciais
ASP.NET 2.0 - Explorando o GridView
Iniciando um projeto de Nota Fiscal Eletrônica - NFe
PL/SQL - Procedures e Funções
Excel: Comparando Listas
PHP: Formulários e upload de múltiplos arquivos e fotos