<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Andreano Lanusse Blog em Português &#187; Attributes</title>
	<atom:link href="http://www.andreanolanusse.com/blogpt/tag/attributes/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.andreanolanusse.com/blogpt</link>
	<description>O propósito do meu blog é compartilhar assuntos relacionados a desenvolvimento de software, assim como belos lugares para que visitei e recomendo, filmes que assisti e gostei, jogos que realmente curto (sou fã do PS3), fotos de lugares legais e muito mais.</description>
	<lastBuildDate>Thu, 09 Sep 2010 12:43:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1-alpha</generator>
		<item>
		<title>Utilizando atributos (Attributes) para criar framework objeto relacional em Delphi 2010 &#8211; Parte 1</title>
		<link>http://www.andreanolanusse.com/blogpt/utilizando-atributos-attributes-para-criar-framework-objeto-relacional-em-delphi-2010-parte-1/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=utilizando-atributos-attributes-para-criar-framework-objeto-relacional-em-delphi-2010-parte-1</link>
		<comments>http://www.andreanolanusse.com/blogpt/utilizando-atributos-attributes-para-criar-framework-objeto-relacional-em-delphi-2010-parte-1/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 12:14:36 +0000</pubDate>
		<dc:creator>Andreano Lanusse</dc:creator>
				<category><![CDATA[Delphi (Win32)]]></category>
		<category><![CDATA[Attributes]]></category>

		<guid isPermaLink="false">http://www.andreanolanusse.com/blogpt/?p=285</guid>
		<description><![CDATA[De todas as novidades trazidas pelo Delphi 2010, sem dúvida o suporte a atributo (Attributes) é uma das que mais gosto. Para aqueles que já conhecem este recursos em outras linguagens como C# e Java, sabem que Attributes traz um mundo de possibilidades e associado com as novas funcionalidades da RTTI faz o casamento perfeito. [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-311" href="http://www.andreanolanusse.com/blogpt/utilizando-atributos-attributes-para-criar-framework-objeto-relacional-em-delphi-2010-parte-1/delphiloho/"><img class="alignleft size-full wp-image-311" style="border: 0pt none; margin: 4px;" title="Delphi icon" src="http://www.andreanolanusse.com/blogpt/wp-content/uploads/2009/09/delphiloho.png" alt="Delphi icon" width="97" height="97" /></a>De todas as novidades trazidas pelo Delphi 2010, sem dúvida o suporte a atributo (Attributes) é uma das que mais gosto. Para aqueles que já conhecem este recursos em outras linguagens como C# e Java, sabem que Attributes traz um mundo de possibilidades e associado com as novas funcionalidades da RTTI faz o casamento perfeito.</p>
<p>Em resumo atributos nos permite definir características para classes e seus respectivos elementos, existem vários exemplos que mostram a utilidade dos atributos. O melhor exemplo onde podemos utilizar atributos é a criação de framework objeto relacional (O/R Mapping), assim sendo começo hoje uma série de post explicando atributos e utilizando OR/Mapping como exemplo, além disso vamos ver dbExpress Framework que será parte da solução.</p>
<p>Atributos obrigatoriamente são definidos através de classes, estas devem herdar de TCustomAttribute a classe base para criação dos mesmos. Abaixo a classe TableAttribute que será utilizada para mapear as classes da aplicação com o banco de dados, a propriedade TableName define o nome da tabela.</p>
<pre class="brush: delphi">TableAttribute = class(TCustomAttribute)
private
  FTableName: string;

public
  { TRttiType can be used as a parameter type; TypeInfo() supplies the argument. }
  property TableName: string read FTableName;
  constructor Create(ATableName: string); overload;
end;

implementation

constructor TableAttribute.Create(ATableName: string);
begin
  FTableName := ATableName;
end;</pre>
<p>Definido o atributo para mapeamento das tabelas, basta agora você utilizá-lo nas suas classes, abaixo um exemplo onde a classe TCliente está mapeando a tabela CLIENTE.</p>
<pre class="brush: delphi">[Table('CLIENTE')]
TCliente = class
public
  { public declarations }
  property Nome : String read FNome write FNome;
  property Endereco : String read FEndereco write FEndereco;
end;</pre>
<p>Esse foi o primeiro post, no próximo vamos criar atributos para mapear propriedades com os campos das tabelas.</p>
<h2  class="related_post_title">Posts relacionados</h2><ul class="related_post"><li><a href="http://www.andreanolanusse.com/blogpt/utilizando-expressoes-regulares-para-validar-endereco-ip-no-delphi-xe/" title="Utilizando expressões regulares para validar endereço IP no Delphi XE">Utilizando expressões regulares para validar endereço IP no Delphi XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/ao-comprar-delphi-xe-aka-delphi-2011-voce-recebe-as-versoes-do-delphi-7-2007-2009-e-2010/" title="Ao comprar Delphi XE (aka Delphi 2011) você recebe as versões do Delphi 7, 2007, 2009 e 2010">Ao comprar Delphi XE (aka Delphi 2011) você recebe as versões do Delphi 7, 2007, 2009 e 2010</a></li><li><a href="http://www.andreanolanusse.com/blogpt/teste-nosso-servidor-datasnap-xe-instalado-no-amazon-cloud/" title="Teste nosso servidor DataSnap XE instalado no Amazon Cloud">Teste nosso servidor DataSnap XE instalado no Amazon Cloud</a></li><li><a href="http://www.andreanolanusse.com/blogpt/disponibilizada-nova-versao-do-delphi-xe-cbuilder-xe-delphi-prism-xe-e-radphp-xe/" title="Disponibilizada nova versão do Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE">Disponibilizada nova versão do Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/datasnap-xe-e-windows-azure-preview-3/" title="DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3">DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3</a></li><li><a href="http://www.andreanolanusse.com/blogpt/desenvolvimento-agil-delphi-xe-cbuilder-xe-delphi-prism-xe-radphp-xe/" title="Desenvolvimento Ágil = Delphi XE + C++Builder XE + Delphi Prism XE + RadPHP XE">Desenvolvimento Ágil = Delphi XE + C++Builder XE + Delphi Prism XE + RadPHP XE</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.andreanolanusse.com/blogpt/utilizando-atributos-attributes-para-criar-framework-objeto-relacional-em-delphi-2010-parte-1/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
