Por uma internet mais criativa e dinâmica



Documentos relacionados
Por uma internet mais criativa e dinâmica

Por uma internet mais criativa e dinâmica

OPORTUNIDADES CWI: Principais atividades: - Análise e desenvolvimento de sites Cross-plataform (IE/Firefox/Chrome/Safari).

Mapa Mental de Data Warehouse - OLAP

Interessados deverão encaminhar currículo para e efetuar o cadastro em nosso site

* Técnicas Avançadas. Desenvolvimento de SOFTWARES. Sistemas de Gerenciamento de Conteúdo com Joomla e Magento

Formação em Tecnologias de Informação

Sumário. Parte I Introdução Introdução O Rails é ágil Explorando o conteúdo Agradecimentos... 19

Persistindo dados com TopLink no NetBeans

Joomla! para iniciantes. Djonatan Buss Jerônimo Medina Madruga

II Semana de Tecnologia da Informação. Rails Framework

OPORTUNIDADES CWI: Analista de Sistemas Sênior

OPORTUNIDADES CWI: Principais atividades: - Análise e desenvolvimento de sites Cross-plataform (IE/Firefox/Chrome/Safari).

UNICE Ensino Superior Linguagem de Programação Ambiente Cliente Servidor.

IMPACTA TECNOLOGIA Tabela de Preços

OPORTUNIDADES CWI: Principais atividades: - Análise e desenvolvimento de sites Cross-plataform (IE/Firefox/Chrome/Safari).

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

JavaServer Faces. Parte 2

WP EXPRESSO GUIA RÁPIDO. Descubra três formas para montar seu site rapidamente e onde encontrar bons temas

Manual de Procedimentos para Desenvolvimento de Softwares

SOLUÇÕES EM T.I. equipamentos em pleno funcionamento. muito mais eficiência!

PROGRAMAÇÃO PARA INTERNET RICA INTRODUÇÃO AO ASP.NET

UM ESTUDO SOBRE OS FRAMEWORKS JSF E PRIMEFACES NO DESENVOLVIMENTO DE SOFTWARE WEB

Criação de Aplicativos de redes sociais para Autenticação

MANIPULANDO BANCO DE DADOS NO POSTGRESQL SEM FAZER USO DE COMANDOS SQL

PÓS-GRADUAÇÃO EM MATEMÁTICA COMPUTACIONAL INFORMÁTICA INSTRUMENTAL Aula 06: Introdução Linguagem HTML

APÓS A INSTALAÇÃO, MÃOS À OBRA. E AO TECLADO. MANUAL DE INSTALAÇÃO

Estudo de Caso Bicicletada Curitiba

O que é o Android? O que é o Android

INTERESSADOS DEVERÃO CADASTRAR CURRICULO NO SITE TÉCNICO EM INFORMÁTICA

Persistência de Dados em Java com JPA e Toplink

Acessando um Banco de Dados

Validação de formulário : CEP, e CPF

Introdução ao Sistema. Características

Projeto mgov2 Redes Sociais e Dispositivos Móveis. Projeto mgov2 Redes Sociais e Dispositivos Móveis

The Ultimate Design

Projuris Enterprise Visão Geral da Arquitetura do Sistema

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

Pronto! Todos os instaladores correspondentes do filtro aplicado no passo 4 serão disponibilizados para download.

OFICINA DA PESQUISA PROGRAMAÇÃO APLICADA À CIÊNCIA DA COMPUTAÇÃO

Vivo Soluciona TI Manual de Autoinstalação

Linguagem de Programação Procedural (VB) Prof. MSc Eng Marcelo Bianchi AULA 01 - INTRODUÇÃO AO VB

Manual de Instalação e Configuração do SQL Express

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração

Definições: quando usar cada um?

PlusPixel Marketing Digital SOMOS MAIS SOCIAIS DO QUE NUNCA

ESUS SAMU V INSTRUÇÕES PARA INSTALAÇÃO

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro

Persistência de dados com JPA. Hélder Antero Amaral Nunes

Tutorial Gerenciador de Conteúdo Site FCASA

UFG - Instituto de Informática

Criando uma aplicação Web em C# usando o NHibernate

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados

Lucas Nascimento Santos

EXP Digital, desenvolvendo soluções personalizadas para sua empresa alcançar a melhor performance no mundo virtual.

Procedimentos para Instalação do Sisloc

OPORTUNIDADES CWI: Principais atividades: - Análise e desenvolvimento de sites Cross-plataform (IE/Firefox/Chrome/Safari).

Manipulação de Banco de Dados com Java. Ms. Bruno Crestani Calegaro Maio/ 2015

Conteúdo Programático de PHP

Comparando Java e C#

Desenvolvendo Websites com PHP

Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate

WEBDESIGN. Professor: Paulo Marcos Trentin - paulo@paulotrentin.com.br Escola CDI de Videira

Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C#

Equipe OC- Olimpíadas Científicas

Projeto ECA na Escola - Plataforma de Educação à Distância

ASP.NET Gerando relatórios com o ReportViewer

DWR DIRECTED WEB REMOTING

Requisitos de Sistemas

Procedimentos para Reinstalação do Sisloc

4 Desenvolvimento da ferramenta

agility made possible

Noções de. Microsoft SQL Server. Microsoft SQL Server

Manual de Instalação do e.sic - Sistema Municipal de Informações ao Cidadão

1) Ao ser executado o código abaixo, em PHP, qual será o resultado impresso em tela?

FERRAMENTA WEB PARA MODELAGEM LÓGICA EM PROJETOS DE BANCOS DE DADOS RELACIONAIS

Sistema de Gestão de Recursos de Aprendizagem

Linguagem de Programação Para Internet II

Fundament n os s da platafo f rm r a. NE N T André Menegassi

Especificação do Trabalho

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc.

PRÓ-REITORIA DE EXTENSÃO, PESQUISA E INOVAÇÃO DIRETORIA DE INOVAÇÃO E PESQUISA FORMULÁRIO II: Relatório de Atividades de Pesquisa

Introdução ao Android

Para a utilização do WordPress são recomendadas as seguintes configurações:

Desenvolva rapidamente utilizando o frame work CakePHP. Elton Luí s Minetto

Daniel Paulo de Assis

Guia do Usuário. idocs Content Server v

DESENVOLVIMENTODE APLICAÇÕESPARAINTERNET:PHP. VitorFariasCoreia

PROGRAMAÇÃO PARA INTERNET RICA INTRODUÇÃO. Prof. Dr. Daniel Caetano

Vamos criar uma nova Página chamada Serviços. Clique em Adicionar Nova.

CURSO DESENVOLVEDOR JAVA Edição 2010

Manual de Instalação Atendimento 3.4

Procedimentos para Instalação do SISLOC

LINX POSTOS AUTOSYSTEM

O guia completo para uma presença. online IMBATÍVEL!

DELPHI 7 LINGUAGEM DE PROGRAMAÇÃO AMBIENTE CLIENTE SERVIDOR

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Transcrição:

1 de 9 1/10/2010 08:05 ASSINE 0800 703 3000 BATE-PAPO E-MAIL SAC BUSCAR VOIP E-MAIL GRÁTIS SHOPPING ÍNDICE PRINCIPAL Canais Fóruns Multimídia Blogs Shop Eventos Pro Banco de Currículos Por uma internet mais criativa e dinâmica Faça Login ou Cadastre-se E-mail: Senha: Manter conectado Esqueci a senha Arquitetura e Design 3ds max Acessibilidade Arquitetura da Informação Fireworks Flash Lightwave 3D Photoshop Suite Corel Teoria/Design Usabilidade Banco de Dados Access DB2 Interbase MySQL Oracle PostgreSQL SQL Server Carreira Certificações Mercado Tendências CMS e Framework CakePHP Django Drupal Joomla Ruby on Rails Sistemas de E-commerce Wordpress Zend Framework Desenvolvimento Agile Ajax Aplicativos móveis Dreamweaver Flash

2 de 9 1/10/2010 08:05 Flex Gerência de Projetos SEO Software Livre Visual FoxPro Visual Studio Web Standards WebServices Gerência de TI B. Intelligence Computação Forense Direito e Web E-Gov Governança de TI Mercado Linguagens.NET ADO.NET ASP.NET C#.NET VB.NET ActionScript ASP ColdFusion CSS Delphi Java Java para Mobile Java para web Javascript Ajax JQuery Prototype Perl PHP Ruby UML Visual Basic XHTML XML Mídia e Marketing Digital E-commerce E-Learning E-mail Marketing Mídia Social Mobile Marketing Publicidade Online SEO Web Analytics Web Marketing Web Writing Redes e Servidores Apache Cisco Linux Segurança Windows Server Tecnologia Gadgets TV Digital VoIP Desenvolvimento Feeds Newsletter

3 de 9 1/10/2010 08:05 Quinta-feira, 26 de novembro de 2009 às 11h00 NHibernate - usando o ActiveRecord - Parte 01 Conheça o curso ao vivo: HTML5 na Prática, com Paulino Michelazzo. Apenas como introdução, vamos lembrar que o NHibernate é a versão para a plataforma.net do framework de persistência Hibernate desenvolvido para a plataforma Java. Ele é um projeto open source e pode ser usado para gerar o mapeamento objeto relacional para diversos bancos de dados. Uma das suas principais vantagens é não ter que escrever as instruções SQL, pois todos os comandos para persistência são gerados em tempo de execução. Atualmente a comunidade tem discutido muito sobre a utilização de ferramentas OR/M, ou seja, ferramentas que realizam o mapeamento objeto relacional. Existem dezenas de ferramentas que se propõem a realizar este serviço e, para a comunidade.net, atualmente o NHibernate é uma das ferramentas mais usadas e mais maduras do mercado. A Microsoft lançou recentemente o Entity Framework que tem o mesmo propósito, mas a ferramenta está evoluindo e ainda não atingiu o nível de maturidade que os desenvolvedores estão esperando. (A próxima versão da plataforma.net trará uma versão mais madura da ferramenta, vamos aguardar...) Embora o NHibernate seja uma ferramenta consagrada e muito usada, ela tem um problema: dá um trabalho danado gerar os arquivos de mapeamento XML na mão. É aqui que entra o ActiveRecord, um projeto Castle que é uma implementação do padrão de projeto ActiveRecord, que consiste em instanciar propriedades que representam um registro de um banco de dados. Com o ActiveRecord não há necessidade de configurar arquivos xml para criar os mapeamentos do Nhibernate. O padrão active record (em inglês: active record pattern) é um padrão de projeto encontrado frequentemente em um software que guarda dados em banco de dados relacionais. Foi nomeado por Martin Fowler no seu livro Patterns of Enterprise Application Architecture. Active Record é uma abordagem para acessar dados em um banco de dados. Uma tabela do banco de dados ou view é envolta em uma classe, desta maneira, uma instância é vinculada a uma única linha (registro) na tabela. Após a criação de um objeto, um novo registro é adicionado na tabela após salvar. Qualquer objeto carregado obtém informações do seu banco de dados; quando um objeto é atualizado, o registro correspondente na tabela também é atualizado. A classe wrapper implementa os métodos de acesso ou propriedades para cada coluna na tabela ou view. Este padrão é comumente usado por ferramentas de persistência de objetos, e em mapeamento objeto-relacional. Normalmente relacionamentos de chave estrangeira serão expostos como um objeto de tipo apropriado por meio de uma propriedade. O Castle ActiveRecord é uma implementação deste padrão e, neste artigo, eu vou mostrar como usar o ActiveRecord da Castle para gerar os arquivos de mapeamento XML necessários em uma aplicação Windows Forms que utiliza o NHibernate como ferramenta OR/M. Requisitos necessários No exemplo prático que irei mostrar neste artigo vamos precisar das seguintes ferramentas: ActiveRecord Você deve baixar a última versão disponível do ActiveRecord neste link: http://www.castleproject.org/castle /download.html A documentação pode ser baixada aqui: http://www.castleproject.org/activerecord/documentation/index.html NHIbernate Baixe a última versão do NHibernate aqui: http://sourceforge.net/projects/nhibernate/ Após fazer o download você deve descompactar os arquivos em uma pasta própria. SQL Server 2005 Baixe o SQL Server 2005 Express Edition aqui :Microsoft SQL Server 2005 Express Edition Management Studio Express Edition Pegue o Management Studio aqui: Microsoft SQL Server Management Studio Express

4 de 9 1/10/2010 08:05 Para poder usar os recursos do ActiveRecord e do NHiberante você terá que incluir as seguintes referências no projeto. Para fazer isso clique sobre o nome do projeto e selecione Add Reference; A seguir selecione Browse e localize as seguintes DLLs referente ao ActiveRecord selecionando-as: Castle.ActiveRecord.dll Castle.Core.dll Castle.Components.Validator.dll Castle.DynamicProxy.dll Repita o processo e agora selecione as DLLs referente ao NHibernate: NHibernate.dll Iesi.Collections.dll log4net.dll Após concluída esta etapa você deverá declarar o seguinte namespace na classe do seu projeto: C# VB.NET using Castle.ActiveRecord Imports Castle.ActiveRecord O objetivo principal do artigo é mostrar como usar o ActiveRecord para gerar os arquivos de mapeamento XML, mas não vou detalhar este conceito aqui. Com o ActiveRecord você não vai precisar aprender sobre o esquema de mapeamento do NHibernate para poder gerar os seus arquivos XML, nem vai ter que tratar com ISession e ISessionFactory, pois toda esta complexidade é tratada pelo ActiveRecord. O ActiveRecord oferece um subconjunto das funcionalidades de mapeamento do NHibernate, sendo que o mapeamento é feito usando classes, campos e atributos a nível de propriedade (O ActiveRecord esta apto a infereir os nomes da tabela e das colunas mesmo que forem omitidas). Obs: O Ruby On Rails manuseia dados usando o Active Record, que faz o trabalho de ORM. Abaixo temos um exemplo de uma classe criada para gerar o mapeamento usando o ActiveRecord através de atributos: [ActiveRecord] public class Category : ActiveRecordBase private int id; private string name; private Category parent; private IList<Category> subcategories = new List<Category>(); [PrimaryKey] public int Id get return id; set id = value; [Property] public string Name get return name; set name = value; [BelongsTo("parent_id")] public Category Parent get return parent; set parent = value; [HasMany] public IList<Category> SubCategories get return subcategories; set subcategories = value; Neste exemplo, os atributos HasMany e BelongsTo podem ser usados em uma classe pai e filho, respectivamente, para indicar

5 de 9 1/10/2010 08:05 uma relação um-para-muitos. O ActiveRecord atua sobre o que é chamado de tipos ActiveRecord que são classes, que usam o atributo ActiveRecordAttribute e herdam a partir de uma das classes base ActiveRecord. Atualmente a classe base é a classe ActiveRecordBase, que é uma classe genérica. O atributo ActiveRecord é usado para definir uma classe como um tipo ActiveRecord e para associar a informação do mapeamento. No exemplo acima vemos isso no trecho de código: [ActiveRecord] public class Category : ActiveRecordBase... Uma outra forma seria informar o nome da tabela: [ActiveRecord("Category")] public class Category : ActiveRecordBase... No exemplo acima não está informado de forma explícita o nome da tabela, nem o esquema do banco de dados. Neste caso o ActiveRecord, então, assume a classe Category como a classe que está sendo mapeada para a tabela do banco de dados com o mesmo nome. Neste caso o esquema do banco de dados será nulo. Para informar o nome da tabela e do esquema do banco de dados, usamos as propriedades Table e Schema conforme abaixo: [ActiveRecord(Table="Category", Schema="dbo")] public class Category : ActiveRecordBase... Antes de utilizar o ActiveRecord em tempo de execução, você precisa inicializar de forma apropriada o Framework uma única vez para o tempo de vida da aplicação. Afim de inicializar o framework, você precisa fornecer as seguintes informações: Qual o tipo de banco de dados você está usando; Como efetuar a conexão com este banco de dados; Opcionalmente você também pode ativar o debug, o caching e efetuar outra configurações. Antes de usar o ActiveRecord sua aplicação precisa invocar o método Initialize da classe ActiveRecordStarter para realizar a inicialização do framework. O método Initialize precisa da implementação da interface IConfigurationSource e da definição dos tipos de ActiveRecords (que são as classes do domínio) a serem examinadas, dessa forma o NHibernate é configurado para examinar os tipos para erros de sintaxe e para construir o mapeamento para todos tipos definidos. A seguir, temos um exemplo de como efetuar tal tarefa para duas classes usando a linguagem C#: IConfigurationSource config = ActiveRecordSectionHandler.Instance ; ActiveRecordStarter.Initialize(config, typeof(classe1), typeof(classe2));... A classe ActiveRecordSectionHandler faz a leitura da configuração a partir de uma entrada para um 'activerecord' no arquivo xml associado com a AppDomain; Outra forma de realizar a mesma tarefa é obter a informação da configuração de um arquivo AppConfig.xml; imports Castle.ActiveRecord; Dim source As XmlConfigurationSource = New XmlConfigurationSource("AppConfig.xml")

6 de 9 1/10/2010 08:05 ActiveRecordStarter.Initialize(source, GetType(Category))... A classe que deve ser criada para realizar o mapeamento deve herdar da classe abstrata ActiveRecordBase que expõe membros públicos e protegidos que provavelmente você vai usar na sua classe ActiveRecord. Abaixo temos um exemplo de utilização da classe para gerar o mapeamento: VB.NET Imports Castle.ActiveRecord <ActiveRecord("Contatos")> _ Public Class Contato Inherits ActiveRecordBase(Of Contato) Private m_id As Integer <PrimaryKey("ID")> _ Public Property Id() As Integer Get End Get Return (m_id) Set(ByVal value As Integer) End Set m_id = value End Property... A classe ActiveRecord também expõe instâncias de membros para Save, Create, Update e Delete sendo que a operação Save está apta a distinguir se a classe precisa ser criada ou atualizada. Você pode consultar mais detalhes na documentação do ActiveRecord: http://www.castleproject.org/activerecord/documentation /v1rc1/index.html Usando o ActiveRecord e o NHibernate em uma aplicação Windows Forms Para que você possa entender como implementar a utilização dos recursos do ActiveRecord em sua aplicação C# ou VB.NET, vou criar um exemplo usando a linguagem VB.NET no qual iremos realizar as seguintes tarefas: Criação do banco de dados e da tabela; Criação das classe para realizar o mapeamento; Definição do arquivo de configuração; Inicializando o Framework; Usando as classes na aplicação Windows Forms; Aguarde na continuação deste artigo a criação do projeto completo usando NHibernate e ActiveRecord. Interação Relatar Link QuebradoImprimir

7 de 9 1/10/2010 08:05 1 comentário 25/07/2010 04h08 Medieval Aí vai também uma dica: Use Mygeneration (pesquisa aí no google). Com ele você não precisa criar nem as classes (entities) e nem os mapeamentos xml. Você simplesmente manda ele gerar tudo isso lendo o banco. É o que eu faço aqui, nem me lembro mais como monto esses mapeamentos no nhibernate..ehhehehehe. Responder Cancelar resposta Qual a sua opinião? Se você já possui conta imasters, o login será feito abaixo. Nome: E-mail: Comentário: Atenção: comentários considerados spams e/ou ofensivos serão moderados. Patrocínio: Sobre o Autor José Carlos Macoratti é referência em Visual Basic no Brasil e autor dos livros "Aprenda Rápido: ASP" e "ASP, ADO e Banco de Dados na Internet". Mantenedor do site macoratti.net. macoratti@yahoo.com Outros artigos do mesmo autor: ASP.NET - Gerenciamento de serviços usando o... VB.NET - Criando gráficos no VB 2010 Express... VB.NET - Criando gráficos no VB 2010 Express... Crystal Reports para o Visual Studio 2010... Ver mais artigos de José Carlos Macoratti Indique para um amigo

8 de 9 1/10/2010 08:05 Microsoft Visual Studio LightSwitch Desenvolva suas aplicações de uma maneira muito mais ágil e simples. RowFeeder Monitore e analise diversas palavras-chaves no Twitter e Facebook. Office 2010 Versão de avaliação do pacote de escritório da Microsoft. VirtualBox Emule um sistema operacioanl dentro de outro. Google App Inventor Programa de criação de aplicativos para Android aberto para todos.

9 de 9 1/10/2010 08:05 Parceiros imasters Sobre o imasters Política de privacidade Anuncie Feeds imasters Fóruns imasters Fale conosco 2001 - imasters FFPA Informática Ltda - Todos os direitos reservados.