<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-9208835150095134262</id><updated>2024-10-24T19:33:13.828-03:00</updated><category term="Asp.Net"/><category term="HTML"/><category term="Javascript"/><category term="jQuery"/><category term="Ajax Framework Failed to Load"/><category term="Ajax Toolkit"/><category term="C#"/><category term="DataTables"/><category term="EntityFramework"/><category term="Linq"/><category term="ORM"/><category term="ObjectContext"/><category term="ScriptManager"/><category term="ScriptResource.axd"/><category term="Sys is not defined"/><category term="WebForm_InitCallback is not defined"/><category term="WebResource.axd"/><category term="certificado auto-assinado"/><category term="certificado de teste"/><category term="certificado digital"/><category term="custom httpmodule"/><category term="custom tables"/><category term="digital certificate"/><category term="e-mail"/><category term="exemplo certificado digital"/><category term="html5"/><category term="httpmodule customizado"/><category term="jQuery UI"/><category term="jQuery datatable params"/><category term="jQuery multiple selector"/><category term="jQuery plugin"/><category term="jQuery selector"/><category term="jQuery.dataTable"/><category term="makecert"/><category term="multiplas classes"/><category term="pvk2pfx"/><category term="self-signed certificates"/><category term="semantic tags"/><category term="ssl"/><category term="tabelas"/><category term="tables"/><category term="tags semanticas"/><title type='text'>On Code and Coffee</title><subtitle type='html'>Pitacos e reflexões sobre desenvolvimento web e .Net</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://gustavosiqueira.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9208835150095134262/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://gustavosiqueira.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/05000806084379664958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9208835150095134262.post-4060140013472112026</id><published>2015-07-28T13:47:00.000-03:00</published><updated>2015-07-28T21:23:40.213-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="certificado auto-assinado"/><category scheme="http://www.blogger.com/atom/ns#" term="certificado de teste"/><category scheme="http://www.blogger.com/atom/ns#" term="certificado digital"/><category scheme="http://www.blogger.com/atom/ns#" term="digital certificate"/><category scheme="http://www.blogger.com/atom/ns#" term="exemplo certificado digital"/><category scheme="http://www.blogger.com/atom/ns#" term="makecert"/><category scheme="http://www.blogger.com/atom/ns#" term="pvk2pfx"/><category scheme="http://www.blogger.com/atom/ns#" term="self-signed certificates"/><category scheme="http://www.blogger.com/atom/ns#" term="ssl"/><title type='text'>Criando certificados digitais para um ambiente de desenvolvimento/testes</title><content type='html'>A primeira vez que a gente precisa de um ambiente de desenvolvimento habilitado para SSL a gente nunca esquece.&lt;br /&gt;
&lt;br /&gt;
Cerificados digitais criam uma certa confusão pra quem não está acostumado com eles. E frequentemente o material disponível a respeito é bastante extenso e cheio de detalhes excruciantes. Demais pra quem quer apenas dar o primeiro passo e ter uma ambiente pra testar uma aplicação.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
O Que São Certificados Digitais&lt;/h3&gt;
&lt;br /&gt;
O Certificado Digital é um mecanismo pelo qual conteúdo pode ser digitalmente assinado. Mais especificamente, ele associa uma identidade (a &quot;pessoa&quot; a quem o certificado pertence) a uma chave pública (e a essa chave púbilca corresponde uma chave privada, usada pelo possuidor do certificado para assinar o conteúdo).&lt;br /&gt;
&lt;br /&gt;
Os certificados são emitidos e assinados por uma Autoridade Certificadora. A própria autoridade certificadora possui um certificado digital e uma chave privada com os quais ela assina todos os outros certificados emitidos por ela.&lt;br /&gt;
&lt;br /&gt;
A maioria dos computadores traz pré-instalada uma série de certificados digitais dessas autoridades. Assim, quando você acessa um site (por exemplo, google.com), é possível verificar se o certificado usado por esse site foi emitido para a &quot;identidade&quot; google.com, e se esse certificado foi assinado por uma autoridade confiável. Esse processo é conhecido como Chain Trust (em alusão à cadeia de certificados usados para assinar outros certificados).&lt;br /&gt;
&lt;br /&gt;
Durante o processo de desenvolvimento, frequentemente nos deparamos com cenários onde precisamos que nossas aplicações estejam preparadas para rodar em ambientes seguros (por exemplo, um webservice que será chamado via https). Para os ambientes de desenvolvimento e testes, pode ser conveniente usar certificados auto-assinados em vez de certificados adquiridos das autoridades certificadoras.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Certificados Auto-Assinados (Self-signed Certificates)&lt;/h3&gt;
&lt;br /&gt;
O truque, nesse caso, é criarmos nós mesmos um certificado digital e instalar esse certificado no ambiente de desenvolvimento para ser reconhecido como uma autoridade certificadora confiável. Assim, podemos usar esse certificado para assinarmos nós mesmos certificados que serão tratados, nesse ambiente, como confiáveis (daí o &quot;auto-assinado&quot;).&lt;br /&gt;
&lt;br /&gt;
É importante notar que isso cria uma brecha de segurança importante! Qualquer pessoa de posse do seu certificado poderá assinar outros certificados que serão tradados, dentro desse ambiente, como confiáveis.&lt;br /&gt;
&lt;br /&gt;
Como você não vai querer que alguém consiga se passar pelo seu banco, provedor de e-mail... Ou enfim, qualquer outro agente com o qual você comunique informação sensível, é indicado proteger suas chaves privadas com uma senha forte (forte MESMO, leve isso a sério!). Além disso, remova o certificado auto-assinado da lista de certificados confiáveis assim que seus testes terminarem.&lt;br /&gt;
&lt;br /&gt;
E nunca é demais lembrar: &lt;b&gt;NUNCA USE CERTIFICADOS AUTO-ASSINADOS NUM AMBIENTE DE PRODUÇÃO.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
A configuração de um ambiente SSL de desenvovlimento envolve os seguintes passos:&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Passo 1: Criando a Autoridade Certificadora&lt;/h3&gt;
&lt;br /&gt;
Abra o prompt de comando do Visual Studio (como administrador). Navegue até o diretório onde você quer armazenar seus certificados de teste e faça a seguinte chamada ao programa makecert.exe:&lt;br /&gt;
&lt;br /&gt;
makecert -n &quot;CN=DevTestAuthority&quot; -cy authority -a sha1 -sv &quot;DevTestAuthority.pvk&quot; -r &quot;DevTestAuthority.cer&quot;&lt;br /&gt;
&lt;br /&gt;
Os parâmetros que passamos para o makecert quando emitimos esse certificado são:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYJE75FsGgmKgQqoBdiFmIkqdHnx6RnTsCqtVj93Fot-uWXTDR_QKQx82J9iZ5oOkj_hsg_cTlE4ddBj_QeA-XfRCa-rRA2TBhzvS7j6eqsQB6U6fwEc2PQQU33srss2SgpyfgN24sPt8/s1600/01+-+makecert.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYJE75FsGgmKgQqoBdiFmIkqdHnx6RnTsCqtVj93Fot-uWXTDR_QKQx82J9iZ5oOkj_hsg_cTlE4ddBj_QeA-XfRCa-rRA2TBhzvS7j6eqsQB6U6fwEc2PQQU33srss2SgpyfgN24sPt8/s640/01+-+makecert.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
-n: A identidade (ou nome) do detentor do certificado. Para um website, deve corresponder exatamente ao domínio do site.&lt;br /&gt;
-cy authority: Especifica que estamos criando um certificado para uma autoridade certificadora&lt;br /&gt;
-a sha1: Especifica o algoritmo de criptografia empregado (SHA1, nesse caso)&lt;br /&gt;
-sv: A chave privada que será utilizada. Caso não exista a chave privada especificada, uma nova será criada.&lt;br /&gt;
-r: Emite um certificado auto-assinado, ou seja, nenhum outro certificado será usado pra assinar este. Ele será a &quot;raiz&quot; da cadeia de certificados&lt;br /&gt;
DevTestAuthority.cer: O nome do arquivo do certificado&lt;br /&gt;
&lt;br /&gt;
Ao executar esse comando pela primeira vez, será pedida uma senha para a chave privada. Lembre de fornecer uma senha forte!&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Passo 2: Instalando o Certificado Recém Criado Para Uma Autoridade Certificadora Confiável&lt;/h3&gt;
&lt;br /&gt;
Em Iniciar &amp;gt; Executar, busque por mmc.exe.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWzYVQ59CTrrSMPagRIRTOZZDu34nq-uBK2XcQtiz_y3NIKwZfjmvDlnoJAWcsyBXHiQr3cw3hZV0YwW2nhb6de6RV0cUmA8MZ8jIpuZ9MGHbW-LK_5UoD6VMWf9qvErhkEbSKdd7Fx5I/s1600/02+-+mmc.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;350&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWzYVQ59CTrrSMPagRIRTOZZDu34nq-uBK2XcQtiz_y3NIKwZfjmvDlnoJAWcsyBXHiQr3cw3hZV0YwW2nhb6de6RV0cUmA8MZ8jIpuZ9MGHbW-LK_5UoD6VMWf9qvErhkEbSKdd7Fx5I/s640/02+-+mmc.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Agora, no menu &quot;File &amp;gt; Add/Remove Snap-In&quot;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPJCYJYVmabaGkSFloUPdEY6LGSln_VazFJBj_UHtrS5SBZZ6gmKn_fTFwZrV83UrH95fK9kIj-Or3834VR2RRqENzskdPmc2B7a7npnly4bxGDrMkLOpNLVbWl16Esy0D5pNJ7SR_3wU/s1600/03+-+add_snapin.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;448&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPJCYJYVmabaGkSFloUPdEY6LGSln_VazFJBj_UHtrS5SBZZ6gmKn_fTFwZrV83UrH95fK9kIj-Or3834VR2RRqENzskdPmc2B7a7npnly4bxGDrMkLOpNLVbWl16Esy0D5pNJ7SR_3wU/s640/03+-+add_snapin.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Escolha &quot;Certificates&quot; e clique na seta para a direita para adicionar este Snap-In&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0WlKfrTfQswBjfoqrz_HnoRlk10QuiaK7pQZvLPtqYeRsagFdwqU2N4GeHvvO5urd3aRP2F1hNZqBIMS0rAYtMBAnnRQKrxgn0KZvD8IIZ9bYNq2W2U4mJz3A4_qfiIfpMsb8tPrm1tw/s1600/04+-+choose+computer+account.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;472&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0WlKfrTfQswBjfoqrz_HnoRlk10QuiaK7pQZvLPtqYeRsagFdwqU2N4GeHvvO5urd3aRP2F1hNZqBIMS0rAYtMBAnnRQKrxgn0KZvD8IIZ9bYNq2W2U4mJz3A4_qfiIfpMsb8tPrm1tw/s640/04+-+choose+computer+account.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Na sequência, uma janela de diálogo solicitará para qual computador você deseja gerenciar os certificados. Deixe selecionada a opção &quot;Local Computer&quot; e clique em &quot;Finish&quot;.&lt;br /&gt;
&lt;br /&gt;
Você verá o painel abaixo. Agora, vamos adicionar nosso certificado a &quot;Trusted Root Certification Authorities&quot;, para que ele passe a ser reconhecido em nosso computador local como o certificado de uma autoridade certificadora confiável. Então, poderemos usar este certificado para assinar nossos certificados de desenvolvimento.&lt;br /&gt;
&lt;br /&gt;
Clique com o botão direito sobre Trusted Root Certification Authorities &amp;gt; All Tasks &amp;gt; Import. Isso abrirá o diálogo para importar nosso certificado. Siga os passos na tela, e quando perguntado sobre o arquivo do certificado, escolha o arquivo DevTestAuthority.cer que criamos usando a ferramenta makecert:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5MDKLCMtjHmVJ1EBuTNzhtv9CsoYbZdY2rkTqiA0L04Xx6q7LDtZ02xZ_qsmKdq5cPP_VNK18aifETeBImEZ_gWhw2AxPsKf6S0R_AxirOb8-BXajSGgReAsuS0Av6SD1RWgMA5KhBC8/s1600/05+-+certificates.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;348&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5MDKLCMtjHmVJ1EBuTNzhtv9CsoYbZdY2rkTqiA0L04Xx6q7LDtZ02xZ_qsmKdq5cPP_VNK18aifETeBImEZ_gWhw2AxPsKf6S0R_AxirOb8-BXajSGgReAsuS0Av6SD1RWgMA5KhBC8/s640/05+-+certificates.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBcNi7VSwKRzIzT-26crc0g33dlbl2MQdLr6KdORB71V7z9_5l8Yr2t1mQIhfjWiTUUSHU9uJnl328dkD9jt8A9B3fRjFBny94vBiWtHF4usLto5WfGyG-noyzolymvergp-3K0xRybC8/s1600/06+-+import+root+auth.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;342&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBcNi7VSwKRzIzT-26crc0g33dlbl2MQdLr6KdORB71V7z9_5l8Yr2t1mQIhfjWiTUUSHU9uJnl328dkD9jt8A9B3fRjFBny94vBiWtHF4usLto5WfGyG-noyzolymvergp-3K0xRybC8/s640/06+-+import+root+auth.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgrT-O-QSTxpKhTD_wK0_4V3UnXVrP4pM0JDXBcSXdmKehBRsclGeZnJnA4Qc6tzV4KL5zS3yx62VPpcs7RtTIz3Uq7IW3mOBcD6Z9-1nrf6EO7jsc_mX11-RQkPVd6gPUNmLcJ0N3ci8/s1600/07+-+import+root.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;580&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgrT-O-QSTxpKhTD_wK0_4V3UnXVrP4pM0JDXBcSXdmKehBRsclGeZnJnA4Qc6tzV4KL5zS3yx62VPpcs7RtTIz3Uq7IW3mOBcD6Z9-1nrf6EO7jsc_mX11-RQkPVd6gPUNmLcJ0N3ci8/s640/07+-+import+root.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Após isso, nosso certificado será exibido na lista de autoridades confiáveis.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYgiHnSXV1w2K-WXXjPXukJnjHsnwUVnzZbsxlIanwPGFZVk3JWrGJxB0tLcCJgNYJo0CtfH1ojaV3s2kOWKYv3Gfp5-b7dxyzksyD7cpdBk5F3j8xKG2RcqgZhjfOgEUdpZx4AgH35CI/s1600/08+-+after+import.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;342&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYgiHnSXV1w2K-WXXjPXukJnjHsnwUVnzZbsxlIanwPGFZVk3JWrGJxB0tLcCJgNYJo0CtfH1ojaV3s2kOWKYv3Gfp5-b7dxyzksyD7cpdBk5F3j8xKG2RcqgZhjfOgEUdpZx4AgH35CI/s640/08+-+after+import.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Agora podemos emitir nossos certificados de desenvolvimento e assiná-los com nossa Autoridade Certificadora.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Passo 3: Emitir um Certificado e Assiná-lo com a Autoridade Certificadora&lt;/h3&gt;
&lt;br /&gt;
Para isso, voltarmeos ao markecert com o seguinte comando:&lt;br /&gt;
&lt;br /&gt;
makecert -n &quot;CN=seudominio.com&quot; -ic &quot;DevTestAuthority.cer&quot; -iv &quot;DevTestAuthority.pvk&quot; -a sha1 -sky exchange -pe -sv &quot;meudominio.com Private Key.pvk&quot; &quot;meudominio.com.cer&quot;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXM9z7DlvTsInO7TEgm2tZXfpgMzrbXjFJuf4DbQQ57LOvyWvSy1w4G_SFbguSNyTUBePkwp48cGD9hoHOMeDApbgbdKPVO-FHyPYhGKx0uWVW4aARh1MT-MGXFsJSasOlLkqRg9_Ujgc/s1600/09+-+create+leaf+cert.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;322&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXM9z7DlvTsInO7TEgm2tZXfpgMzrbXjFJuf4DbQQ57LOvyWvSy1w4G_SFbguSNyTUBePkwp48cGD9hoHOMeDApbgbdKPVO-FHyPYhGKx0uWVW4aARh1MT-MGXFsJSasOlLkqRg9_Ujgc/s640/09+-+create+leaf+cert.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Durante, você será perguntando sobre a senha do &quot;Issuer&quot; (emissor, ou autoridade certificadora), que é a senha que usamos para criar o certificado anterior. Também será pedida uma senha para a chave privada do certificado que estamos criando agora. Novamente, escolha uma senha forte.&lt;br /&gt;
&lt;br /&gt;
Dessa vez, alguns dos parâmetros são um pouco diferentes dos que usamos para criar o certificado da Autoridade Certificadora:&lt;br /&gt;
&lt;br /&gt;
-n: O nome do certificado. No caso de websites, é o nome do domínio (ex: meudominio.com)&lt;br /&gt;
-ic: O certificado que usaremos como Autoridade Certificadora, para assinar o novo certificado&lt;br /&gt;
-iv: O arquivo que contém a chave-privada da autoridade certificadora (foi criado no passo anterior)&lt;br /&gt;
-a sha1: O algoritmo de criptografia. Estamos usando sha1 neste exemplo&lt;br /&gt;
-sky exchange: Especifica que nosso certificado pode fazer troca de chaves (key exchange)&lt;br /&gt;
-pe: Especifica que a chave privada do certificado será exportável&lt;br /&gt;
-sv: A chave privada que será usada (ou criada, caso ainda não exista)&lt;br /&gt;
meudominio.com.cer: O nome do arquivo que conterá o certificado&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Passo 4: Instalação do Certificado Auto-Assinado&lt;/h3&gt;
&lt;br /&gt;
O último passo será combinar a chave privada e o certificado recém criados num único arquivo PFX, usando a ferramenta pvk2pfx:&lt;br /&gt;
&lt;br /&gt;
pvk2pfx -pvk &quot;meudominio.com Private Key.pvk&quot; -spc &quot;meudominio.com.cer&quot; -pfx &quot;meudominio.com.pfx&quot; -pi SenhaDaPrivateKey&lt;br /&gt;
&lt;br /&gt;
Usando os seguintes parâmetros:&lt;br /&gt;
&lt;br /&gt;
-pvk: O arquivo da chave privada do certificado&lt;br /&gt;
-spc: O arquivo do certificado que será colocado no arquivo PFX&lt;br /&gt;
-pfx: O nome do arquivo PFX que será criado&lt;br /&gt;
-pi: A senha da chave privada do certificado (a mesma que você usou quando criou o certificado usando o makecert).&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZJ9dHKU8prVzT5R1bKBfNnQXXGgIZcfQM7AuizNhJP-SaeeR-FhPMVOgT3LIzA5FKXnajmhyphenhyphenq7MGPXX_czNO_R9uihKslsGLlYnBJi6orsuOK9nm6VPDicwSrOB7WIaY4-b8t5EbKwTI/s1600/10+-+pvk2pfx.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;322&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZJ9dHKU8prVzT5R1bKBfNnQXXGgIZcfQM7AuizNhJP-SaeeR-FhPMVOgT3LIzA5FKXnajmhyphenhyphenq7MGPXX_czNO_R9uihKslsGLlYnBJi6orsuOK9nm6VPDicwSrOB7WIaY4-b8t5EbKwTI/s640/10+-+pvk2pfx.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Agora, basta importar o arquivo PFX criado para sua Store local de certificados, um procedimento parecido com o que usamos para importar o certificado da Autoridade Certificadora. Veja abaixo os passos:&lt;br /&gt;
&lt;br /&gt;
Abra o assistente de importação, dessa vez na guia &quot;Personal&quot; em vez de &quot;Trusted Root Certification Authorities&quot;:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTKrC9LbqqaKPXgI7A0VuH_cI1hJT3hhyU9wKH2pQpcPTnzKkHRlDYO1hQR9JZlFVjRvCpsCl7vF05S0YAh2946hA1ID8OCXp_MdwJv3ICwwzMzgF0jAADioVpFSHxhuopr_DQ8XldP3s/s1600/11+-+Personal+Storage.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;346&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTKrC9LbqqaKPXgI7A0VuH_cI1hJT3hhyU9wKH2pQpcPTnzKkHRlDYO1hQR9JZlFVjRvCpsCl7vF05S0YAh2946hA1ID8OCXp_MdwJv3ICwwzMzgF0jAADioVpFSHxhuopr_DQ8XldP3s/s640/11+-+Personal+Storage.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
Os passos serão os mesmos de antes, mas em vez de escolher o arquivo .cer, dessa vez vamos importar o arquivo de extensão .pfx:&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6488Ux5N-u2rrPZzUOtG5as0Zc9bzdvB0YwPe-WmPM-yo66iLfn-oTuzlLTwJmgPbMKavfciFta1jDscIex3Org_-mi2DxcAaAPSfnYcD9biDqsGAiWK4U18VyfWySaW2NY4SCqnNYgA/s1600/12+-+Choose+PFX.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;388&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6488Ux5N-u2rrPZzUOtG5as0Zc9bzdvB0YwPe-WmPM-yo66iLfn-oTuzlLTwJmgPbMKavfciFta1jDscIex3Org_-mi2DxcAaAPSfnYcD9biDqsGAiWK4U18VyfWySaW2NY4SCqnNYgA/s640/12+-+Choose+PFX.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
O assistente perdirá a senha do certificado. Conclua os passos do assisnte e PRONTO! Agora você tem uma autoridade certificadora confiável e um certificado emitido por ela para uso no seu ambiente de testes e desenvolvimento :)&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWhfMc4S_DUnVW6CJgl8fgAZXf1jOAuEPgHRTbbB8UQ56vG6woaU3MZcNPm8RLQGyyeybbYjuFqvvpP3RYsC-CUkPPxI6VN9NCJ0Hc-IFRTVefIGuRfVdizd9oXAHSGmmWuqKOTltkf60/s1600/13+-+Done.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;342&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWhfMc4S_DUnVW6CJgl8fgAZXf1jOAuEPgHRTbbB8UQ56vG6woaU3MZcNPm8RLQGyyeybbYjuFqvvpP3RYsC-CUkPPxI6VN9NCJ0Hc-IFRTVefIGuRfVdizd9oXAHSGmmWuqKOTltkf60/s640/13+-+Done.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://gustavosiqueira.blogspot.com/feeds/4060140013472112026/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://gustavosiqueira.blogspot.com/2015/07/criando-certificados-digitais-para-um.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9208835150095134262/posts/default/4060140013472112026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9208835150095134262/posts/default/4060140013472112026'/><link rel='alternate' type='text/html' href='http://gustavosiqueira.blogspot.com/2015/07/criando-certificados-digitais-para-um.html' title='Criando certificados digitais para um ambiente de desenvolvimento/testes'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/05000806084379664958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYJE75FsGgmKgQqoBdiFmIkqdHnx6RnTsCqtVj93Fot-uWXTDR_QKQx82J9iZ5oOkj_hsg_cTlE4ddBj_QeA-XfRCa-rRA2TBhzvS7j6eqsQB6U6fwEc2PQQU33srss2SgpyfgN24sPt8/s72-c/01+-+makecert.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9208835150095134262.post-4734285077357359328</id><published>2015-07-20T22:58:00.001-03:00</published><updated>2015-07-20T23:07:40.942-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="HTML"/><category scheme="http://www.blogger.com/atom/ns#" term="html5"/><category scheme="http://www.blogger.com/atom/ns#" term="semantic tags"/><category scheme="http://www.blogger.com/atom/ns#" term="tags semanticas"/><title type='text'>Usando os elementos semânticos do HTML 5</title><content type='html'>Uma das primeiras diferenças que você vai encontrar quando comparar o HTML5 com as versões anteriores é a presença de elementos semânticos em vez de apenas elementos estruturais.&lt;br /&gt;
&lt;br /&gt;
A função desses elementos é tão simples quanto o próprio nome sugere: ao declarar elementos no seu documento, os nomes dos elementos também expressam o significado (ou função) deles.&lt;br /&gt;
&lt;br /&gt;
Em vez dos velhos elementos como &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;lt;div&amp;gt;&lt;/span&gt; e &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;lt;span&amp;gt;&lt;/span&gt; (que continuam lá, você pode usá-los como sempre usou), entram novas tags como &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;lt;article&amp;gt;&lt;/span&gt;, &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;lt;header&amp;gt;&lt;/span&gt; ou &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;lt;footer&amp;gt;&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Por quê usar as tags semânticas?&lt;/h3&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Observe os dois trechos de código abaixo:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Sem tags semânticas:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;lt;body&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;div id=&quot;header&quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;div id=&quot;menu&quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;div class=&quot;articleContent&quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;div class=&quot;advertise&quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;div class=&quot;copyright&quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Com tags semânticas:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;lt;body&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;header&amp;gt;...&amp;lt;/header&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;nav&amp;gt;...&amp;lt;/nav&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;article&amp;gt;...&amp;lt;/article&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;aside&amp;gt;...&amp;lt;/aside&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;footer&amp;gt;...&amp;lt;/footer&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Num exemplo tão simples não parece grande coisa. Mas mesmo ele nos permite identificar um pouco da importância das tags semânticas:&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Código mais fácil de ler&lt;/b&gt;. O nome das tags identifica seu objetivo na página. Fica muito mais fácil entender a intenção de um determinado trecho de html.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Otimização para search engines&lt;/b&gt;. Elementos semânticos tornam sua página mais fácil de ler e indexar, pois é mais fácil distinguir títulos, subtítulos e conteúdos relevantes.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Otimização para leitores de tela&lt;/b&gt;. Softwares de leitura de tela conseguem diferenciar melhor entre títulos, seções, conteúdos e elementos estruturais da página com o uso das tags semânticas.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
Usando os Elementos Semânticos&lt;/h3&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Vamos agora entender quais são os elementos semânticos do HTML5 e suas respectivas funções. No final, veremos um exemplo completo, usando todos os elementos em seu contexto.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h4&gt;
&amp;lt;header&amp;gt;&lt;/h4&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Representa o título ou cabeçalho de uma página ou de uma seção dentro de uma página.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h4&gt;
&amp;lt;hgroup&amp;gt;&lt;/h4&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Um grupo de &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;headers&lt;/span&gt;.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h4&gt;
&amp;lt;nav&amp;gt;&lt;/h4&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Usando para agrupar elementos de navegação. Por exemplo, um menu a ser apresentado na parte superior da tela.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h4&gt;
&amp;lt;article&amp;gt;&lt;/h4&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Um artigo compreende uma área principal da página, com conteúdo relevante. Um exemplo de candidato a&amp;nbsp;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;article &lt;/span&gt;é um post de um blog. Uma mesma página pode conter vários &lt;i&gt;articles &lt;/i&gt;(de fato, qualquer elemento semântico pode aparecer várias vezes numa mesma página).&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h4&gt;
&amp;lt;section&amp;gt;&lt;/h4&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Representa uma unidade de conteúdo distinto. Se o post de blog que criamos com o elemento &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;article&lt;/span&gt; contém diversas partes distintas, cada uma delas pode ser representada por uma &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;section&lt;/span&gt;.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h4&gt;
&amp;lt;figure&amp;gt;&lt;/h4&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Adivinha? Representa ma figura.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h4&gt;
&amp;lt;figcaption&amp;gt;&lt;/h4&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Representa a legenda de um elemento &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;figure&lt;/span&gt;.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h4&gt;
&amp;lt;aside&amp;gt;&lt;/h4&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Compreende pequenas seções de conteúdo que não fazem parte do fluxo principal da página. Por exemplo, um anúncio.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h4&gt;
&amp;lt;mark&amp;gt;&lt;/h4&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Define conteúdo que deve ser destacado. É a caneta marca-texto verde florescente do HML5.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h4&gt;
&amp;lt;progress&amp;gt;&lt;/h4&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Mostra o progresso de uma tarefa.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h4&gt;
&amp;lt;footer&amp;gt;&lt;/h4&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Representa o rodapé de uma seção da página ou da própria página.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;
Juntando as Peças: Um exemplo completo&lt;/h3&gt;
&lt;div&gt;
&lt;b&gt;&lt;i&gt;e feio. Vai ficar bonito num post subsequente, quando falarmos de CSS3!&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Nesse exemplo, criamos uma página que engloba todos os elementos semânticos. Salve esse código num arquivo .html e abra em diversos browsers diferentes. Veja que alguns browsers oferecem uma formatação padrão para alguns desses elementos, buscando destacar a função semântica de cada um dentro da página.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
É claro que essa formatação padrão é bastante pobre em comparação com o que esperamos de uma página pronta para produção. Mas leve em consideração que da mesma forma que o browser é capaz de distinguir o &quot;significado&quot; das diferentes partes da página usando a semântica das tags, mecanismos de busca e leitores de tela também serão capazes de fazê-lo com a mesma facilidade.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Chega de enrolação. Hora do código:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;lt;html&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;lt;head&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;meta charset=&quot;utf-8&quot;/&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;title&amp;gt;Um Exemplo de Tags Semânticas&amp;lt;/title&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;lt;body&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;header&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;h1&amp;gt;Esse é o título da página!&amp;lt;/h1&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;/header&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;nav&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;a href=&quot;#&quot;&amp;gt;Home&amp;lt;/a&amp;gt; |&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;a href=&quot;#&quot;&amp;gt;Link 1&amp;lt;/a&amp;gt; |&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;a href=&quot;http://www.vidadeprogramador.com.br&quot;&amp;gt;Pra Descontrair...&amp;lt;/a&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;/nav&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;article&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;header&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;hgroup&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;lt;h2&amp;gt;Título Principal de um Arigo Qualquer&amp;lt;/h1&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;lt;h3&amp;gt;Junto com um subtítulo&amp;lt;/h3&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;/hgroup&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;/header&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;section&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;header&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;lt;h4&amp;gt;Título da Primeira Seção do Artigo&amp;lt;/h4&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;/header&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;p&amp;gt;Um parágrafo da seção que contém &amp;lt;mark&amp;gt;um trecho de texto que deve ser destacado!!!!!&amp;lt;/mark&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;p&amp;gt;Um outro parágrafo, que contém uma figura (veja!)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;lt;figure&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;&amp;lt;img src=&quot;http://www.pudim.com.br/SiteBuilder/UploadUsers/pudim.com.br/pudim.jpg&quot; alt=&quot;Conheça o pudim!&quot;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;lt;/figure&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;lt;figcaption&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;&amp;lt;a href=&quot;http://www.pudim.com.br/&quot;&amp;gt;Conheça o Pudim!&amp;lt;/a&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;lt;/figcaption&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;section&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;header&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;lt;h4&amp;gt;Título da Segunda Seção do Artigo&amp;lt;/h4&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;/header&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;p&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;Lorem ipsum sit dolor amet...&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;footer&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;Algumas notas de rodapé para nosso artigo&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;/footer&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;/article&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;aside&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;p&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;Você pode colocar uns anúncios aqui...&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;p&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;... ou uma barra de progresso!!! &amp;lt;progress value=&quot;22&quot; max=&quot;100&quot;&amp;gt;&amp;lt;/progress&amp;gt; (mas por quê você faria isso???)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;/aside&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;footer&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;E finalmente um rodapé para nossa página... :) &amp;lt;br/&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;(aquela mensagem de copyright que ninguém vai ler pode vir aqui!)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;/footer&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;
Uma nota sobre DOCTYPE e Charset&lt;/h3&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Repare que na especificação do HTML5 a declaração do DOCTYPE no começo da página ficou muito mais simples. Para um comparativo das declarações de DOCTYPE entre as diferentes especificações do HTML veja o site do W3Schools&amp;nbsp;&lt;a href=&quot;http://www.w3schools.com/tags/tag_doctype.asp&quot;&gt;aqui!&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://gustavosiqueira.blogspot.com/feeds/4734285077357359328/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://gustavosiqueira.blogspot.com/2015/07/usando-os-elementos-semanticos-do-html-5.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9208835150095134262/posts/default/4734285077357359328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9208835150095134262/posts/default/4734285077357359328'/><link rel='alternate' type='text/html' href='http://gustavosiqueira.blogspot.com/2015/07/usando-os-elementos-semanticos-do-html-5.html' title='Usando os elementos semânticos do HTML 5'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/05000806084379664958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9208835150095134262.post-4235949148354706496</id><published>2012-06-13T19:17:00.000-03:00</published><updated>2012-06-19T18:28:30.733-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="jQuery"/><category scheme="http://www.blogger.com/atom/ns#" term="jQuery multiple selector"/><category scheme="http://www.blogger.com/atom/ns#" term="jQuery selector"/><category scheme="http://www.blogger.com/atom/ns#" term="multiplas classes"/><title type='text'>Dicas rápidas de jQuery: Selecionando múltiplas classes de uma vez</title><content type='html'>Considere uma página com os seguintes elementos:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;lt;input type=&quot;text&quot; class=&quot;classe1&quot; id=&quot;txtNome&quot; /&amp;gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;lt;input type=&quot;text&quot; class=&quot;classe2&quot; id=&quot;txtSobrenome&quot; /&amp;gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;lt;input type=&quot;text&quot; class=&quot;classe3&quot; id=&quot;txtTelefone&quot; /&amp;gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;lt;input type=&quot;text&quot; class=&quot;classe4&quot; id=&quot;txtEndereco&quot; /&amp;gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;lt;input type=&quot;text&quot; class=&quot;classe1 classe2 classe3&quot; id=&quot;txtEmail&quot; /&amp;gt;&amp;nbsp;
&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;lt;input type=&quot;text&quot; class=&quot;classe1 classe2 classe4&quot; id=&quot;txtEmail&quot; /&amp;gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Por vezes, em nossos projetos, queremos aplicar uma regra, efeito ou comportamento a elementos de várias classes ao mesmo tempo. Imagine que queremos, no exemplo acima, limpar o conteúdo de todas as caixas de texto que implementem as classes: classe1, classe2 e classe3.&lt;br /&gt;
&lt;br /&gt;
Em vez de escrever:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
$(&#39;classe1&#39;).val(&#39;&#39;);&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
$(&#39;classe2&#39;).val(&#39;&#39;);&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
$(&#39;classe3&#39;).val(&#39;&#39;);&lt;/div&gt;
&lt;br /&gt;
podemos usar um seletor com diversas classes, reduzindo o código acima a:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
$(&#39;classe1, .classe2, .classe3&#39;).val(&#39;&#39;);&lt;/div&gt;
&lt;br /&gt;
E caso queiramos limpar todos os elementos que implementam, ao mesmo tempo, as classes classe1, classe2 e classe3, utilizamos a seguinte sintaxe:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
$(&#39;classe1.classe2.classe3&#39;).val(&#39;&#39;);&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
No primeiro exemplo limpamos o conteúdo de todas as caixas de texto, exceto a &lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;txtEndereco&lt;/span&gt;, porque à exceção dela, todas implementam pelo menos uma das três classes que informamos ao seletor.&lt;br /&gt;
&lt;br /&gt;
Já no segundo caso, apenas a &lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;txtEmail &lt;/span&gt;será selecionada, porque é a única que implementa as três classes simultaneamente.</content><link rel='replies' type='application/atom+xml' href='http://gustavosiqueira.blogspot.com/feeds/4235949148354706496/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://gustavosiqueira.blogspot.com/2012/06/dicas-rapidas-de-jquery-selecionando.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9208835150095134262/posts/default/4235949148354706496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9208835150095134262/posts/default/4235949148354706496'/><link rel='alternate' type='text/html' href='http://gustavosiqueira.blogspot.com/2012/06/dicas-rapidas-de-jquery-selecionando.html' title='Dicas rápidas de jQuery: Selecionando múltiplas classes de uma vez'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/05000806084379664958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>São Paulo, Brasil</georss:featurename><georss:point>-23.5489433 -46.6388182</georss:point><georss:box>-24.014749300000002 -47.270532200000005 -23.0831373 -46.0071042</georss:box></entry><entry><id>tag:blogger.com,1999:blog-9208835150095134262.post-3880423621159334914</id><published>2012-01-06T17:49:00.000-02:00</published><updated>2012-01-06T17:50:56.085-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><category scheme="http://www.blogger.com/atom/ns#" term="e-mail"/><title type='text'>Enviando e-mail com C#</title><content type='html'>&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Olá pessoal!&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Neste post, vamos mostrar como enviar uma mensagem de e-mail utilizando C#.&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;As classes que utilizaremos estão nos namespaces System.Net e System.Net.Mail. Tenha certeza de tê-las referenciado:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;using System.Net;&lt;/div&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;using System.Net.Mail;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;No exemplo, vou usar as configurações para envio usando uma conta do GMail. Vamos ao código:&lt;/div&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SmtpClient client = new SmtpClient(&quot;smtp.gmail.com&quot;, 587);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; client.EnableSsl = true;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; MailAddress remetente = new MailAddress(&quot;seu.email@gmail.com&quot;, &quot;Seu Nome&quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; MailAddress destinatario = new MailAddress(&quot;email.do.destinatario@qualquercoisa.com&quot;, &quot;Nome do Destinatário&quot;);&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; MailMessage message = new MailMessage(remetente, destinatario);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; message.Body = &quot;Acesse gustavosiqueira.blogspot.com&quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; message.Subject = &quot;Enviando email com C#&quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; NetworkCredential credential = new NetworkCredential(&quot;seu.email@gmail.com&quot;, senha.do.email&quot; );&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; client.Credentials = credential;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; client.Send(message);&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
Seguindo o código passo-a-passo:&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;ul style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;li&gt;Criamos uma instância da classe &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;SmtpClient&lt;/span&gt;, que implementa o envio de e-mails pelo protocolo SMTP. No construtor, passamos o endereço do servidor de saída e a porta de saída que nosso serviço de e-mail utiliza (smtp.gmail.com e porta 587, para o caso do GMail);&lt;/li&gt;
&lt;li&gt;Como o GMail requer o uso de SSL para envio de e-mails, definimos a propriedade &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;EnableSSL &lt;/span&gt;para true;&lt;/li&gt;
&lt;li&gt;Criamos dois objetos &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;MailAdress &lt;/span&gt;(endereço de email). Um com os dados do remetente e outro com os dados do destinatário;&lt;/li&gt;
&lt;li&gt;Criamos um objeto &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;MailMessage&lt;/span&gt;, que representa a mensagem de e-mail propriamente dita. No construtor já podemos passar os &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;MailAddress &lt;/span&gt;do remetente e do destinatário. O corpo da mensagem foi definido na propriedade &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;Body&lt;/span&gt;, e o assunto do e-mail na propriedade &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;Subject&lt;/span&gt;;&lt;/li&gt;
&lt;li&gt;Criamos uma &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;NetworkCredential&lt;/span&gt; com login e senha de nossa conta de e-mail. Passamos essas credenciais ao nosso objeto &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;SmtpClient&lt;/span&gt;;&lt;/li&gt;
&lt;li&gt;Por fim, usamos o método &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;Send &lt;/span&gt;do &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;SmtpClient &lt;/span&gt;para enviar a mensagem.&lt;/li&gt;
&lt;/ul&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;E está feito! Em breve, o post que fiquei devendo sobre introdução ao Ajax com Asp.Net!&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;Abraços a todos!&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://gustavosiqueira.blogspot.com/feeds/3880423621159334914/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://gustavosiqueira.blogspot.com/2012/01/enviando-e-mail-com-c.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9208835150095134262/posts/default/3880423621159334914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9208835150095134262/posts/default/3880423621159334914'/><link rel='alternate' type='text/html' href='http://gustavosiqueira.blogspot.com/2012/01/enviando-e-mail-com-c.html' title='Enviando e-mail com C#'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/05000806084379664958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9208835150095134262.post-2290945536610943970</id><published>2011-12-27T18:27:00.000-02:00</published><updated>2012-06-19T18:29:50.837-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Asp.Net"/><category scheme="http://www.blogger.com/atom/ns#" term="EntityFramework"/><category scheme="http://www.blogger.com/atom/ns#" term="Linq"/><category scheme="http://www.blogger.com/atom/ns#" term="ObjectContext"/><category scheme="http://www.blogger.com/atom/ns#" term="ORM"/><title type='text'>Asp.net com EntityFramework: Gerenciando o ciclo de vida do ObjectContext</title><content type='html'>&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;
Olá, pessoal!&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;
Uma dúvida relativamente comum pra quem está começando a usar o Entity Framework em projetos Asp.Net diz respeito ao gerenciamento do ciclo de vida dos objetos &lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;ObjectContext&lt;/span&gt;.&lt;/div&gt;
&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;
Qual é a forma correta de gerenciá-los? Em que momento devem ser criados ou destruídos? Por um lado, é muito custoso instanciar um novo contexto toda hora. Você não poderia, por exemplo, criar um a cada método que requeira o uso de um ObjectContext. Por outro, também não podemos simplesmente criar um ObjectContext e deixá-lo viver na memória por toda a sessão de um usuário, ou por todo o ciclo de vida da aplicação.&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;
Uma abordagem amplamente aceita para balancear a quantidade de objetos criados e o tempo de vida de cada um deles é criar um ObjectContext para cada &lt;i&gt;request&lt;/i&gt; do Asp.net. Assim, no início de cada request instanciamos um novo ObjectContext, e o destruímos no final da request.&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Fazemos isso adicionando um &lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;HttpModule &lt;/span&gt;ao nosso projeto, e injetando a lógica de criação/destruição dos ObjectContexts nos eventos &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;BeginRequest&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;e &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;EndRequest&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Abaixo, um exemplo dessa implementação. Lembre-se de referenciar o namespace &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;System.Web&lt;/span&gt;.&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;public class ContextManagerModule : IHttpModule&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public void Init(HttpApplication application)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; application.BeginRequest += new EventHandler(BeginRequestHandler);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; application.EndRequest += new EventHandler(EndRequestHandler);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public void BeginRequestHandler(object sender, EventArgs e)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HttpContext.Current.Items[&quot;__DATACONTEXT&quot;] = new EFContext();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public void EndRequestHandler(object sender, EventArgs e)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ((EFContext)HttpContext.Current.Items[&quot;__DATACONTEXT&quot;]).Dispose();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public void Dispose() { }&lt;br /&gt;
}&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Nesse exemplo, EFContext é nossa classe que implementa o ObjectContext do EntityFramework. Substitua pelo nome do ObjectContext do seu projeto.&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Agora, sempre que tiver que acessar o ObjectContext, pode fazê-lo assim:&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;var exemplo = ((EFContext)&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;HttpContext.Current.Items[&quot;__DATACONTEXT&quot;]);&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Não declare esta variável dentro de um using, pois não queremos que o objeto seja destruído antes do final da request.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;O handler que criamos para o evento &lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;BeginRequest &lt;/span&gt;garante que um ObjectContext ficará disponível para uso ao longo do ciclo de vida de cada nova request.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Já o handler que adicionamos no evento &lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;EndRequest &lt;/span&gt;da aplicação garantirá que o ObjectContext será destruído logo ao final da request&lt;span style=&quot;font-size: x-small;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gustavosiqueira.blogspot.com/feeds/2290945536610943970/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://gustavosiqueira.blogspot.com/2011/12/aspnet-com-entityframework-gerenciando.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9208835150095134262/posts/default/2290945536610943970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9208835150095134262/posts/default/2290945536610943970'/><link rel='alternate' type='text/html' href='http://gustavosiqueira.blogspot.com/2011/12/aspnet-com-entityframework-gerenciando.html' title='Asp.net com EntityFramework: Gerenciando o ciclo de vida do ObjectContext'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/05000806084379664958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9208835150095134262.post-6243593503310303930</id><published>2011-12-23T20:14:00.000-02:00</published><updated>2012-06-19T18:44:11.858-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Ajax Framework Failed to Load"/><category scheme="http://www.blogger.com/atom/ns#" term="Ajax Toolkit"/><category scheme="http://www.blogger.com/atom/ns#" term="Asp.Net"/><category scheme="http://www.blogger.com/atom/ns#" term="custom httpmodule"/><category scheme="http://www.blogger.com/atom/ns#" term="httpmodule customizado"/><category scheme="http://www.blogger.com/atom/ns#" term="ScriptManager"/><category scheme="http://www.blogger.com/atom/ns#" term="ScriptResource.axd"/><category scheme="http://www.blogger.com/atom/ns#" term="Sys is not defined"/><category scheme="http://www.blogger.com/atom/ns#" term="WebForm_InitCallback is not defined"/><category scheme="http://www.blogger.com/atom/ns#" term="WebResource.axd"/><title type='text'>Ajax Framework Failed to Load? Sys is not defined? WebForm_InitCallback is not defined? E agora?</title><content type='html'>&lt;span style=&quot;font-size: large;&quot;&gt;Como começou&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Tem um post fresquinho saindo do forno pra esse final de semana, que será uma introdução ao Ajax com Asp.Net.&lt;br /&gt;
&lt;br /&gt;
Mas antes vou comentar um problema que me deu uma baita dor de cabeça essa semana. Vi mil soluções possíveis na internet e nenhuma funcionou pra mim.&lt;br /&gt;
&lt;br /&gt;
Algumas páginas começaram apresentar os seguintes erros:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Ajax Framework Failed to Load&lt;/li&gt;
&lt;li&gt;Sys is not defined&lt;/li&gt;
&lt;li&gt;WebForm_InitCallback is not defined&lt;/li&gt;
&lt;/ul&gt;
Uma investigação rápida mostrou que o WebResources.axd estava retornando conteúdo em branco, em vez dos scripts que normalmente esperaríamos.&lt;br /&gt;
&lt;br /&gt;
As fontes possíveis do problema, conforme discutidas em vários fóruns e blogs, apontavam principalmente para:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;WebFarms;&lt;/li&gt;
&lt;li&gt;Compressão de conteúdo;&lt;/li&gt;
&lt;li&gt;Mapeamento incorreto ou inexistente da extensão .axd no IIS;&lt;/li&gt;
&lt;li&gt;Presença de um HttpModule customizado que estivesse interceptando as requests e &quot;desviando o tiro do alvo&quot; para as url&#39;s com extensão .axd;&lt;/li&gt;
&lt;li&gt;Data/Hora incorretas no servidor (pois é, isso também pode causar esse problema...);&lt;/li&gt;
&lt;li&gt;Ausência da dll do AjaxToolkit na pasta \bin da aplicação&lt;/li&gt;
&lt;li&gt;Instalação corrompida do .Net Framework, sendo necessário reparar a instalação&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&amp;nbsp;Investiguei cada ponto e nenhum desses era aplicável ao projeto que eu tinha em mãos...&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Como eu resolvi&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Antes de tudo, &quot;resolvi&quot; significa &quot;contornei&quot;. Meus .axd&#39;s continuam sem retornar nada...&lt;br /&gt;
&lt;br /&gt;
O que eu fiz, nesse caso, foi alterar a propriedade &quot;EnableCDN&quot; para true em todos os meus objetos ScriptManager.&lt;br /&gt;
&lt;br /&gt;
Com isso, em vez de fazer o download dos scripts a partir do meu próprio IIS (usando os WebResource.axd e ScriptResource.axd), meus objetos ScriptManagers vão procurá-los, antes, na CDN da Microsoft, e baixam os scripts a partir de lá.</content><link rel='replies' type='application/atom+xml' href='http://gustavosiqueira.blogspot.com/feeds/6243593503310303930/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://gustavosiqueira.blogspot.com/2011/12/ajax-framework-failed-to-load-sys-is.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9208835150095134262/posts/default/6243593503310303930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9208835150095134262/posts/default/6243593503310303930'/><link rel='alternate' type='text/html' href='http://gustavosiqueira.blogspot.com/2011/12/ajax-framework-failed-to-load-sys-is.html' title='Ajax Framework Failed to Load? Sys is not defined? WebForm_InitCallback is not defined? E agora?'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/05000806084379664958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9208835150095134262.post-5276054145409456307</id><published>2011-12-14T01:18:00.000-02:00</published><updated>2012-06-19T18:41:53.503-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="custom tables"/><category scheme="http://www.blogger.com/atom/ns#" term="DataTables"/><category scheme="http://www.blogger.com/atom/ns#" term="HTML"/><category scheme="http://www.blogger.com/atom/ns#" term="Javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="jQuery"/><category scheme="http://www.blogger.com/atom/ns#" term="jQuery datatable params"/><category scheme="http://www.blogger.com/atom/ns#" term="jQuery plugin"/><category scheme="http://www.blogger.com/atom/ns#" term="jQuery UI"/><category scheme="http://www.blogger.com/atom/ns#" term="jQuery.dataTable"/><category scheme="http://www.blogger.com/atom/ns#" term="tabelas"/><category scheme="http://www.blogger.com/atom/ns#" term="tables"/><title type='text'>jQuery DataTables Plugin</title><content type='html'>&lt;div class=&quot;western&quot;&gt;
Olá, pessoal!&lt;br /&gt;
&lt;br /&gt;
Pra “aquecer o motor” nesse primeiro post do blog, vamos falar um pouco sobre um plugin muito útil para jQuery, o DataTables.&lt;br /&gt;
&lt;br /&gt;
O DataTables fornece controles avançados de interação para tabelas em HTML. Tudo com umas poucas (pouquíssimas MESMO) linhas de Javascript.&lt;br /&gt;
&lt;br /&gt;
Algumas coisas que o DataTables faz por você (e muito bem):&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div class=&quot;western&quot;&gt;
Paginação de resultados&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;div class=&quot;western&quot;&gt;
Filtragem de dados na tabela&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;div class=&quot;western&quot;&gt;
Ordenação&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;western&quot;&gt;
Além disso, o framework é altamente flexível, e cada detalhe é altamente customizável.&lt;br /&gt;
&lt;br /&gt;
O DataTables também dá suporte ao ThemeRoller, do jQuery UI. Com isso, você pode aplicar às suas tabelas quaisquer temas do ThemeRoller - desde os “pré-fabricados” até os customizados, construídos por você. O que vai poupar um bocado do tempo que você passaria escrevendo CSS.&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
&lt;/div&gt;
&lt;h2 class=&quot;western&quot;&gt;

Mão na massa&lt;/h2&gt;
&lt;div class=&quot;codesnipet-western&quot;&gt;
Chega de conversa. Nada mais explicativo que algumas linhas de código pra mostrar o poder e a versatilidade do DataTables.&lt;br /&gt;
&lt;br /&gt;
Antes de mais nada, você vai precisar baixar a versão mais recente do plugin no site oficial do DataTables: &lt;a href=&quot;http://datatables.net/download/&quot; rel=&quot;nofollow&quot;&gt;http://datatables.net/download/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Agora, crie uma página simples (digamos... HelloDataTables.html), com o seguinte código:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;lt;html&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;head&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;title&amp;gt;Hello DataTables&amp;lt;/title&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/head&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;body&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;table id=&quot;tabela&quot;&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;     &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;thead&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;      &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;          &amp;lt;th&amp;gt;Nome&amp;lt;/th&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;          &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;th&amp;gt;Endereço&amp;lt;/th&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;          &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;th&amp;gt;Telefone&amp;lt;/th&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;          &amp;lt;th&amp;gt;E-mail&amp;lt;/th&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;      &amp;lt;/tr&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/thead&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;lt;tbody&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;   &amp;lt;tr&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;           &amp;lt;td&amp;gt;Fulano da Silva&amp;lt;/td&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;Rua do Fulano da Silva, 1234&amp;lt;/td&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;           &amp;lt;td&amp;gt;(11) 1111-111&amp;lt;/td&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;           &amp;lt;td&amp;gt;fulano@exemplo.com&amp;lt;/td&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;       &amp;lt;/tr&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;   &amp;lt;tr&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;           &amp;lt;td&amp;gt;Beltrano Oliveira&amp;lt;/td&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;           &amp;lt;td&amp;gt;Rua do Beltrano, 4321&amp;lt;/td&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;           &amp;lt;td&amp;gt;(22) 2222-2222&amp;lt;/td&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;           &amp;lt;td&amp;gt;beltrano@exemplo.com&amp;lt;/td&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;       &amp;lt;/tr&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;           &amp;lt;td&amp;gt;Ciclano de Tal&amp;lt;/td&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;           &amp;lt;td&amp;gt;Rua do Ciclano, 100&amp;lt;/td&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;(33)1234-5678&amp;lt;/td&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;           &amp;lt;td&amp;gt;ciclano@exemplo.com&amp;lt;/td&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/tr&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;lt;/tbody&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;lt;/body&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;lt;/html&amp;gt;&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
Sua página deve ficar parecida com isso:&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiItzEGiwq8N42m9EFe1QwURbvCIilYuJXQYmtDpbZq87rtUHJ1mZHlgD3Ia_KCQ0_UTEp0FNZFLrO3PsFu1vP3lidg3k3-kSOShC9WgSVd0Blq_6vCPJu977CsPJ7ey3FK8UGQqmt9p50/s1600/print001.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;261&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiItzEGiwq8N42m9EFe1QwURbvCIilYuJXQYmtDpbZq87rtUHJ1mZHlgD3Ia_KCQ0_UTEp0FNZFLrO3PsFu1vP3lidg3k3-kSOShC9WgSVd0Blq_6vCPJu977CsPJ7ey3FK8UGQqmt9p50/s400/print001.PNG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
Voilá! Temos uma tabela com 3 linhas... 4 colunas... e nenhuma graça! Vamos incrementá-la um pouco usando o DataTables.&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
Primeiro, no final da página (entre as tags &amp;lt;/body&amp;gt; e &amp;lt;/html&amp;gt;) vamos referenciar os scripts do jQuery, jQuery UI e o DataTables:&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;lt;/body&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js&quot; language=&quot;javascript&quot; type=&quot;text/javascript&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js&quot; language=&quot;javascript&quot; type=&quot;text/javascript&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;script src=&quot;jquery.dataTables.min.js&quot; language=&quot;javascript&quot; type=&quot;text/javascript&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;lt;/html&amp;gt;&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;western&quot; style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Certifique-se de copiar o arquivo&lt;b&gt; jquery.dataTables.min.js&lt;/b&gt; para o mesmo diretório onde está o HelloDataTables.html. Este arquivo é parte do pacote que você baixou no site do DataTables. No arquivo compactado com o DataTables, ele se encontra no diretório media\js.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;western&quot; style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Logo após essas referências criaremos o seguinte script:&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;lt;script language=&quot;javascript&quot; type=&quot;text/javascript&quot;&amp;gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; $(document).ready(function() {&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(&#39;#tabela&#39;).dataTable();&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;lt;/script&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot;&gt;
&amp;nbsp; &lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
Abaixo um screenshot de como vai ficar nossa página:&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTq47rJ3hqHkDs0d21suOYL_xg9nVl-AtOT2r9bm3oSYsM5lHYyETM2051BMRkCqjgM01Mi4DH9CWBKkN3Z_PaC2bRd_x1bR2kisp8ZJfW81hDFAlI6ZledUXb9SIJIeZixO-5afVnUvE/s1600/print002.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;225&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTq47rJ3hqHkDs0d21suOYL_xg9nVl-AtOT2r9bm3oSYsM5lHYyETM2051BMRkCqjgM01Mi4DH9CWBKkN3Z_PaC2bRd_x1bR2kisp8ZJfW81hDFAlI6ZledUXb9SIJIeZixO-5afVnUvE/s400/print002.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
Perceba que temos um campo de filtro, e podemos controlar também quantos resultados queremos em cada página. Podemos ordenar os resultados clicando nos cabeçalhos de cada coluna.&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
Temos paginação, ordenação dinâmica dos resultados e filtro, e escrevemos apenas uma linha de Javascript, invocando o método dataTable() para nossa tabela!&amp;nbsp; &lt;/div&gt;
&lt;h2 class=&quot;western&quot;&gt;

Melhorando a aparência&lt;/h2&gt;
&lt;div class=&quot;western&quot; style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Voilá outra vez! Agora temos como ordenar, filtrar e paginar nossa tabela. Que continua não tendo graça nenhuma. Então vamos partir pra outra funcionalidade do DataTables e aplicar um tema do ThemeRoller.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Vamos usar um tema pronto. Para isso, vá até &lt;a href=&quot;http://jqueryui.com/themeroller/#themeGallery&quot; rel=&quot;nofollow&quot;&gt;http://jqueryui.com/themeroller/#themeGallery&lt;/a&gt;.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Na lista de temas que aparece do lado esquerdo da página, clique no botão “Download” de qualquer um deles. Em nosso exemplo, vamos usar o tema “UI Lightness”, mas você pode seguir o tutorial com qualquer um deles.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Vamos incluir a seguinte linha dentro do head da HelloDataTable.html para referenciar a folha de estilos customizada com o nosso tema:&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;link href=&quot;jquery-ui-1.8.16.custom.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&amp;gt;&lt;/div&gt;
&lt;div class=&quot;western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;western&quot; style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Este arquivo, &lt;b&gt;jquery-ui-1.8.16.custom.css&lt;/b&gt;, está no arquivo compactado que você baixou com seu tema do ThemeRoller. Procure-o em \css\ui-lightness (troque &quot;ui-lightess&quot; pelo nome do seu tema, caso tenha baixado outro).&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;western&quot; style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;E vamos modificar a linha que cria nosso DataTable. Onde estava:&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
$(&#39;#tabela&#39;).dataTable();&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
Vai ficar:&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
$(&#39;#tabela&#39;).dataTable({&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;bJQueryUI&quot;: true&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
});&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
Definir o parâmetro “bJQueryUI” para “true” instrui o DataTables a utilizar os temas do ThemeRoller.&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
Começa a ficar apresentável, mas ainda está estranho...&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
Vamos fazer alguns ajustes em nossa página. Primeiro, vamos criar um arquivo chamado exemplo.css, e vamos estilizar um pouco nossa página. O conteúdo do arquivo será o seguinte:&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
*&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
{&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
font-family: Sans-Serif;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
font-size: 10pt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
}&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
body&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
{&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
margin: 20px 0 0 0;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
padding: 0;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
text-align: center;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
}&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
#wrapper&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
{&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
width: 700px;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
margin: 0px auto;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
text-align: left;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
padding: 5px;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
}&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
#tabela&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
{&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
width: 700px;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
}&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;notas-à-margem-western&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
E vamos incluir uma referência a nosso arquivo CSS no cabeçalho da página, logo abaixo da referência à folha de estilos do nosso tema.&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;lt;link href=&quot;exemplo.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
Finalmente, vamos envolver todo o conteúdo da página com um &amp;lt;div&amp;gt;.&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;lt;div id=&quot;wrapper&quot;&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
… conteúdo da página ...&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
Agora, nossa página tem a seguinte aparência:&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;western&quot; style=&quot;text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzi23AxOzQJ6cWnsMMnD82G5b6QC2LZrggmA58yM2P1GLQFMWNO0sCe97culcPiSuVEsN14wG82Vgi4AlmJMbYDe9ORcfw_iLJy1uZHDIZzycFBYbwj3ln8kQGO7HJrR8dZc1eYH4lhmY/s1600/print003.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;255&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzi23AxOzQJ6cWnsMMnD82G5b6QC2LZrggmA58yM2P1GLQFMWNO0sCe97culcPiSuVEsN14wG82Vgi4AlmJMbYDe9ORcfw_iLJy1uZHDIZzycFBYbwj3ln8kQGO7HJrR8dZc1eYH4lhmY/s400/print003.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt; &lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
Abaixo, todo o código-fonte da página até agora:&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;lt;html&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;lt;head&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;lt;title&amp;gt;Hello DataTables&amp;lt;/title&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;lt;link href=&quot;jquery-ui-1.8.16.custom.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;lt;link href=&quot;exemplo.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;lt;/head&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;lt;body&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div id=&quot;wrapper&quot;&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;table id=&quot;tabela&quot;&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;     &amp;lt;thead&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;          &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;th&amp;gt;Nome&amp;lt;/th&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;          &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;th&amp;gt;Endereço&amp;lt;/th&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;          &amp;nbsp;&amp;nbsp;&amp;nbsp;          &amp;lt;th&amp;gt;Telefone&amp;lt;/th&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;          &amp;nbsp;&amp;nbsp;&amp;nbsp;          &amp;lt;th&amp;gt;E-mail&amp;lt;/th&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/thead&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tbody&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;   &amp;lt;tr&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;          &amp;lt;td&amp;gt;Fulano da Silva&amp;lt;/td&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;          &amp;lt;td&amp;gt;Rua do Fulano da Silva, 1234&amp;lt;/td&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;                    &amp;lt;td&amp;gt;(11) 1111-111&amp;lt;/td&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;                    &amp;lt;td&amp;gt;fulano@exemplo.com&amp;lt;/td&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;                    &amp;lt;td&amp;gt;Beltrano Oliveira&amp;lt;/td&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;                    &amp;lt;td&amp;gt;Rua do Beltrano, 4321&amp;lt;/td&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;                    &amp;lt;td&amp;gt;(22) 2222-2222&amp;lt;/td&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;                    &amp;lt;td&amp;gt;beltrano@exemplo.com&amp;lt;/td&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;                    &amp;lt;td&amp;gt;Ciclano de Tal&amp;lt;/td&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;                    &amp;lt;td&amp;gt;Rua do Ciclano, 100&amp;lt;/td&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;                    &amp;lt;td&amp;gt;(33)1234-5678&amp;lt;/td&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;                    &amp;lt;td&amp;gt;ciclano@exemplo.com&amp;lt;/td&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tbody&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/table&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/div&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;lt;/body&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js&quot; language=&quot;javascript&quot; type=&quot;text/javascript&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js&quot; language=&quot;javascript&quot; type=&quot;text/javascript&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;lt;script src=&quot;jquery.dataTables.min.js&quot; language=&quot;javascript&quot; type=&quot;text/javascript&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;lt;script language=&quot;javascript&quot; type=&quot;text/javascript&quot;&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  $(document).ready(function() {&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  $(&#39;#tabela&#39;).dataTable({&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;      &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &quot;bJQueryUI&quot;: true&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  });&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
});&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;lt;/script&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;lt;/html&amp;gt;&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;/div&gt;
&lt;h2 class=&quot;western&quot;&gt;

Algumas melhorias a mais...&lt;/h2&gt;
&lt;div class=&quot;western&quot;&gt;
Além do parâmetro “bJQueryUI” que usamos antes, o DataTables expõe uma infinidade de outros parâmetros que podemos utilizar para modificar a aparência e o comportamento de nossas tabelas.&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
Abaixo, vamos usar alguns deles para completar nosso exemplo.&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
Podemos controlar a forma como o DataTables paginará nossas tabelas. Alguns parâmetros importantes nessa configuração são:&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.blogger.com/post-edit.g?blogID=9208835150095134262&amp;amp;postID=5276054145409456307&amp;amp;from=pencil&quot; name=&quot;bLengthChange&quot;&gt;&lt;/a&gt;bLengthChange: Define se o usuário pode alterar a quantidade de registros exibidos por página. Vamos usar “false” em nosso exemplo;&lt;/li&gt;
&lt;li&gt;bfilter: Define se os resultados podem ser filtrados. Vamos deixar os filtros habilitados em nosso exemplo;&lt;/li&gt;
&lt;li&gt;iDisplayLength: Define a quantidade de registros exibidos por página. Vamos usar “10” em nosso exemplo;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;western&quot;&gt;
Você provavelmente notou um problema com nossa tabela... Todas as mensagens estão em inglês! O DataTables expõe várias propriedades para internacionalização, de modo que possamos customizar ou traduzir essas mensagens conforme a nossa necessidade.&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
Vamos a algumas dessas propriedades:&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.blogger.com/post-edit.g?blogID=9208835150095134262&amp;amp;postID=5276054145409456307&amp;amp;from=pencil&quot; name=&quot;oLanguage.sSearch&quot;&gt;&lt;/a&gt;oLanguage.sSearch: Define o label do campo de busca (filtro) da tabela. Vamos usar “Pesquisar” em nosso exemplo.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.blogger.com/post-edit.g?blogID=9208835150095134262&amp;amp;postID=5276054145409456307&amp;amp;from=pencil&quot; name=&quot;oLanguage.sInfo&quot;&gt;&lt;/a&gt;oLanguage.sInfo : Mostra quantos resultados estão sendo exibidos na tabela.&lt;/li&gt;
&lt;li&gt;oLanguage.sEmptyTable : Mensagem que será mostrada se a tabela não tiver registros.&lt;/li&gt;
&lt;li&gt;oLanguage.sInfoFiltered: Mensagem que notifica que os resultados da tabela foram filtrados. Vamos deixar em branco em nosso exemplo.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;western&quot;&gt;
Portanto, o construtor de nossa tabela ficará assim:&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
$(&#39;#tabela&#39;).dataTable({&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;bJQueryUI&quot;: true,&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;bLengthChange&quot; : false,&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;iDisplayLength&quot; : 10,&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;  &quot;oLanguage&quot;: {&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;   &quot;sInfo&quot;: &quot;Mostrando registros de _START_ a _END_ de um total de _TOTAL&quot;,&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;sInfoEmpty&quot;: &quot;Nenhum registro para exibir&quot;,&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;   &quot;sSearch&quot; : &quot;Pesquisar&quot;,&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;   &quot;sInfoFiltered&quot; : &quot;&quot;&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;  }&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
});&lt;/div&gt;
&lt;div class=&quot;codesnipet-western&quot; style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;western&quot;&gt;
Agora, nossa página deve ter a seguinte aparência:&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrJIJqwG6pIs0CdUNC3NkjRHyntXtpFEs48OOWHVxXQ2VY2gakG-j24-qfCwMSorp0kQyNE0-fOya_k1ug-M9g4NKOX0vxlcJk7eRlokP1bcYwwScjtEk4cT9Ryl3K9kxx1sQygw9DKyo/s1600/print004.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;152&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrJIJqwG6pIs0CdUNC3NkjRHyntXtpFEs48OOWHVxXQ2VY2gakG-j24-qfCwMSorp0kQyNE0-fOya_k1ug-M9g4NKOX0vxlcJk7eRlokP1bcYwwScjtEk4cT9Ryl3K9kxx1sQygw9DKyo/s400/print004.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
&lt;/div&gt;
&lt;h2 class=&quot;western&quot;&gt;

Para saber mais...&lt;/h2&gt;
&lt;div class=&quot;western&quot;&gt;
Esta é apenas uma pequena amostra das capacidades do DataTables. Você pode fazer muito mais com este plugin.&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
A documentação do DataTables é bem completa, e vale a pena gastar algum tempo vendo as propriedades e eventos disponíveis, e testando alguns deles para incrementar nosso exemplo.&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
&lt;a href=&quot;http://datatables.net/index&quot; rel=&quot;nofollow&quot;&gt;http://datatables.net/index&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
Até a próxima! &lt;/div&gt;
&lt;div class=&quot;western&quot;&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gustavosiqueira.blogspot.com/feeds/5276054145409456307/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://gustavosiqueira.blogspot.com/2011/12/jquery-datatables-plugin.html#comment-form' title='6 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9208835150095134262/posts/default/5276054145409456307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9208835150095134262/posts/default/5276054145409456307'/><link rel='alternate' type='text/html' href='http://gustavosiqueira.blogspot.com/2011/12/jquery-datatables-plugin.html' title='jQuery DataTables Plugin'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/05000806084379664958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiItzEGiwq8N42m9EFe1QwURbvCIilYuJXQYmtDpbZq87rtUHJ1mZHlgD3Ia_KCQ0_UTEp0FNZFLrO3PsFu1vP3lidg3k3-kSOShC9WgSVd0Blq_6vCPJu977CsPJ7ey3FK8UGQqmt9p50/s72-c/print001.PNG" height="72" width="72"/><thr:total>6</thr:total></entry></feed>