<?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>Tecnologia de Programação 1 e 2 (2009) &#187; exercícios</title>
	<atom:link href="http://www.brunocampagnolo.com/2009tp/category/exercicios/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.brunocampagnolo.com/2009tp</link>
	<description>PUCPR &#62; Bacharelado em Sistemas de Informação &#62; 3o e 4o Períodos</description>
	<lastBuildDate>Fri, 18 Dec 2009 10:40:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Exercício O06 &#8211; ASP.NET Ajax</title>
		<link>http://www.brunocampagnolo.com/2009tp/2009/11/14/exercicio-o06-asp-net-ajax/</link>
		<comments>http://www.brunocampagnolo.com/2009tp/2009/11/14/exercicio-o06-asp-net-ajax/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 12:40:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[exercícios]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[ASP.NET Ajax]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009tp/?p=559</guid>
		<description><![CDATA[Este é um exercício opcional, entretanto, sua entrega garante um máximo de:
- 1 ponto extra em sua Prova 4;
- 4 pontos de guarda em sua Prova 4 (ou seja, você pode tirar no mínimo 4 em sua prova).
Sua entrega, via Eureka, deve ser feita em uma pasta já criada no módulo Arquivos até o dia [...]]]></description>
			<content:encoded><![CDATA[<p>Este é um exercício opcional, entretanto, sua entrega garante um máximo de:<br />
- 1 ponto extra em sua Prova 4;<br />
- 4 pontos de guarda em sua Prova 4 (ou seja, você pode tirar no mínimo 4 em sua prova).</p>
<p>Sua entrega, via Eureka, deve ser feita em uma pasta já criada no módulo Arquivos até o dia anterior à prova (25/11). Deixe seu arquivo público, ou seja, seus colegas de sala devem conseguir acessá-lo.</p>
<p>Neste exercício, desenvolveremos, <strong>de maneira colaborativa</strong>, exemplos relacionados ao framework ASP.NET Ajax.</p>
<p>1) Escolha um dos componentes do ASP.NET Ajax listados no link abaixo:<br />
<a href="http://spreadsheets.google.com/viewform?formkey=dDJpYW1mZXlSYWlsZVJ0TTRPRkhaelE6MA">http://spreadsheets.google.com/viewform?formkey=dDJpYW1mZXlSYWlsZVJ0TTRPRkhaelE6MA</a><br />
Antes de escolher seu componente, verifique se alguém já não o escolheu no link abaixo:<br />
<a href="http://spreadsheets.google.com/ccc?key=0AqQ2GvdPZmGjdDJpYW1mZXlSYWlsZVJ0TTRPRkhaelE&#038;hl=pt_BR">http://spreadsheets.google.com/ccc?key=0AqQ2GvdPZmGjdDJpYW1mZXlSYWlsZVJ0TTRPRkhaelE&#038;hl=pt_BR</a>.</p>
<p>2) Para o componente escolhido, faça uma página que seja a tradução da documentação disponível em:<br />
<a href="http://www.asp.net/AJAX/AjaxControlToolkit/Samples/">http://www.asp.net/AJAX/AjaxControlToolkit/Samples/</a><br />
Por exemplo, se você escolher o componente Accordion, deve fazer a tradução da página:<br />
<a href="http://www.asp.net/AJAX/AjaxControlToolkit/Samples/Accordion/Accordion.aspx">http://www.asp.net/AJAX/AjaxControlToolkit/Samples/Accordion/Accordion.aspx</a></p>
<p>Dica: o projeto que contém a versão em inglês da documentação está disponível em:<br />
<a href="http://ajaxcontroltoolkit.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=33804#DownloadId=85830">http://ajaxcontroltoolkit.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=33804#DownloadId=85830</a></p>
<p>3) Desenvolva mais uma página que contenha um exemplo diferente do exemplo que você traduziu, mas usando o mesmo componente. Coloque também uma explicação sucinta sobre como recriar o exemplo.</p>
<p>4) Por fim, crie uma terceira página com <strong>links </strong>para:<br />
- vídeos;<br />
- tutoriais;<br />
e, <strong>principalmente</strong>,<br />
- bugs<br />
relacionados ao seu componente.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009tp/2009/11/14/exercicio-o06-asp-net-ajax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exercício F13 &#8211; Fechamento da disciplina &#8211; Cemitério</title>
		<link>http://www.brunocampagnolo.com/2009tp/2009/11/12/exercicio-f13-fechamento-da-disciplina-cemiterio/</link>
		<comments>http://www.brunocampagnolo.com/2009tp/2009/11/12/exercicio-f13-fechamento-da-disciplina-cemiterio/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 17:34:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[avisos]]></category>
		<category><![CDATA[exercícios]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009tp/?p=551</guid>
		<description><![CDATA[Pessoal,
Chegamos a nosso último trabalho. Este trabalho é o único item de defesa que será solicitado nesta 4o Parcial.
Sua entrega será no dia 2/12 e defesa no dia 3/12.
Conforme já comentado em classe diversas vezes, a especificação é praticamente a mesma dos exercícios F03 e F06.
Desta vez, porém, não será cobrada a interface Windows Forms, [...]]]></description>
			<content:encoded><![CDATA[<p>Pessoal,</p>
<p>Chegamos a nosso último trabalho. Este trabalho é o único item de defesa que será solicitado nesta 4o Parcial.<br />
Sua entrega será no <strong>dia 2/12</strong> e defesa no dia <strong>3/12</strong>.<br />
Conforme já comentado em classe diversas vezes, a especificação é praticamente a mesma dos exercícios <a href="http://www.brunocampagnolo.com/2009tp/2009/03/28/exercicio-f03-planejador-de-velorio/">F03</a> e <a href="http://www.brunocampagnolo.com/2009tp/2009/07/13/duvidas-trabalho-f06/">F06</a>.<br />
Desta vez, porém, <strong>não será cobrada a interface Windows Forms</strong>, apenas a interface Web em ASP.NET.<br />
Além disso, o banco de dados Oracle deverá ser uma das bases do trabalho.</p>
<p>Algumas dicas referentes ao que será esperado na defesa, <a href="http://spreadsheets.google.com/viewform?formkey=dGRScTYxcVRRN2xEUEVBTmE0NDQzUWc6MA..">além dos requisitos já cobrados anteriormente</a>:<br />
* interface administrativa mínima;<br />
* validações dos campos de inserção e edição;<br />
* qualidade de código: ausência de código SQL na camada de visualização, layout em CSS, nomes de campos, documentação de código.<br />
* testes de autenticação de usuário (login) durante a geração da proposta;<br />
* interface comum às páginas do sistema.</p>
<p>O local de entrega ainda será definido.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009tp/2009/11/12/exercicio-f13-fechamento-da-disciplina-cemiterio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exercício O05 &#8211; Repeater e FormView</title>
		<link>http://www.brunocampagnolo.com/2009tp/2009/10/03/exercicio-o05-repeater-e-formview/</link>
		<comments>http://www.brunocampagnolo.com/2009tp/2009/10/03/exercicio-o05-repeater-e-formview/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 11:14:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[exercícios]]></category>
		<category><![CDATA[exercícioO05]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009tp/?p=502</guid>
		<description><![CDATA[Este é um exercício opcional, não precisa ser entregue ou mostrado.
Entretanto, este exercício servirá de base para nossa prova do 3o Bimestre.
Especificação do Exercício
****
O vídeo gerado em sala vai abaixo:
PARTE 01 do Vídeo de resolução parcial do exercício
 PARTE 02 do Vídeo da resolução parcial do exercício
(salvar as duas partes em uma pasta e descompactar [...]]]></description>
			<content:encoded><![CDATA[<p>Este é um exercício opcional, não precisa ser entregue ou mostrado.</p>
<p>Entretanto, este exercício servirá de base para nossa prova do 3o Bimestre.</p>
<p><a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/10/exercicio_academia.ppt">Especificação do Exercício</a></p>
<p>****</p>
<p>O vídeo gerado em sala vai abaixo:</p>
<p><a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/10/timelapse_2009-10-03_12-48-21.7z.001">PARTE 01 do Vídeo de resolução parcial do exercício</a></p>
<p><a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/10/timelapse_2009-10-03_12-48-21.7z.002"> PARTE 02 do Vídeo da resolução parcial do exercício</a></p>
<p>(salvar as duas partes em uma pasta e descompactar usando o programa 7zip)</p>
<p><a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/10/TesteFormView1.zip">Exemplo gerado em sala</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009tp/2009/10/03/exercicio-o05-repeater-e-formview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exercício F12 &#8211; DAL e TableAdapter</title>
		<link>http://www.brunocampagnolo.com/2009tp/2009/09/24/exercicio-f12-dal-e-tableadapter/</link>
		<comments>http://www.brunocampagnolo.com/2009tp/2009/09/24/exercicio-f12-dal-e-tableadapter/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 23:08:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[exercícios]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009tp/?p=468</guid>
		<description><![CDATA[Você deverá resolver os exercícios abaixo usando a classe TableAdapter para centralizar suas consultas SQL.
1) Crie a tabela TbCategorias com os campos:

id: int, chave primária, auto-incremento;
nome: varchar(50);

2) Crie a tabela TbProdutos com os campos:

id: int, chave primária, auto-incremento;
nome: varchar(50);
quantidade: int;
idcategoria: int

3) Associe a tabela TbCategorias e a tabela TbProdutos a partir do campo idcategoria (chave [...]]]></description>
			<content:encoded><![CDATA[<p>Você deverá resolver os exercícios abaixo usando a classe TableAdapter para centralizar suas consultas SQL.</p>
<p>1) Crie a tabela TbCategorias com os campos:</p>
<ul>
<li>id: int, chave primária, auto-incremento;</li>
<li>nome: varchar(50);</li>
</ul>
<p>2) Crie a tabela TbProdutos com os campos:</p>
<ul>
<li>id: int, chave primária, auto-incremento;</li>
<li>nome: varchar(50);</li>
<li>quantidade: int;</li>
<li>idcategoria: int</li>
</ul>
<p>3) Associe a tabela TbCategorias e a tabela TbProdutos a partir do campo idcategoria (chave estrangeira).</p>
<p>4) Faça uma página (NovaCategoria.aspx) que permita a criação de uma nova categoria.</p>
<p>5) Faça uma página (NovoProduto.aspx) que permita a inserção de um novo produto.</p>
<p>6) Faça uma página (ExcluirCategoria.aspx) que permita a exclusão de uma categoria a partir do id</p>
<p>7) Faça uma página (ExcluirCategoria2.aspx) que permita a exclusão de uma categoria a partir do nome</p>
<p> <img src='http://www.brunocampagnolo.com/2009tp/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> Faça uma página (PesquisarProdutos.aspx) que permita a pesquisa de um produto a partir do nome ou de parte dele.</p>
<p>9) Faça uma página (PesquisarProduto.aspx) que permita a pesquisa de um produto a partir do id da categoria.</p>
<p>10) Faça uma página (ExcluirTodos.aspx) que permita a exclusão de todos os produtos e de todas as categorias.</p>
<p>11) Faça uma página (ExibirTotal.aspx) que exiba a quantidade total de produtos. Dica: usar operador SUM do SQL.</p>
<p>12) Faça uma página (ExibirTotal2.aspx) que exiba a quantidade total de produtos de uma certa categoria. Dica: usar operador SUM do SQL.</p>
<p>13) Faça uma página (LimparEstoque.aspx) que permita que se limpe todo o estoque de produtos alterando o campo quantidade para valor zero.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009tp/2009/09/24/exercicio-f12-dal-e-tableadapter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exercício F11</title>
		<link>http://www.brunocampagnolo.com/2009tp/2009/09/17/exercicio-f11/</link>
		<comments>http://www.brunocampagnolo.com/2009tp/2009/09/17/exercicio-f11/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 22:32:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[exercícios]]></category>
		<category><![CDATA[exercícioF11]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009tp/?p=465</guid>
		<description><![CDATA[Agora, você vai testar os validadores que conhecemos. Além disso, vamos relembrar o acesso a banco de dados em .Net.
A) No seu exercício de cálculo do IMC, você deve colocar os seguintes campos:

CPF: validado através de um algoritmo qualquer de verificação de CPF (veja exemplos em C# na apresentação referente à aula, ou implemente o [...]]]></description>
			<content:encoded><![CDATA[<p>Agora, você vai testar os validadores que conhecemos. Além disso, vamos relembrar o acesso a banco de dados em .Net.</p>
<p>A) No seu exercício de cálculo do IMC, você deve colocar os seguintes campos:</p>
<ul>
<li>CPF: validado através de um algoritmo qualquer de verificação de CPF (veja exemplos em C# na apresentação referente à aula, ou implemente o seu algoritmo);</li>
<li>Data de Nascimento: deve indicar uma idade maior que 13 anos;</li>
<li>Login: Deve ser único, não pode existir um igual no banco de dados;</li>
<li>Senha: deve possuir pelo menos um número e um caractere especial qualquer (@, #, etc);</li>
<li>Confirmação de senha: Deve ser igual à senha;</li>
<li>CEP: deve ser no formato do CEP brasileiro;</li>
<li>Email: deve ser um email válido;</li>
<li>Url: deve ser uma url válida.</li>
</ul>
<p>B) Armazene em banco cada uma das solicitações de IMC.</p>
<p>Importante: não se preocupe com a listagem dos dados, apenas realize a operação de INSERT.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009tp/2009/09/17/exercicio-f11/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exercício F08 &#8211; Page, Session, Application</title>
		<link>http://www.brunocampagnolo.com/2009tp/2009/08/27/exercicio-f08-page-session-application/</link>
		<comments>http://www.brunocampagnolo.com/2009tp/2009/08/27/exercicio-f08-page-session-application/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 23:04:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[exercícios]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009tp/?p=403</guid>
		<description><![CDATA[A) Você deve implementar uma funcionalidade de login (autenticação de usuário). Crie uma página Login.aspx. Esta página deve possuir uma caixa de login e uma caixa de senha. Após o usuário clicar em um botão, no servidor deve ser feita a verificação se ele pode acessar o site. O usuário deve ter o feedback: &#8220;Acesso [...]]]></description>
			<content:encoded><![CDATA[<p>A) Você deve implementar uma funcionalidade de login (autenticação de usuário). Crie uma página Login.aspx. Esta página deve possuir uma caixa de login e uma caixa de senha. Após o usuário clicar em um botão, no servidor deve ser feita a verificação se ele pode acessar o site. O usuário deve ter o feedback: &#8220;Acesso Negado&#8221;.</p>
<p>No caso de sucesso, o usuário deve ser redirecionado para a página Formulario.aspx.</p>
<p>Nesta página, deve ser exibido o nome do usuário e uma mensagem de Olá.</p>
<p>IMPORTANTE: O objetivo deste exercício é trabalhar com o método Response.Redirect e com o uso de Session. Não utilize os componentes de login e autenticação já prontos.</p>
<p>B) Se o usuário tentar ir para a página Formulario.aspx e não tiver permissão, deve ser redirecionado para a página Erro.aspx, que possui a mensagem &#8220;Acesso Negado!&#8221;.</p>
<p>C) Utilizando a classe Application, implemente um chat em ASP.NET.</p>
<p>Este exercício deve ser mostrado para o Professor até o dia <strong>3/9</strong> no <strong>início da aula</strong>. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009tp/2009/08/27/exercicio-f08-page-session-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exercício F07 &#8211; Desenvolvido em Sala no dia 22/08/2009</title>
		<link>http://www.brunocampagnolo.com/2009tp/2009/08/27/exercicio-f07-desenvolvido-em-sala-no-dia-22082009/</link>
		<comments>http://www.brunocampagnolo.com/2009tp/2009/08/27/exercicio-f07-desenvolvido-em-sala-no-dia-22082009/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 19:11:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[exercícios]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009tp/?p=398</guid>
		<description><![CDATA[Gere uma interface para cálculo do IMC em ASP.NET, dado:
1) Peso
2) Altura
Caso o IMC seja maior que 30, o usuário deve ser avisado que está com sobrepeso.
Este exercício deve ser demonstrado para o Professor até 29/08 no início da aula, não é necessária sua entrega.
]]></description>
			<content:encoded><![CDATA[<p>Gere uma interface para cálculo do IMC em ASP.NET, dado:<br />
1) Peso<br />
2) Altura</p>
<p>Caso o IMC seja maior que 30, o usuário deve ser avisado que está com sobrepeso.</p>
<p>Este exercício deve ser demonstrado para o Professor até <strong>29/08</strong> no início da aula, não é necessária sua entrega.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009tp/2009/08/27/exercicio-f07-desenvolvido-em-sala-no-dia-22082009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exemplo Acesso Serviço SOAP</title>
		<link>http://www.brunocampagnolo.com/2009tp/2009/06/18/exemplo-acesso-servico-soap/</link>
		<comments>http://www.brunocampagnolo.com/2009tp/2009/06/18/exemplo-acesso-servico-soap/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 22:58:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[exercícios]]></category>
		<category><![CDATA[soap]]></category>
		<category><![CDATA[webservices]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009tp/?p=345</guid>
		<description><![CDATA[

// Cria o objeto de WebProxy, passando como parâmetro o endereço do proxy e a porta
            System.Net.WebProxy proxyObject =
                new System.Net.WebProxy(TextBoxProxy.Text, Convert.ToInt32(TextBoxPorta.Text));
        [...]]]></description>
			<content:encoded><![CDATA[<pre name="code" class="c#">

// Cria o objeto de WebProxy, passando como parâmetro o endereço do proxy e a porta
            System.Net.WebProxy proxyObject =
                new System.Net.WebProxy(TextBoxProxy.Text, Convert.ToInt32(TextBoxPorta.Text));
            // Passa o login, a senha e o domínio do WebProxy
            proxyObject.Credentials =
                new System.Net.NetworkCredential(TextBoxLogin.Text, TextBoxSenha.Text, TextBoxDominio.Text);

            cepservice.ConsultaCep s =
                new EsqueletoTemporario.cepservice.ConsultaCep();
            s.Proxy = proxyObject;
            object[] o = s.RetornaValores(80320090);
            MessageBox.Show(o[1].ToString());
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009tp/2009/06/18/exemplo-acesso-servico-soap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exercício O04 &#8211; Acessando Web Services</title>
		<link>http://www.brunocampagnolo.com/2009tp/2009/06/18/exercicio-o04-acessando-web-services/</link>
		<comments>http://www.brunocampagnolo.com/2009tp/2009/06/18/exercicio-o04-acessando-web-services/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 22:05:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[exercícios]]></category>
		<category><![CDATA[web services]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009tp/?p=338</guid>
		<description><![CDATA[Este é um exercício OPCIONAL. Entretanto, um dos exercícios de sua prova do dia 02/7/2009 será baseado neste exercício.
Neste exercício você vai testar o esqueleto de código fornecido, acessando, dentro de seu programa, alguns web services.
Hoje, vamos nos preocupar em CHAMAR os Web Services e TRATAR o resultado obtido.
Referências Gerais

Exemplo de como passar o Web [...]]]></description>
			<content:encoded><![CDATA[<p>Este é um exercício OPCIONAL. Entretanto, um dos exercícios de sua prova do dia <strong>02/7/2009</strong> será baseado neste exercício.</p>
<p>Neste exercício você vai testar o esqueleto de código fornecido, acessando, dentro de seu programa, alguns web services.<br />
Hoje, vamos nos preocupar em CHAMAR os Web Services e TRATAR o resultado obtido.</p>
<h2>Referências Gerais</h2>
<ul>
<li><a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/06/esqueletowindowsforms.zip">Exemplo de como passar o Web Proxy dentro da PUCPR &#8211; Windows Forms</a></li>
<li><a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/06/esqueletoweb.zip">Exemplo de como passar o Web Proxy dentro da PUCPR &#8211; Web</a></li>
<li><a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/06/exemploxmlreader.zip">Exemplos de acesso a conteúdo XML</a>;</li>
</ul>
<h2>Referências Serviços SOAP</h2>
<ul>
<li><a href="http://www.brunocampagnolo.com/2009tp/2009/06/04/aula-26-web-services/">Aula 26</a> &#8211; Web Services</li>
<li><a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/06/soappassoapasso.ppt">Passo a passo de criação e consumo de Web Services &#8211; Serviço de Busca no Google</a>;</li>
</ul>
<h2>Referências Serviços REST / XML</h2>
<ul id="y-:s">
<li id="pmf.0">Google:<br id="a1n1" />
<ul id="eoje">
<li id="a1n10">Explicação sobre o serviço de notícias do Google:
<ul id="of_3">
<li id="eoje0"><a id="n77-" title="http://www.google.com/support/news/bin/answer.py?answer=59255&amp;hl=pt" href="http://www.google.com/support/news/bin/answer.py?answer=59255&amp;hl=pt">http://www.google.com/support/news/bin/answer.py?answer=59255&amp;hl=pt</a></li>
</ul>
</li>
</ul>
<ul id="eoje2">
<li id="eoje1">Exemplo de chamada ao serviço do Google:
<ul id="of_30">
<li id="eoje3"><a id="ruuj" title="http://news.google.com/news?ned=pt-PT_pt&amp;q=Lula&amp;output=rss" href="http://news.google.com/news?ned=pt-PT_pt&amp;q=Lula&amp;output=rss">http://news.google.com/news?ned=pt-PT_pt&amp;q=Lula&amp;output=rss</a></li>
</ul>
</li>
</ul>
</li>
<li id="of_31">Bit.ly:
<ul id="of_32">
<li id="of_33">Explicação sobre o serviço de simplificação de url Bit.Ly:
<ul id="qp_y">
<li id="qp_y0"><a id="oi64" title="http://bit.ly/docs" href="http://bit.ly/docs">http://bit.ly/docs</a></li>
</ul>
</li>
<li id="qp_y1">Exemplo de chamada ao serviço:
<ul id="qp_y2">
<li id="qp_y3"><a id="mh.h" title="http://bit.ly/api?url=http://www.uol.com.br" href="http://bit.ly/api?url=http://www.uol.com.br">http://bit.ly/api?url=http://www.uol.com.br</a></li>
</ul>
</li>
</ul>
</li>
<li id="qp_y4">Wikipedia:
<ul id="qyed">
<li id="qyed0">Explicação sobre o serviço da Wikipedia:
<ul id="qyed1">
<li id="qyed2"><a id="pqau" title="http://en.wikipedia.org/w/api.php" href="http://en.wikipedia.org/w/api.php">http://en.wikipedia.org/w/api.php</a></li>
</ul>
</li>
<li id="qyed3">Exemplo de chamada ao serviço:
<ul id="qyed4">
<li id="qyed5"><a id="wwk9" title="http://pt.wikipedia.org/w/api.php?action=query&amp;list=search&amp;srsearch=Java&amp;format=xml" href="http://pt.wikipedia.org/w/api.php?action=query&amp;list=search&amp;srsearch=Java&amp;format=xml">http://pt.wikipedia.org/w/api.php?action=query&amp;list=search&amp;srsearch=Java&amp;format=xml</a></li>
</ul>
</li>
</ul>
</li>
<li id="vsx1">GeoNames:
<ul id="vsx10">
<li id="vsx11">Explicação sobre o serviço do GeoNames:
<ul id="vsx12">
<li id="vsx13"><a id="tc43" title="http://www.geonames.org/export/web-services.html#timezone" href="http://www.geonames.org/export/web-services.html#timezone">http://www.geonames.org/export/web-services.html#timezone</a></li>
</ul>
</li>
<li id="wf::">Exemplo de chamada ao serviço:
<ul id="wf::0">
<li id="wf::1"><a id="mj:j" title="http://ws.geonames.org/timezone?lat=-25&amp;lng=-49&amp;style=full" href="http://ws.geonames.org/timezone?lat=-25&amp;lng=-49&amp;style=full">http://ws.geonames.org/timezone?lat=-25&amp;lng=-49&amp;style=full</a></li>
</ul>
</li>
</ul>
</li>
<li id="pare">UOL Clipping:
<ul id="pare0">
<li id="pare1">Explicação sobre o serviço do UOL Clipping:
<ul id="pare2">
<li id="pare3"><a id="dxsc" title="http://clipping.busca.uol.com.br/monte.jhtm" href="http://clipping.busca.uol.com.br/monte.jhtm">http://clipping.busca.uol.com.br/monte.jhtm</a></li>
</ul>
</li>
<li id="pare4">Exemplo de chamada ao serviço:
<ul id="pare5">
<li id="pare6"><a id="rm0b" title="http://rss.noticias.busca.uol.com.br/pucpr-vestibular" href="http://rss.noticias.busca.uol.com.br/pucpr-vestibular">http://rss.noticias.busca.uol.com.br/pucpr-vestibular</a></li>
</ul>
</li>
</ul>
</li>
<li id="mbgz">Mapas do Yahoo!:
<ul id="mbgz0">
<li id="mbgz1">Explicação sobre o serviço de imagens de mapa do Yahoo!
<ul id="mbgz2">
<li id="mbgz3"><a id="t2:t" title="http://developer.yahoo.com/maps/rest/V1/" href="http://developer.yahoo.com/maps/rest/V1/">http://developer.yahoo.com/maps/rest/V1/</a></li>
</ul>
</li>
<li id="mbgz4">Exemplo de chamada ao serviço:
<ul id="mbgz5">
<li id="mbgz6"><a id="dggt" title="http://local.yahooapis.com/MapsService/V1/mapImage?appid=YD-4g6HBf0_JX0yq2IsdnV1Ne9JTpKxQ3Miew--&amp;city=Curitiba" href="http://local.yahooapis.com/MapsService/V1/mapImage?appid=YD-4g6HBf0_JX0yq2IsdnV1Ne9JTpKxQ3Miew--&amp;city=Curitiba">http://local.yahooapis.com/MapsService/V1/mapImage?appid=YD-4g6HBf0_JX0yq2IsdnV1Ne9JTpKxQ3Miew&#8211;&amp;city=Curitiba</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<ul id="y-:s">
<li id="jaft"><a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/06/exemploxmlreader.zip">Exemplos de acesso a conteúdo XML &#8211; VER ABAIXO, OS FRAGMENTOS DE CÓDIGO PARA REFERÊNCIA</a>;</li>
<li id="jaft">Exemplo de como ler um arquivo XML <strong id="t0cg">(01-LerArquivoXML.aspx)</strong>:</li>
<li id="jaft0"> using System.Xml;&#8230;<br id="z968" />
<ul id="z9680">
<li id="z9681"> XmlReader reader = XmlReader.Create(Server.MapPath(&#8221;.&#8221;) + &#8220;/Filmoteca.xml&#8221;);<br id="jaft1" /> <br id="jaft2" /> // Percorra cada nó de um arquivo XML<br id="jaft3" /> while (reader.Read())<br id="jaft4" /> {<br id="jaft5" /> Resultado.Text += &#8220;* Nome do Elemento:&#8221; + reader.Name +<br id="jaft6" /> &#8221; Valor do Elemento: &#8221; + reader.Value +<br id="jaft7" /> &#8221; Tipo do Elemento: &#8221; + reader.NodeType + &#8220;&lt;br&gt;&#8221;;<br id="jaft8" /> }</li>
</ul>
</li>
<li id="jaft9"> Exemplo de como extrair uma informação de um arquivo XML (<strong id="nq1i">02-ExibirTituloDeFilme.aspx</strong>):
<ul id="q53y">
<li id="q53y0"> // Configurações de leitura do XML<br id="q53y1" /> XmlReaderSettings settings = new XmlReaderSettings();<br id="q53y2" /> // Ignora comentários<br id="q53y3" /> settings.IgnoreComments = true;<br id="q53y4" /> // Ignora espaços em branco<br id="q53y5" /> settings.IgnoreWhitespace = true;<br id="q53y6" /> // Ignora instruções de processamento<br id="q53y7" /> settings.IgnoreProcessingInstructions = true;<br id="q53y8" /> <br id="q53y9" /> // Cria o leitor de XML<br id="q53y10" /> XmlReader reader = XmlReader.Create(Server.MapPath(&#8221;.&#8221;) + &#8220;/Filmoteca.xml&#8221;, settings);<br id="q53y11" /> <br id="q53y12" /> // Percorra cada nó de um arquivo XML<br id="q53y13" /> while (reader.Read())<br id="q53y14" /> {<br id="q53y15" /> // Se for o nó nome<br id="q53y17" /> if ((reader.Name == &#8220;nome&#8221;) &amp;&amp; (reader.NodeType == XmlNodeType.Element))<br id="q53y18" /> {<br id="q53y19" /> Resultado.Text += reader.ReadString() + &#8220;&lt;br&gt;&#8221;;<br id="q53y22" /> }<br id="q53y23" /> }</li>
</ul>
</li>
<li id="j83l"> Exemplo de como ler o valor de um atributos (<strong id="n72h">03-ExibindoValorAtributo.aspx</strong>):
<ul id="j83l0">
<li id="j83l1"> // Configurações de leitura do XML<br id="j83l2" /> XmlReaderSettings settings = new XmlReaderSettings();<br id="j83l3" /> // Ignora comentários<br id="j83l4" /> settings.IgnoreComments = true;<br id="j83l5" /> // Ignora espaços em branco<br id="j83l6" /> settings.IgnoreWhitespace = true;<br id="j83l7" /> // Ignora instruções de processamento<br id="j83l8" /> settings.IgnoreProcessingInstructions = true;<br id="j83l9" /> <br id="j83l10" /> // Cria o leitor de XML<br id="j83l11" /> XmlReader reader = XmlReader.Create(Server.MapPath(&#8221;.&#8221;) + &#8220;/Filmoteca.xml&#8221;, settings);<br id="j83l12" /> <br id="j83l13" /> <br id="j83l14" /> // Percorra cada nó de um arquivo XML<br id="j83l15" /> while (reader.Read())<br id="j83l16" /> {<br id="j83l17" /> // Se for o nó nome<br id="j83l18" /> //Resultado.Text += reader.Name + &#8220;&lt;br&gt;&#8221;;<br id="j83l19" /> if ((reader.Name == &#8220;filme&#8221;) &amp;&amp; (reader.NodeType == XmlNodeType.Element))<br id="j83l20" /> {<br id="j83l21" /> // Se o reader tiver atributos<br id="j83l22" /> if (reader.HasAttributes)<br id="j83l23" /> {<br id="j83l24" /> Resultado.Text +=  reader["id"] + &#8221; &#8211; &#8220;;<br id="j83l25" /> // Vá lendo até chegar em nome<br id="j83l26" /> reader.ReadToDescendant(&#8221;nome&#8221;);<br id="j83l27" /> Resultado.Text += reader.ReadString() + &#8220;&lt;br&gt;&#8221;;<br id="j83l28" /> // Retorna ao elemento.<br id="j83l29" /> // Necessário quando se trabalha com atributos<br id="j83l30" /> reader.MoveToElement();<br id="j83l31" /> }<br id="j83l32" /> }<br id="j83l33" /> }</li>
</ul>
</li>
</ul>
<h2>Referências Serviços REST / JSON / JSONP</h2>
<ul>
<li><a href="http://docs.jquery.com/Ajax/jQuery.getJSON">http://docs.jquery.com/Ajax/jQuery.getJSON</a></li>
</ul>
<h2>Enunciado</h2>
<ol id="q_1t45">
<li>[Serviços  SOAP] Crie um programa que acesse aos serviços disponíveis nos seguintes endereços. <strong>Preferencialmente</strong>, faça uma página para cada serviço:
<ul>
<li> a) Conversão de Temperatura:</li>
<li>Sugestão de método: ConvertTemp</li>
<li><a id="jkp_" title="http://www.webservicex.net/ConvertTemperature.asmx" href="http://www.webservicex.net/ConvertTemperature.asmx?wsdl">http://www.webservicex.net/ConvertTemperature.asmx</a></li>
<li></li>
</ul>
<ul>
<li> b) Consulta de CEP:
<ul>
<li> <a id="icc." title="http://www.equipea.com.br/consultacep/consultacep.asmx?op=RetornaValores" href="http://www.equipea.com.br/consultacep/consultacep.asmx?op=RetornaValores">http://www.equipea.com.br/consultacep/consultacep.asmx?op=RetornaValores</a></li>
<li>Sugestão de método: RetornaValores</li>
</ul>
</li>
<li> c) Busca de letras de música:
<ul>
<li> <a id="c_aj" title="http://lyricwiki.org/server.php#" href="http://lyricwiki.org/server.php#">http://lyricwiki.org/server.php#</a></li>
<li>Sugestões de métodos: getSongResult, searchArtists, etc.</li>
</ul>
</li>
<li> d) Geração de anagramas:
<ul>
<li> <a id="h.wy" title="http://services.aonaware.com/CountCheatService/CountCheatService.asmx" href="http://services.aonaware.com/CountCheatService/CountCheatService.asmx">http://services.aonaware.com/CountCheatService/CountCheatService.asmx</a></li>
</ul>
</li>
<li> e) Definição de termos:
<ul>
<li> <a id="stvy" title="http://services.aonaware.com/DictService/DictService.asmx" href="http://services.aonaware.com/DictService/DictService.asmx">http://services.aonaware.com/DictService/DictService.asmx</a></li>
<li>Sugestão de método: define</li>
</ul>
</li>
<li>f) Serviço SOAP à sua escolha! Sugestões de busca no Google: SOAP API, SOAP filetype:asmx, SOAP NuSOAP, etc.</li>
</ul>
</li>
<li id="wufm">[Serviço REST - retorno em XML] Crie uma interface de acesso ao serviço de notícias do Google (ver <a href="http://www.google.com/support/news/bin/answer.py?answer=59255&amp;hl=pt">http://www.google.com/support/news/bin/answer.py?answer=59255&amp;hl=pt</a>). Esta interface deve possuir uma caixa de texto na qual o usuário seleciona qual é a palavra-chave a ser procurada e um botão que realiza a busca. Exemplo de chamada ao serviço do Google: <a href="http://news.google.com/news?ned=pt-PT_pt&amp;q=Lula&amp;output=rss">http://news.google.com/news?ned=pt-PT_pt&amp;q=Lula&amp;output=rss</a> . Dessa vez, você deverá exibir como resposta apenas o título do link e o próprio link.</li>
<li id="d10a">[Serviço REST - retorno em XML]  Crie uma interface de acesso ao serviço de consultas à Wikipedia (ver <a href="http://en.wikipedia.org/w/api.php">http://en.wikipedia.org/w/api.php</a>). Chame o método &#8220;list=search&#8221; responsável por, dada uma palavra-chave, realizar uma busca na Wikipedia por termos semelhantes. Esta interface deve possuir uma caixa de texto na qual o usuário seleciona qual é o termo a ser buscado, e um botão que chama o serviço. Exemplo de chamada ao serviço da Wikipedia: <a href="http://pt.wikipedia.org/w/api.php?action=query&amp;list=search&amp;srsearch=Java&amp;format=xml">http://pt.wikipedia.org/w/api.php?action=query&amp;list=search&amp;srsearch=Java&amp;format=xml</a>. Dessa vez, exiba apenas o título dos termos relacionados (atributo title da tag p).</li>
<li id="bs3f">[Serviço REST - retorno em XML]  Crie uma interface de acesso ao serviço de informações geográficas GeoNames (ver <a href="http://www.geonames.org/export/web-services.html">http://www.geonames.org/export/web-services.html</a> e <a href="http://www.geonames.org/export/web-services.html#timezone">http://www.geonames.org/export/web-services.html#timezone</a>). Chame o método &#8220;timezone&#8221;, o qual dada uma coordenada geográfica, retorna qual é a zona horária associada à coordenada. Esta interface deve possuir duas caixas de texto nas quais o usuário indica qual é a latitude e a longitude e um botão que chama o serviço. Exemplo de chamada ao serviço: <a href="http://ws.geonames.org/timezone?lat=-25&amp;lng=-49&amp;style=full">http://ws.geonames.org/timezone?lat=-25&amp;lng=-49&amp;style=full</a>. Dessa vez, exiba o nome do país e a hora atual.</li>
<li id="fuoc">[Serviço REST - retorno em XML]  Crie uma interface de acesso ao serviço de clipping de notícias do UOL (ver <a href="http://clipping.busca.uol.com.br/monte.jhtm">http://clipping.busca.uol.com.br/monte.jhtm</a>). Este serviço permite a busca de notícias a partir de um conjunto de palavras-chave. Sua interface deve possuir, por exemplo, uma caixa de texto com as palavras que devem ser incluídas. Também deve ter um botão de chamada ao serviço. Exemplo de chamada ao serviço:<a href="http://rss.noticias.busca.uol.com.br/pucpr-vestibular"> http://rss.noticias.busca.uol.com.br/pucpr-vestibular</a>. Dessa vez, você deverá exibir como resposta apenas o título do link, o próprio link e a descrição.</li>
<li id="m0-h">[Serviço REST - retorno em XML]  Crie uma interface de acesso ao serviço de imagens de mapa do Yahoo! (ver <a href="http://developer.yahoo.com/maps/rest/V1/">http://developer.yahoo.com/maps/rest/V1/</a>). Este serviço permite o retorno da URL de uma imagem da posição no mapa de uma cidade, endereço, país, etc. Sua interface deve possuir, por exemplo, uma caixa de texto indicando a cidade que está sendo buscada. Também deve ter um botão de chamada ao serviço. Exemplo de chamada ao serviço: <a href="http://local.yahooapis.com/MapsService/V1/mapImage?appid=YD-4g6HBf0_JX0yq2IsdnV1Ne9JTpKxQ3Miew--&amp;city=Curitiba">http://local.yahooapis.com/MapsService/V1/mapImage?appid=YD-4g6HBf0_JX0yq2IsdnV1Ne9JTpKxQ3Miew&#8211;&amp;city=Curitiba</a>. Dessa vez, você deverá exibir como resposta a imagem obtida.  Se preferir usar o serviço de mapas do Google, use o serviço disponível em: <a href="http://code.google.com/apis/maps/documentation/staticmaps/"><span class="textoPadrao">http://code.google.com/apis/maps/documentation/staticmaps/</span></a></li>
<li id="m0-h">[Serviços JSON/JSONP] Crie um programa Web que acesse um dos serviços disponíveis na lista a seguir:  Sorteio de número aleatório -<a href="http://json-random.appjet.net/"> http://json-random.appjet.net/</a>, Extração de informações sobrei imagens &#8211; <a href="http://img2json.appspot.com/">http://img2json.appspot.com/</a>,  Horário &#8211; <a href="http://json-time.appspot.com/">http://json-time.appspot.com/</a>, Informações do cabeçalho HTTP &#8211; <a href="http://json-head.appspot.com/">http://json-head.appspot.com/</a>,  Busca no Twitter &#8211; <a href="http://apiwiki.twitter.com/">http://apiwiki.twitter.com/</a> Twitter-API-Documentation, Informações sobre url &#8211; <a href="http://bit.ly/docs">http://bit.ly/docs</a>,  Banco de dados simplificado &#8211; <a href="http://tinydb.org/">http://tinydb.org/</a>, Yahoo Answers &#8211; <a href="http://developer.yahoo.com/answers/V1/questionSearch.html">http://developer.yahoo.com/answers/V1/questionSearch.html </a>, Geonames &#8211; <a href="http://www.geonames.org/export/JSON-webservices.html">http://www.geonames.org/export/JSON-webservices.html</a>,  Google Planilha &#8211; <a href="http://code.google.com/apis/gdata/samples/spreadsheet_sample.html">http://code.google.com/apis/gdata/samples/spreadsheet_sample.html</a>, Google Agenda &#8211; <a href="http://code.google.com/apis/gdata/samples/cal_sample.html">http://code.google.com/apis/gdata/samples/cal_sample.html</a>,  Yahoo! Artist Search &#8211; <a href="http://developer.yahoo.com/search/audio/V1/artistSearch.html">http://developer.yahoo.com/search/audio/V1/artistSearch.html</a></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009tp/2009/06/18/exercicio-o04-acessando-web-services/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Entrega do Exercício F05 &#8211; Parte 2</title>
		<link>http://www.brunocampagnolo.com/2009tp/2009/06/03/entrega-do-exercicio-f05-parte-2/</link>
		<comments>http://www.brunocampagnolo.com/2009tp/2009/06/03/entrega-do-exercicio-f05-parte-2/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 22:54:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[exercícios]]></category>
		<category><![CDATA[exercícioF05]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009tp/?p=325</guid>
		<description><![CDATA[A pasta de entrega da 2a parte do exercício F05 já foi criada lá no Eureka.
]]></description>
			<content:encoded><![CDATA[<p>A pasta de entrega da 2a parte do exercício F05 já foi criada lá no Eureka.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009tp/2009/06/03/entrega-do-exercicio-f05-parte-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Entrega do Exercício F05 &#8211; Parte 1</title>
		<link>http://www.brunocampagnolo.com/2009tp/2009/05/29/entrega-do-exercicio-f05-parte-1/</link>
		<comments>http://www.brunocampagnolo.com/2009tp/2009/05/29/entrega-do-exercicio-f05-parte-1/#comments</comments>
		<pubDate>Fri, 29 May 2009 18:55:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[exercícios]]></category>
		<category><![CDATA[exercícioF05]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009tp/?p=318</guid>
		<description><![CDATA[Olá, pessoal,
Conforme combinado ontem, deixemos então a entrega do F05 em 2 partes.
A pasta de entrega da 1a parte já foi criada lá no Eureka.

]]></description>
			<content:encoded><![CDATA[<p>Olá, pessoal,</p>
<p>Conforme combinado ontem, deixemos então a entrega do F05 em 2 partes.</p>
<p>A pasta de entrega da 1a parte já foi criada lá no Eureka.</p>
<p><a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/05/pasta.png"><img class="alignleft size-large wp-image-320" title="pasta" src="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/05/pasta-600x121.png" alt="pasta" width="600" height="121" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009tp/2009/05/29/entrega-do-exercicio-f05-parte-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exercício F05 &#8211; Proposta de Plano Pessoal Funerário</title>
		<link>http://www.brunocampagnolo.com/2009tp/2009/05/21/exercicio-f05-proposta-de-plano-pessoal-funerario/</link>
		<comments>http://www.brunocampagnolo.com/2009tp/2009/05/21/exercicio-f05-proposta-de-plano-pessoal-funerario/#comments</comments>
		<pubDate>Thu, 21 May 2009 21:55:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[exercícios]]></category>
		<category><![CDATA[cemitério]]></category>
		<category><![CDATA[exercícioF05]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009tp/?p=299</guid>
		<description><![CDATA[No exercício F02, item 5, você desenvolveu uma interface de proposta de plano funerário.Tal interface foi utilizada para calcular o custo de um plano funerário mensal. Seu objetivo no exercício de hoje é evoluir esta interface e permitir a persistência das propostas feitas.
Desta vez, ao fim da geração da proposta, você deve armazenar a proposta [...]]]></description>
			<content:encoded><![CDATA[<p>No <a href="http://www.brunocampagnolo.com/2009tp/2009/03/07/exercicio-f02-aula-06-jquery-e-ajax/">exercício F02</a>, item 5, você desenvolveu uma interface de proposta de plano funerário.Tal interface foi utilizada para calcular o <strong>custo de um plano funerário mensal</strong>. Seu objetivo no exercício de hoje é evoluir esta interface e permitir a persistência das propostas feitas.</p>
<p>Desta vez, ao fim da geração da proposta, você deve armazenar a proposta feita no Banco de Dados de sua escolha. Em outro momento, o usuário poderá retornar à proposta preenchida anteriormente se desejar para modificar seus dados, ou mesmo excluir a proposta feita sua proposta.</p>
<p>Após a finalização da proposta, o administrador do sistema pode acessá-la e conferir o custo gerado automaticamente para cada proposta  e os dados do usuário. Por segurança, um administrador também pode excluir uma proposta feita. Neste caso, ele deve fornecer o motivo do cancelamento e, da próxima vez que o usuário acessar o sistema, este motivo deve ficar claro.</p>
<p>Dica 1: <a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/05/testebddiversos.zip">mais alguns exemplos de acesso ao banco que podem ajudar você a resolver este problema.</a></p>
<p>Dica 2: Lembre-se: a interface gerada no exercício F02 era Web. Você deve continuar usando uma interface web. O acesso às classes de banco de dados será semelhante à abordagem que você usa para interfaces Windows Forms. Exemplo:</p>
<pre name="code" class="c#">

&lt;%@ Page Language=&quot;C#&quot;  %&gt;
&lt;%@ Import Namespace=&quot;System.Data.SqlClient&quot; %&gt;
&lt;%
SqlConnection conn = new System.Data.SqlClient.SqlConnection(@&quot;Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Temp\temp.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True&quot;);

conn.Open();

System.Data.SqlClient.SqlCommand select = new SqlCommand(&quot;select * from t1&quot;, conn);

SqlDataReader dr = select.ExecuteReader();

while(dr.Read())

{

Response.Write(dr[&quot;id&quot;].ToString() + &quot; - &quot; + dr[&quot;nome&quot;].ToString() + &quot;&lt;br&gt;&quot;);

}

conn.Close();

%&gt;
</pre>
<p>Data de entrega: 29/05/2009</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009tp/2009/05/21/exercicio-f05-proposta-de-plano-pessoal-funerario/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aula 20 &#8211; Exercício O03 &#8211; Parametrização de comandos SQL</title>
		<link>http://www.brunocampagnolo.com/2009tp/2009/05/14/aula-20-exercicio-o03-parametrizacao-de-comandos-sql/</link>
		<comments>http://www.brunocampagnolo.com/2009tp/2009/05/14/aula-20-exercicio-o03-parametrizacao-de-comandos-sql/#comments</comments>
		<pubDate>Thu, 14 May 2009 22:05:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[exercícios]]></category>
		<category><![CDATA[bd]]></category>
		<category><![CDATA[exercícioO03]]></category>
		<category><![CDATA[parametrização]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009tp/?p=283</guid>
		<description><![CDATA[Na aula passada, verificamos como criar uma conexão com o banco de dados e como executar comandos em seu banco.
Seu objetivo no exercício de hoje é, baseando-se no modelo passado (projeto, / bd), implementar os seguintes itens
1) Criar uma tabela que represente um conjunto de contatos de uma agenda de contatos.
2) Implemente, em Windows Forms, [...]]]></description>
			<content:encoded><![CDATA[<p>Na <a href="http://www.brunocampagnolo.com/2009tp/2009/05/07/aula-15-bd/">aula passada</a>, verificamos como criar uma conexão com o banco de dados e como executar comandos em seu banco.<br />
Seu objetivo no exercício de hoje é, baseando-se no modelo passado (<a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/05/exemplosbddireto.zip">projeto</a>, / <a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/05/bdteste.mdf">bd</a>), implementar os seguintes itens<br />
1) Criar uma tabela que represente um conjunto de contatos de uma agenda de contatos.<br />
2) Implemente, em Windows Forms, uma interface de gerenciamento de contatos que permita as seguintes funcionalidades:<br />
* Listagem dos contatos;<br />
* Inserção de contatos;<br />
* Exclusão de contatos;<br />
* Edição de contatos.<br />
3) Não se preocupe com validações e com a organização de suas classes. Seu principal objetivo hoje é trabalhar com parâmetros em seus comandos SQL;<br />
4) Entregue este exercício via Correio do Eureka com o título &#8220;Exercício O03&#8243;.<br />
5) IMPORTANTE: na entrega, EXCLUA os arquivos contidos dentro da pasta bin de seu projeto.</p>
<p>Oks,<br />
Bruno</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009tp/2009/05/14/aula-20-exercicio-o03-parametrizacao-de-comandos-sql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/05/bdteste.mdf" length="2359296" type="video/unknown" />
		</item>
		<item>
		<title>Aula 14 &#8211; Dicas para Exercício F03 &#8211; Class Library</title>
		<link>http://www.brunocampagnolo.com/2009tp/2009/04/04/aula-14-dicas-para-exercicio-f03-class-library/</link>
		<comments>http://www.brunocampagnolo.com/2009tp/2009/04/04/aula-14-dicas-para-exercicio-f03-class-library/#comments</comments>
		<pubDate>Sat, 04 Apr 2009 12:45:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[exercícios]]></category>
		<category><![CDATA[aula14]]></category>
		<category><![CDATA[dicas]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[jQuery UI]]></category>
		<category><![CDATA[Windows Forms]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009tp/?p=186</guid>
		<description><![CDATA[Uma das exigências do Exercício F03 é a criação de uma interface Web e de uma interface Windows Forms que compartilhem do mesmo algoritmo para cálculo de custo.
Ao invés de repetirmos nossas classes responsáveis por este cálculo é recomendável o uso de uma Class Library (dll) para centralização de nossas classes compartilhadas.
Segue a seguir, um [...]]]></description>
			<content:encoded><![CDATA[<p>Uma das exigências do Exercício F03 é a criação de uma interface Web e de uma interface Windows Forms que compartilhem do mesmo algoritmo para cálculo de custo.</p>
<p>Ao invés de repetirmos nossas classes responsáveis por este cálculo é recomendável o uso de uma Class Library (dll) para centralização de nossas classes compartilhadas.</p>
<p>Segue a seguir, um exemplo de utilização de uma class library para uma interface Web:</p>
<ul>
<li><a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/04/provaplanlib.zip">Exemplo de class lib</a>- abrir no VS2008 ou Visual Studio Express 2008;</li>
<li><a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/04/provaplan.zip">Exemplo de utilização desta class library em interface Web</a>. Esta interface web usa interação via Drag e Drop implementada com o framework jQuery Ui, reforçando as sugestões apresentadas na <a href="http://www.brunocampagnolo.com/2009tp/2009/04/02/aula-13-dicas-para-o-exercicio-f03-drag-drop/">última aula</a>. Abrir do VS2008 ou Visual Web Developer.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009tp/2009/04/04/aula-14-dicas-para-exercicio-f03-class-library/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Exercício F03 &#8211; Planejador de Velório</title>
		<link>http://www.brunocampagnolo.com/2009tp/2009/03/28/exercicio-f03-planejador-de-velorio/</link>
		<comments>http://www.brunocampagnolo.com/2009tp/2009/03/28/exercicio-f03-planejador-de-velorio/#comments</comments>
		<pubDate>Sat, 28 Mar 2009 13:17:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[exercícios]]></category>
		<category><![CDATA[cemitério]]></category>
		<category><![CDATA[exercícioF03]]></category>
		<category><![CDATA[velório]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009tp/?p=143</guid>
		<description><![CDATA[O exercício proposto agora continuará o trabalho com a biblioteca de componentes gráficos Windows Forms. Seu objetivo será criar uma interface que permita o planejamento de um evento de velório.
A mesma interface também deverá ser criada na versão Web de maneira simplificada.
Objetivos

Conhecer os componentes da biblioteca Windows Forms e entender sua aplicação em uma situação [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">O exercício proposto agora continuará o trabalho com a biblioteca de componentes gráficos Windows Forms. Seu objetivo será criar uma interface que permita o planejamento de um evento de velório.</p>
<p style="text-align: justify;">A mesma interface também deverá ser criada na versão Web de maneira simplificada.</p>
<h2 style="text-align: justify;"><span id="more-143"></span>Objetivos</h2>
<ul style="text-align: justify;">
<li>Conhecer os componentes da biblioteca Windows Forms e entender sua aplicação em uma situação real;</li>
<li>Aplicar os conceitos de lógica de programação na geração de um frontend gráfico;</li>
<li>Discutir possibilidades de interação alternativas ao tradicional utilizando, de maneira criativa, os componentes da biblioteca;</li>
<li>Começar a organizar o código de maneira que fique fácil a interação de uma interface cliente com um servidor.</li>
</ul>
<h2 style="text-align: justify;">Referências</h2>
<ul style="text-align: justify;">
<li><a href="http://docs.google.com/Doc?id=ajggmrkzh2pb_1040f5vn28cv">Lista de referências sobre os componentes Windows Forms</a>;</li>
<li><a href="http://msdn.microsoft.com/en-us/library/ettb6e2a.aspx">Documentação Windows Forms do MSDN;</a></li>
<li><a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/03/exemploscomponentesv01.zip">Exemplos de uso de cada um dos componentes &#8211; versão 0.1</a>;</li>
<li><a href="http://docs.google.com/Doc?id=ajggmrkzh2pb_1024dmgd8kc8">Canivete .Net 2009;</a></li>
<li><a href="http://www.brunocampagnolo.com/2009tp/2009/03/27/jquery-uijquery-ui/">Sobre a biblioteca jQuery UI</a>.</li>
</ul>
<h2 style="text-align: justify;">Procedimento</h2>
<p style="text-align: justify;">Você criará uma interface que permita o planejamento de um evento de velório em seu projeto de cemitério. Nesta interface, o &#8220;futuro cliente&#8221; do velório deverá planejar o evento como um todo: localização de seu velório, tempo total, decoração e posicionamento dos convidados mais importantes. Outra opção será o planejamento do velório de um parente recém-falecido.</p>
<p style="text-align: justify;">Assim, duas interfaces deverão ser geradas: a primeira, construída para Desktop deve ter uma responsividade rápida e ser focada, necessariamente à interação em totens e planejamento de um evento imediato de um parente. A segunda, voltada para Web, deve ser rápida e simples de usar, sendo mais aplicável a um planejamento individual a longo prazo.</p>
<p style="text-align: justify;"><span style="text-decoration: underline;"><strong>O algoritmo de cálculo de preço deverá ser criado em uma biblioteca de classes (class library) que será compartilhada pelas duas interfaces.</strong></span></p>
<p style="text-align: justify;"><span style="text-decoration: underline;"><strong>Importante: não será necessário e nem desejável a persistência de qualquer dado ou configuração de seu sistema, ou seja, quando o programa for fechado toda a simulação é perdida!</strong></span></p>
<p style="text-align: justify;"><span style="text-decoration: underline;"><strong>Sugere-se fortemente o uso da biblioteca jQuery para criação da versão Web de seu sistema. Outra sugestão: se desejar uma interface um pouco mais rica e alguns controles prontos associados ao jQuery, use também o seu complemento jQuery UI. <a href="http://www.brunocampagnolo.com/2009tp/2009/03/27/jquery-uijquery-ui/">Em anexo, apresentação referente ao jQuery UI</a>. Você tem a liberdade, porém, de usar qualquer outro framework para sua interface Web ou mesmo usar &#8220;JavaScript puro&#8221;.<br />
</strong></span></p>
<p style="text-align: justify;">1) O primeiro passo é a escolha do local do evento. O cliente deverá selecionar dentre um conjunto de opções possíveis qual é o auditório / espaço que gostaria que a cerimônia fosse realizada. Cada local possui restrições diferentes quanto ao <span style="text-decoration: underline;"><strong>formato do local</strong></span>,  <strong><span style="text-decoration: underline;">lotação máxima </span></strong>e <span style="text-decoration: underline;"><strong>flexibilidade da disposição dos objetos</strong></span>. Por exemplo, podem existir locais com formato retangular como uma sala, outros com formato arredondado como um teatro, etc. A lotação máxima pode variar também dependendo do ambiente. Alguns locais podem ter objetos fixos como poltronas fixas. Outros podem ter objetos que podem ser movidos como cadeiras.</p>
<p style="text-align: justify;">O usuário deve ter a opção de escolher um local dentre 5 opções diferentes. Cada opção tem um preço diferente.</p>
<p style="text-align: justify;">2) Em alguns tipos de ambiente podem ser apresentados objetos móveis como: púlpitos, cadeiras, mesas, elementos de decoração (flores, tapetes, velas), Outros elementos são fixos e não podem ser movidos. Os objetos móveis podem ter sua posição planejada. Há porém, algumas restrições:</p>
<ul>
<li>um objeto não pode ocupar o lugar de outro;</li>
<li>dependendo do objeto, deve-se manter uma distância mínima do falecido, que também, dependendo do ambiente, deve ser possível de movimentação;</li>
<li>alguns objetos são incompatíveis em um mesmo ambiente. Por exemplo, flores de cores diferentes, tapetes de cores diferentes, etc;</li>
<li>há um limite na quantidade de alguns objetos;</li>
</ul>
<p style="text-align: justify;">A quantidade de objetos disponíveis também é determinante do preço final. Há também alguns objetos opcionais.</p>
<p style="text-align: justify;">Devem existir pelo menos 7 tipos diferentes de objetos.</p>
<p style="text-align: justify;">3) Por fim, o usuário deverá listar os principais convidados e parentes do evento. Esta lista deve ser usada para:</p>
<ul>
<li>Definir o assento (cadeira, poltrona, etc) de alguns convidados mais importantes;</li>
<li>Indicar a ordem e horário de discursos.</li>
</ul>
<p style="text-align: justify;">4) Exceto no caso da lista de convidados, qualquer modificação provoca uma alteração no preço. Esta alteração deve sempre estar visível na interface e atualizada automaticamente a partir de qualquer mudança.</p>
<h2 style="text-align: justify;">Critérios de Correção</h2>
<p>O  seu programa, nesta fase, estará sendo avaliado em relação aos seguintes critérios:</p>
<ul>
<li>Atendimento aos requisitos acima;</li>
<li>Uso dos componentes padrão disponíveis no Visual Studio / jQuery que encaixem melhor em cada situação;</li>
<li>Semelhança da interface na versão Web e na versão Desktop;</li>
<li>Originalidade na criação da interface;</li>
<li>Criatividade nas possibilidades de interação;</li>
<li>Facilidade de uso;</li>
<li>Validações de dados simples;</li>
<li>Centralização do algoritmo de cálculo do custo em uma class library;</li>
<li>Código-fonte sem cópias de colegas ou de códigos da Internet/livros sem uma citação clara.</li>
</ul>
<p>Os seguintes critérios não terão importância nesta avaliação, porém serão discutidos nas avaliações posteriores:</p>
<ul>
<li>Organização do código usando as patterns mais adequadas para cada situação;</li>
<li>Rigidez na criação das classes e otimização de código;</li>
<li>Criação de novos componentes;</li>
<li>Aderência das regras de negócio em relação a situações reais;</li>
<li>Validações de dados complexas.</li>
</ul>
<h2>Defesa e Entrega</h2>
<p>Este projeto deverá será entregue até o dia <strong><span style="text-decoration: underline;">24/04/2009</span></strong> <span style="text-decoration: underline;"><strong>- 14:00h</strong></span>. <strong><span style="text-decoration: underline;">Trabalhos entregues em atraso serão desconsiderados</span></strong>.</p>
<p>No dia <span style="text-decoration: underline;"><strong>25/04/2009</strong></span>, cada dupla terá <span style="text-decoration: underline;"><strong>três </strong></span>minutos para apresentar e defender o seu trabalho. A ordem de apresentação será fornecida no dia anterior até as 17:00h.</p>
<p>Ponto extra: todos os alunos que entregarem o que já fizeram até o dia 15/04/2009 receberão 0,5 pontos extras na nota final. Nesta entrega, seu projeto pode estar incompleto e com falhas, mas deve transmitir a segurança que você vai conseguir terminá-lo.</p>
<p style="text-align: justify;">
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009tp/2009/03/28/exercicio-f03-planejador-de-velorio/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Exercício O02 &#8211; Instanciação e Uso de Componentes Visuais</title>
		<link>http://www.brunocampagnolo.com/2009tp/2009/03/26/exercicio-o02-instanciacao-e-uso-de-componentes-visuais/</link>
		<comments>http://www.brunocampagnolo.com/2009tp/2009/03/26/exercicio-o02-instanciacao-e-uso-de-componentes-visuais/#comments</comments>
		<pubDate>Thu, 26 Mar 2009 23:11:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[exercícios]]></category>
		<category><![CDATA[exercícioO02]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009tp/?p=121</guid>
		<description><![CDATA[Neste exercício você resolverá um problema que necessitará que você crie componentes visuais em tempo de execução. Este é um exercício opcional. Lembre-se: exercícios opcionais podem (ou não) valer nota. Mas, geralmente, são usados na geração dos exercícios de prova.
Procedimento
Criar no Visual Studio 2008 um novo Projeto, através do menu File &#62; New Project.
Cuidado: selecionar [...]]]></description>
			<content:encoded><![CDATA[<p>Neste exercício você resolverá um problema que necessitará que você crie componentes visuais em tempo de execução. Este é um exercício opcional. Lembre-se: exercícios opcionais podem (ou não) valer nota. Mas, geralmente, são usados na geração dos exercícios de prova.</p>
<h2>Procedimento</h2>
<p>Criar no Visual Studio 2008 um novo Projeto, através do menu File &gt; New Project.</p>
<p>Cuidado: selecionar a linguagem Visual C# e a opção Windows Forms ao criar o Projeto!</p>
<p>Lembre-se de salvar seu projeto na pasta C:\Temp, caso você esteja trabalhando na PUCPR.</p>
<p>Observe o formulário da figura abaixo.</p>
<p>Obtenha seu código de aluno no <a href="http://spreadsheets.google.com/pub?key=pD5xiFKE9oj0lfXgj4TBCaA">link</a>.</p>
<p><button id='btO02' type='button' style='font-size:xx-large'>Obter valor de x após descobrir seu código de aluno</button></p>
<p>Crie um programa para que você consiga gerar, dinamicamente, um conjunto de controles X a partir de um certo número de linhas e colunas fornecidas a partir de uma caixa de texto. Por exemplo, se X for a TextBox, seu exercício deverá ser semelhante à imagem abaixo.</p>
<p><a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/03/exemploexercgeracaoautomatica.png"><img class="alignnone size-full wp-image-122" title="exemploexercgeracaoautomatica" src="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/03/exemploexercgeracaoautomatica.png" alt="exemploexercgeracaoautomatica" width="548" height="301" /></a></p>
<p><script type='text/javascript' src='http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/03/exerco02.js'>
</script></p>
<p>Entregue seu exercício <a href="http://spreadsheets.google.com/viewform?formkey=cEQ1eGlGS0U5b2owS0RJTzB5YVVpQWc6MA..">aqui</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009tp/2009/03/26/exercicio-o02-instanciacao-e-uso-de-componentes-visuais/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exercício de Fixação F03 &#8211; Calculadora em C#</title>
		<link>http://www.brunocampagnolo.com/2009tp/2009/03/19/exercicio-de-fixacao-f03-calculadora-em-c/</link>
		<comments>http://www.brunocampagnolo.com/2009tp/2009/03/19/exercicio-de-fixacao-f03-calculadora-em-c/#comments</comments>
		<pubDate>Fri, 20 Mar 2009 01:05:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[exercícios]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[calculadora]]></category>
		<category><![CDATA[exercícioF03]]></category>
		<category><![CDATA[Windows Forms]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009tp/?p=108</guid>
		<description><![CDATA[Exercício de Fixação 03 &#8211; Calculadora em C#
 Neste exercício você vai criar uma calculadora simples em C#. Essa calculadora vai realizar as quatro operações matemáticas quando você clica em quatro botões diferentes e, alternativamente, vai permitir a execução da operação indicada em uma ComboBox (também chamada de DropDownList, caixa de combinação, caixa de seleção [...]]]></description>
			<content:encoded><![CDATA[<h1 id="p9250">Exercício de Fixação 03 &#8211; Calculadora em C#<br id="p9251" /></h1>
<p><br id="p9252" /> Neste exercício você vai criar uma calculadora simples em C#. Essa calculadora vai realizar as quatro operações matemáticas quando você clica em quatro botões diferentes e, alternativamente, vai permitir a execução da operação indicada em uma ComboBox (também chamada de DropDownList, caixa de combinação, caixa de seleção única, etc).</p>
<p>Este exercício deve ser desenvolvido em classe e servirá, principalmente, para você conhecer o Visual Studio 2008.<br />
O resultado esperado como resposta para o exercício está <a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/03/exerc03_gabarito.exe">em anexo</a>.<span id="more-108"></span></p>
<h2 id="p9254">Objetivos</h2>
<ul id="p92511">
<li id="p92512"> Conhecer as nossas principais ferramentas de trabalho neste semestre:
<ul>
<li id="p92512">C#;</li>
<li id="p92512">Visual Studio 2008.</li>
</ul>
</li>
</ul>
<ul id="p92510">
<li id="p92513">Conhecer o Visual Studio 2008 e a Plataforma .Net através de um exemplo simples, reconhecendo alguns dos principais paradigmas do desenvolvimento RAD;</li>
</ul>
<ul id="p92514">
<li id="p92515"> Iniciar a compreender as diferenças entre o C# e o Java enquanto linguagens;</li>
<li id="p92516">Reconhecer que no C# todos os controles são objetos e conseguir diferenciar claramente qual é a classe de cada objeto;</li>
</ul>
<ul id="p92517">
<li id="p92518"> Entender a criação automática de eventos através da interface gráfica do Visual Studio 2008;</li>
<li id="p92519"> Familiarizar-se com a sintaxe do C# e com a facilidade de acesso ao help online;</li>
<li id="p92520">Aplicar as funções de conversão de dados através da classe Convert, etc.</li>
<li id="p92521">Conhecer os controles TextBox e ComboBox; <br id="p92522" /></li>
<li id="p92523">Entender o significado do método ToString.</li>
</ul>
<p><br id="p92524" /></p>
<h2 id="p92525">Referências</h2>
<ul id="p92526">
<li id="p92527"> Ajuda dos métodos:
<ul id="p92528">
<li id="p92529"> ToInt32 da classe Convert: <a id="suh:" title="http://msdn2.microsoft.com/pt-br/library/system.convert.toint32(en-us).aspx" href="http://msdn2.microsoft.com/pt-br/library/system.convert.toint32%28en-us%29.aspx">http://msdn2.microsoft.com/pt-br/library/system.convert.toint32(en-us).aspx</a>;</li>
<li id="p92530"> ToString da classe Object;</li>
</ul>
</li>
<li id="p92531"> Ajuda das propriedades:
<ul id="p92532">
<li id="p92533"> Text do controle TextBox e do controle Label;</li>
<li id="p92534"> Items do controle ComboBox;</li>
<li id="p92535">SelectedItem do controle ComboBox: <a id="h7nh" title="http://msdn2.microsoft.com/pt-br/library/system.windows.forms.combobox.selecteditem(en-us).aspx" href="http://msdn2.microsoft.com/pt-br/library/system.windows.forms.combobox.selecteditem%28en-us%29.aspx">http://msdn2.microsoft.com/pt-br/library/system.windows.forms.combobox.selecteditem(en-us).aspx</a> <br id="p92536" /></li>
<li id="p92537">NewLine da classe Environment: <a id="o:px" title="http://msdn2.microsoft.com/pt-br/library/system.environment.newline(en-us).aspx" href="http://msdn2.microsoft.com/pt-br/library/system.environment.newline%28en-us%29.aspx">http://msdn2.microsoft.com/pt-br/library/system.environment.newline(en-us).aspx</a> <br id="p92538" /></li>
</ul>
</li>
<li id="p92539"> Ajuda dos eventos:
<ul id="p92540">
<li id="p92541"> Click do controle Button;</li>
<li id="p92542"> SelectedIndexChange do controle ComboBox.<br id="p92543" /></li>
</ul>
</li>
</ul>
<h2 id="p92544">Preparação e Dicas<br id="p92545" /></h2>
<ul id="p92546">
<li id="p92547"> Criar no Visual Studio 2008 um novo Projeto, através do menu File &gt; New Project.</li>
<li id="p92548">Cuidado: selecionar a linguagem Visual C# e a opção Windows Forms ao criar o Projeto!</li>
<li id="p92549"> Acessar a ajuda das funções citadas na referência. Clique F1 na palavra que deseja acessar para acessar o Help Online / Offline.<br id="p92550" /></li>
<li id="p92551"> Lembre-se de salvar seu projeto na pasta C:\Temp, caso você esteja trabalhando na PUCPR.</li>
<li id="p92552">O operador de concatenação de texto no C# é o &#8220;+&#8221;;</li>
<li id="p92553">Se você decidir usar a estrutura switch em algum momento, observe que o switch do C# aceita Strings em seus case;</li>
<li id="p92554">As principais propriedades de um controle são acessíveis via <strong id="p92555">Smart Tag </strong>e seus principais eventos clicando duas vezes sobre o controle.<br id="p92556" /></li>
</ul>
<h2 id="p92557">Procedimento</h2>
<ol id="p92558">
<li id="p92559"><a href="http://www.brunocampagnolo.com/2009tp/wp-content/uploads/2009/03/exerc03_gabarito.exe">O resultado esperado do procedimento abaixo está anexo.</a></li>
<li id="p92559">Criar uma interface com: duas caixas de texto chamadas Valor1 e Valor2, um botão com o texto Somar ou &#8220;+&#8221;, um botão com o texto Subtrair ou &#8220;-&#8221;, um botão com o texto Multiplicar ou &#8220;*&#8221; e um botão com o texto Dividir ou &#8220;/&#8221;. Criar também uma ComboBox com quatro elementos representando cada uma das funções. A resposta ficará acumulada em uma caixa de texto de mais de uma linha;</li>
<li id="p92560"> Associar ao evento de clique (Click) de cada um dos botões à respectiva função;</li>
<li id="p92561"> Exibir o resultado da operação em uma caixa de texto de mais de uma linha;<br id="p92562" /></li>
<li id="p92563"> Associar ao evento de mudança do valor da ComboBox (SelectedIndexChange) a execução imediata da operação matemática sem necessitar da chamada ao botão;</li>
</ol>
<p><br id="p92564" /></p>
<h2 id="p92565">Questões</h2>
<p>Responder às questões abaixo no link (<a href="http://spreadsheets.google.com/viewform?formkey=cEQ1eGlGS0U5b2oxQThyZEk1UlRJY2c6MA..">http://spreadsheets.google.com/viewform?formkey=cEQ1eGlGS0U5b2oxQThyZEk1UlRJY2c6MA..</a>) ou abaixo e manter uma cópia das respostas com você.<br id="p92567" /><br id="p92568" /></p>
<ol id="p92569">
<li id="p92570">Cole o código responsável por implementar as operações que você implementou. Seu código está dentro do arquivo com extensão .cs.</li>
<li id="p92570">Qual é a extensão do arquivo criado após a compilação? <br id="p92571" /></li>
<li id="p92572">É um projeto do tipo Windows Forms ou Web Forms?</li>
<li id="p92573">Qual é a plataforma que precisa estar instalada na máquina que vai executar o programa?</li>
<li id="p92574">O que é o CLR?<br id="p92575" /></li>
<li id="p92576">O programa em C# é convertido para qual representação intermediária antes de ser executado pelo CLR?<br id="p92577" /></li>
<li id="p92578">Localize em sua aplicação todo o código em C# gerado para criação, posicionamento e formatação de uma caixa de texto. Cole esse código abaixo. Este código está dentro da função InitializeComponent.</li>
<li id="p92579">Os comandos obtidos na questão anterior são de uma linguagem declarativa ou em uma linguagem imperativa?<br id="p92580" /></li>
<li id="p92581"> Escolha 2 propriedades quaisquer da caixa de texto diferentes das que você trabalhou e, através da documentação, cite qual é a sua utilidade. Coloque o link para a página que você conseguiu essa documentação.</li>
<li id="p92581">EXTRA! Refaça o mesmo exercício em WPF e perceba a diferença entre as abordagens.</li>
<li id="p92581">EXTRA! Refaça o mesmo exercício em HTML/jQuery e perceba a diferença entre as abordagens.</li>
</ol>
<h2 id="p92583">Relatório</h2>
<p>Responder às questões acima no link (<a href="http://spreadsheets.google.com/viewform?formkey=cEQ1eGlGS0U5b2oxQThyZEk1UlRJY2c6MA..">http://spreadsheets.google.com/viewform?formkey=cEQ1eGlGS0U5b2oxQThyZEk1UlRJY2c6MA..</a>) ou abaixo.</p>
<p>Também não esqueça de manter uma cópia destas respostas com você.<br />
<iframe src="http://spreadsheets.google.com/embeddedform?key=pD5xiFKE9oj1A8rdI5RTIcg" width="500" height="2055" frameborder="0" marginheight="0" marginwidth="0">Carregando&#8230;</iframe></p>
<p><br id="p92586" /><br id="p92590" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009tp/2009/03/19/exercicio-de-fixacao-f03-calculadora-em-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exercício F02 &#8211; Aula 06 &#8211; jQuery e Ajax</title>
		<link>http://www.brunocampagnolo.com/2009tp/2009/03/07/exercicio-f02-aula-06-jquery-e-ajax/</link>
		<comments>http://www.brunocampagnolo.com/2009tp/2009/03/07/exercicio-f02-aula-06-jquery-e-ajax/#comments</comments>
		<pubDate>Sat, 07 Mar 2009 15:54:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[exercícios]]></category>
		<category><![CDATA[aula05]]></category>
		<category><![CDATA[aula06]]></category>
		<category><![CDATA[exercíciof02]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009tp/?p=90</guid>
		<description><![CDATA[Nesta exercício vamos treinar as funcionalidades Ajax do jQuery.
Entrega até o dia 13/03/2009!
Especificação do Exercício
Resposta aqui e aqui
]]></description>
			<content:encoded><![CDATA[<p>Nesta exercício vamos treinar as funcionalidades Ajax do jQuery.<br />
Entrega até o dia 13/03/2009!</p>
<p><a href="http://docs.google.com/Doc?id=ajggmrkzh2pb_1035hgxgbxd5">Especificação do Exercício</a></p>
<p>Resposta <a href="http://spreadsheets.google.com/viewform?formkey=cEQ1eGlGS0U5b2owaGlnb2pqUEhRWlE6MA..">aqui </a>e <a href="http://drop.io/hidden/qnpj5dl4rgz700/upload">aqui</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009tp/2009/03/07/exercicio-f02-aula-06-jquery-e-ajax/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Aula 04 &#8211; Exercício F01</title>
		<link>http://www.brunocampagnolo.com/2009tp/2009/02/28/aula-04-exercicio-f01/</link>
		<comments>http://www.brunocampagnolo.com/2009tp/2009/02/28/aula-04-exercicio-f01/#comments</comments>
		<pubDate>Sat, 28 Feb 2009 12:41:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[exercícios]]></category>
		<category><![CDATA[exercícicioF01]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009tp/?p=85</guid>
		<description><![CDATA[Link para especificação
Responda aqui e aqui
]]></description>
			<content:encoded><![CDATA[<p><a href="http://docs.google.com/Doc?id=ajggmrkzh2pb_1031djrs8zfr">Link para especificação</a><br />
Responda <a href="http://spreadsheets.google.com/viewform?formkey=cEQ1eGlGS0U5b2owUjdIY0FTMGdSRnc6MA..">aqui </a>e <a href="http://drop.io/hidden/pa8vulqeyrsdo7/upload">aqui</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009tp/2009/02/28/aula-04-exercicio-f01/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aula 03 &#8211; Exercício 001 &#8211; jQuery</title>
		<link>http://www.brunocampagnolo.com/2009tp/2009/02/21/exercicio-001-jquery/</link>
		<comments>http://www.brunocampagnolo.com/2009tp/2009/02/21/exercicio-001-jquery/#comments</comments>
		<pubDate>Sat, 21 Feb 2009 12:03:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[exercícios]]></category>
		<category><![CDATA[aula03]]></category>
		<category><![CDATA[exercícioO02]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009tp/?p=71</guid>
		<description><![CDATA[Exercício opcional para resolução no dia 21/02/2009.
Exercícios opcionais podem (ou não) serem considerados na nota final.
Edite o arquivo do exercício e faça o que se pede
Se preferir, edite o arquivo no JS Bin.
Cada exercício é um comando individual e é independente do anterior.
Você deve resolver o exercício usando a biblioteca jQuery.

Exiba uma mensagem qualquer cada [...]]]></description>
			<content:encoded><![CDATA[<p>Exercício opcional para resolução no dia 21/02/2009.<br />
Exercícios opcionais podem (ou não) serem considerados na nota final.</p>
<p>Edite o <a href="http://drop.io/ArquivosTp2009/asset/css-html">arquivo do exercício e faça o que se pede</a><br />
Se preferir, edite o arquivo no <a href="http://jsbin.com/evixu/edit">JS Bin</a>.</p>
<p>Cada exercício é um comando individual e é independente do anterior.<br />
Você deve resolver o exercício usando a biblioteca jQuery.</p>
<ol>
<li>Exiba uma mensagem qualquer cada vez que o usuário clica em um parágrafo qualquer</li>
<li>Ao carregar a página deixe cada 1o parágrafo de uma cor diferente</li>
<li>Ao clicar nas abreviaturas, sua cor deve ser trocada</li>
<li>Deixe em itálico todos os parágrafos cuja classe é igual a texto apenas quando o usuário passar com o mouse sobre eles</li>
</ol>
<p>Responda <a href="http://spreadsheets.google.com/viewform?formkey=cEQ1eGlGS0U5b2oyS3pVa0hoQVF2Snc6MA..">aqui</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009tp/2009/02/21/exercicio-001-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exercício R01 &#8211; Parte 01 &#8211; Funcionalidade de soma</title>
		<link>http://www.brunocampagnolo.com/2009tp/2009/02/14/exercicio-r01-parte-01-somar/</link>
		<comments>http://www.brunocampagnolo.com/2009tp/2009/02/14/exercicio-r01-parte-01-somar/#comments</comments>
		<pubDate>Sat, 14 Feb 2009 14:21:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[exercícios]]></category>
		<category><![CDATA[exercício]]></category>
		<category><![CDATA[resposta]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009tp/?p=25</guid>
		<description><![CDATA[Código desenvolvido em aula.
Preenchido apenas a funcionalidade de soma.
Executar código
Editar código
Calculadora.htm


&#60;!DOCTYPE html PUBLIC &#34;-//W3C//DTD XHTML 1.0 Transitional//EN&#34; &#34;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#34;&#62;
&#60;html xmlns=&#34;http://www.w3.org/1999/xhtml&#34;&#62;
&#60;head&#62;
&#60;title&#62;Untitled Page&#60;/title&#62;
&#60;script type=&#34;text/javascript&#34; src=&#34;calculadora.js&#34;&#62;
&#60;/script&#62;
&#60;/head&#62;
&#60;body onload=&#34;configurar()&#34;&#62;
  &#60;form action=&#34;&#34;&#62;
  &#60;p&#62;
    &#60;input id=&#34;txtVal1&#34; type=&#34;text&#34; /&#62;
  &#60;/p&#62;
  &#60;p&#62;
    &#60;input id=&#34;txtVal2&#34; type=&#34;text&#34; /&#62;
  &#60;/p&#62;
  &#60;p&#62;
    &#60;input id=&#34;btMais&#34; [...]]]></description>
			<content:encoded><![CDATA[<p>Código desenvolvido em aula.<br />
Preenchido apenas a funcionalidade de soma.<br />
<a href="http://jsbin.com/igoge">Executar código</a><br />
<a href="http://jsbin.com/igoge/edit">Editar código</a></p>
<p><strong>Calculadora.htm</strong></p>
<pre name="code" class="html">

&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;title&gt;Untitled Page&lt;/title&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;calculadora.js&quot;&gt;
&lt;/script&gt;
&lt;/head&gt;
&lt;body onload=&quot;configurar()&quot;&gt;
  &lt;form action=&quot;&quot;&gt;
  &lt;p&gt;
    &lt;input id=&quot;txtVal1&quot; type=&quot;text&quot; /&gt;
  &lt;/p&gt;
  &lt;p&gt;
    &lt;input id=&quot;txtVal2&quot; type=&quot;text&quot; /&gt;
  &lt;/p&gt;
  &lt;p&gt;
    &lt;input id=&quot;btMais&quot; type=&quot;button&quot; value=&quot;+&quot; /&gt;
    &lt;input id=&quot;btMenos&quot; type=&quot;button&quot; value=&quot;-&quot; /&gt;
  &lt;/p&gt;
  &lt;p&gt;
    &lt;input id=&quot;btVezes&quot; type=&quot;button&quot; value=&quot;*&quot; /&gt;
    &lt;input id=&quot;btDividido&quot; type=&quot;button&quot; value=&quot;/&quot; /&gt;
  &lt;/p&gt;
  &lt;p&gt;
    &lt;select id=&quot;slOperacoes&quot; name=&quot;D1&quot;&gt;
      &lt;option&gt;&lt;/option&gt;
    &lt;/select&gt;
    &lt;div id=&quot;resultado&quot;&gt;&lt;/div&gt;
  &lt;/p&gt;
  &lt;br&gt;
  &lt;br&gt;
  &lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p><strong>Calculadora.js</strong></p>
<pre name="code" class="javascript">

function somar()
{
  // val1 reflete o objeto caixa de texto txtVal1
  var val1 = document.getElementById(&quot;txtVal1&quot;);
  // val1 reflete o objeto caixa de texto txtVal2
  var val2 = document.getElementById(&quot;txtVal2&quot;); 

  // Realiza a operação.
  var resultado = parseInt(val1.value) +
                  parseInt(val2.value);
  //alert(resultado);
  // res reflete a div cujo id é resultado
  var res = document.getElementById(&quot;resultado&quot;);
  // escreve o resultado na div
  res.innerHTML = resultado;
}
function configurar()
{
  // Configura o botão, associando a função somar ao clique do botão
  var btMais =
      document.getElementById(&quot;btMais&quot;);
  btMais.onclick = somar;
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009tp/2009/02/14/exercicio-r01-parte-01-somar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aula 01 &#8211; 14/02/2009 &#8211; Revisão</title>
		<link>http://www.brunocampagnolo.com/2009tp/2009/02/13/aula-01-14022008-revisao/</link>
		<comments>http://www.brunocampagnolo.com/2009tp/2009/02/13/aula-01-14022008-revisao/#comments</comments>
		<pubDate>Sat, 14 Feb 2009 00:54:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[aulas]]></category>
		<category><![CDATA[exercícios]]></category>
		<category><![CDATA[aula01]]></category>
		<category><![CDATA[exercícioR01]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[revisão]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009tp/?p=17</guid>
		<description><![CDATA[Em nossa próxima aula, começaremos o trabalho com o framework jQuery.
Assim, é necessária uma revisão do que vimos no ano passado em nossa disciplina de Laboratório de Informática 1 e 2 principalmente em relação à linguagem JavaScript e ao uso das extensões do Firefox.
Esta revisão se dará através do Exercício de Revisão 01.


Leia com atenção [...]]]></description>
			<content:encoded><![CDATA[<p>Em nossa próxima aula, começaremos o trabalho com o <a href="http://www.jquery.com/">framework jQuery</a>.<br />
Assim, é necessária uma revisão do que vimos no ano passado em nossa disciplina de Laboratório de Informática 1 e 2 principalmente em relação à linguagem JavaScript e ao uso das extensões do Firefox.<br />
Esta revisão se dará através do Exercício de Revisão 01.<br />
<iframe src="http://docs.google.com/Doc?id=ajggmrkzh2pb_1025gb2jzhf8" width="650" height="300"><br />
</iframe></p>
<p>Leia com atenção o enunciado e responda o exercício acima nos links:<br />
<a href="http://drop.io/hidden/rlxgdspvvjdtue/upload">http://drop.io/hidden/rlxgdspvvjdtue/upload</a><br />
e<br />
<a href="http://spreadsheets.google.com/viewform?formkey=cEQ1eGlGS0U5b2ozRE13R0h5RHcwSHc6MA">http://spreadsheets.google.com/viewform?formkey=cEQ1eGlGS0U5b2ozRE13R0h5RHcwSHc6MA </a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009tp/2009/02/13/aula-01-14022008-revisao/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

