<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CEMER3o_eSp7ImA9WhRVFUk.&quot;"><id>tag:blogger.com,1999:blog-6331859157625229771</id><updated>2012-01-14T10:00:06.441-02:00</updated><category term="controlstate" /><category term="Windows Vista" /><category term="IIS 7" /><category term="internet explorer" /><category term="Javascript" /><category term="REFRESH" /><category term="teste unitário" /><category term="GridView" /><category term="PDB" /><category term="AJAX" /><category term="querystring" /><category term="xUnit.net" /><category term="Generics" /><category term="OO" /><category term="IIS" /><category term="ISAPI" /><category term="Trace" /><category term="cookie" /><category term="Google" /><category term="META" /><category term="FormView" /><category term="firefox" /><category term="Visual Studio 2008" /><category term="Maps" /><category term="Desempenho" /><category term="Validation Control" /><category term="RequiredFieldValidator" /><category term="notepad++" /><category term="Depuração" /><category term="impressão" /><category term="viewstate" /><category term="ValidationSummary" /><category term="Winmerge" /><category term="DropDownList" /><category term="sessionstate" /><category term="applicationstate" /><category term="Regular Expression" /><category term="CompareValidator" /><category term="hiddenfield" /><category term="APP_DATA" /><title>Aplicações WEB</title><subtitle type="html">Desenvolvimento de aplicações WEB utilizando tecnologias clientes(HTML, CSS, javascript) e de servidor(Principalmente ASP.NET 3.5).</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://aplicacoesweb.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://aplicacoesweb.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Mateus Queiroz Correia</name><uri>https://profiles.google.com/103544107567690484780</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-D0HajHeutmA/AAAAAAAAAAI/AAAAAAAAAzs/PWg9nWVws10/s512-c/photo.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>42</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/AplicaesWeb" /><feedburner:info uri="aplicaesweb" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CEMER3s8eSp7ImA9WhRVFUk.&quot;"><id>tag:blogger.com,1999:blog-6331859157625229771.post-269725214503211011</id><published>2012-01-14T10:00:00.000-02:00</published><updated>2012-01-14T10:00:06.571-02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-14T10:00:06.571-02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Depuração" /><category scheme="http://www.blogger.com/atom/ns#" term="PDB" /><title>Visual Studio não depura quando se faz Attach a um programa</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/RgxVC5EM37TSAWA6lKlkV1VrlF4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RgxVC5EM37TSAWA6lKlkV1VrlF4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/RgxVC5EM37TSAWA6lKlkV1VrlF4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RgxVC5EM37TSAWA6lKlkV1VrlF4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="WordSection1"&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Ao tentar fazer um “&lt;i&gt;Attach to Process&lt;/i&gt;” a um aplicativo em execução para depurá-lo, pode-se não habilitar os breakpoints. A causa mais comum é se não tiver o arquivo PDB(que tem informações de depuração) disponível no diretório. Se for seu caso, basta compilar sua solução e disponibilizar junto com o aplicativo o arquivo &lt;b&gt;pdb&lt;/b&gt; e tentar depurar novamente.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Agora, se você tiver o PDB já no diretório atente-se ao output do Visual Studio, se há alguma mensagem como abaixo:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span lang="EN-US" style="font-family: Arial, Helvetica, sans-serif;"&gt;‘Aplicativo.exe' (Managed (v4.0.30319)): Loaded 'C:\caminho\Bin\Arquivo.dll', Skipped loading symbols. &lt;b&gt;Module is optimized and the debugger option 'Just My Code' is enabled.&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Para conseguir depurar, basta habilitar a opção abaixo:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://2.bp.blogspot.com/-OKit-E0Yxy0/TxCSrw_kYLI/AAAAAAAAId4/wwVH2rbrl4s/s1600/image008-791116.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5697214809207234738" src="http://2.bp.blogspot.com/-OKit-E0Yxy0/TxCSrw_kYLI/AAAAAAAAId4/wwVH2rbrl4s/s320/image008-791116.png" /&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Referência&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-align: justify;"&gt;
&lt;a href="https://login.live.com/login.srf?wa=wsignin1.0&amp;amp;wtrealm=social.msdn.microsoft.com&amp;amp;wreply=https%3a%2f%2fsocial.msdn.microsoft.com%2fForums%2fen-MY%2fvsdebug%2fthread%2fe55d2f23-4803-45a9-995d-77b461e23273%3fstoAI%3d10&amp;amp;wp=MBI_FED_SSL&amp;amp;wlcxt=microsoft%24microsoft%24microsoft"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;https://login.live.com/login.srf?wa=wsignin1.0&amp;amp;wtrealm=social.msdn.microsoft.com&amp;amp;wreply=https%3a%2f%2fsocial.msdn.microsoft.com%2fForums%2fen-MY%2fvsdebug%2fthread%2fe55d2f23-4803-45a9-995d-77b461e23273%3fstoAI%3d10&amp;amp;wp=MBI_FED_SSL&amp;amp;wlcxt=microsoft%24microsoft%24microsoft&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #1f497d;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6331859157625229771-269725214503211011?l=aplicacoesweb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AplicaesWeb/~4/buSiBLK_bn8" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/269725214503211011?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/269725214503211011?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AplicaesWeb/~3/buSiBLK_bn8/visual-studio-nao-depura-quando-se-faz.html" title="Visual Studio não depura quando se faz Attach a um programa" /><author><name>Mateus Queiroz Correia</name><uri>https://profiles.google.com/103544107567690484780</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-D0HajHeutmA/AAAAAAAAAAI/AAAAAAAAAzs/PWg9nWVws10/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-OKit-E0Yxy0/TxCSrw_kYLI/AAAAAAAAId4/wwVH2rbrl4s/s72-c/image008-791116.png" height="72" width="72" /><feedburner:origLink>http://aplicacoesweb.blogspot.com/2012/01/visual-studio-nao-depura-quando-se-faz.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEcDR309fyp7ImA9WhRVFE0.&quot;"><id>tag:blogger.com,1999:blog-6331859157625229771.post-8739128361230020687</id><published>2012-01-12T20:07:00.001-02:00</published><updated>2012-01-12T20:07:56.367-02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-12T20:07:56.367-02:00</app:edited><title>Introdução ao JSON com C#</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/oqUeGByqMiNRd1yLU5twIL_2iw0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oqUeGByqMiNRd1yLU5twIL_2iw0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/oqUeGByqMiNRd1yLU5twIL_2iw0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oqUeGByqMiNRd1yLU5twIL_2iw0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;JavaScript Object Notation é um padrão para troca de
informações. É fácil para homens ler e escrever e maquinas podem facilmente
entender e gerar. Esse padrão é baseado no &amp;nbsp;JavaScript Programming Language, Standard
ECMA-262 3rd Edition - December 1999. JSON é um formato de texto que é
independente de linguagem, mas usa convenções familiares a família C.&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;JSON é construído em 2 estruturas:&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;1 – Uma coleção de pares de chave(string)/valor(string,
number, object, array, true, false, null)&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;2 – Uma lista ordenada de valores&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Uma grande vantagem do JSON é que ele tem pouca verbosidade,
ainda mais quando se comparado com WebService por exemplo. Vários aplicativos
online, que precisam disponibilizar informações de forma simples, fazem
comunicações por JSON, como exemplo há o &lt;a href="https://developer.foursquare.com/overview/auth"&gt;foursquare&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Veja um exemplo de um JSON válido&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Um exemplo simples de leitura JSON no C#&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Crie um projeto Console e adicione referência a&amp;nbsp;System.Runtime.Serialization&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-Et4ui9Uzwn4/Tw9X8urqyxI/AAAAAAAAIds/qPFs66tovKU/s1600/Referencia.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-Et4ui9Uzwn4/Tw9X8urqyxI/AAAAAAAAIds/qPFs66tovKU/s1600/Referencia.gif" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: justify;"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Adicione o código abaixo no arquivo Program.cs, fazendo alterações necessárias ao namespace:&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;pre&gt;using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Runtime.Serialization.Json;
using System.Runtime.Serialization;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            GoogleSearchResults g1 = new GoogleSearchResults();
            const string json = @"{""responseData"": {""results"":[{""GsearchResultClass"":""GwebSearch"",""unescapedUrl"":""http://www.cheese.com/"",""url"":""http://www.cheese.com/"",""visibleUrl"":""www.cheese.com"",""cacheUrl"":""http://www.google.com/search?q\u003dcache:bkg1gwNt8u4J:www.cheese.com"",""title"":""\u003cb\u003eCHEESE\u003c/b\u003e.COM - All about \u003cb\u003echeese\u003c/b\u003e!."",""titleNoFormatting"":""CHEESE.COM - All about cheese!."",""content"":""\u003cb\u003eCheese\u003c/b\u003e - everything you want to know about it. Search \u003cb\u003echeese\u003c/b\u003e by name, by types   of milk, by textures and by countries.""},{""GsearchResultClass"":""GwebSearch"",""unescapedUrl"":""http://en.wikipedia.org/wiki/Cheese"",""url"":""http://en.wikipedia.org/wiki/Cheese"",""visibleUrl"":""en.wikipedia.org"",""cacheUrl"":""http://www.google.com/search?q\u003dcache:n9icdgMlCXIJ:en.wikipedia.org"",""title"":""\u003cb\u003eCheese\u003c/b\u003e - Wikipedia, the free encyclopedia"",""titleNoFormatting"":""Cheese - Wikipedia, the free encyclopedia"",""content"":""\u003cb\u003eCheese\u003c/b\u003e is a food consisting of proteins and fat from milk, usually the milk of   cows, buffalo, goats, or sheep. It is produced by coagulation of the milk \u003cb\u003e...\u003c/b\u003e""},{""GsearchResultClass"":""GwebSearch"",""unescapedUrl"":""http://www.ilovecheese.com/"",""url"":""http://www.ilovecheese.com/"",""visibleUrl"":""www.ilovecheese.com"",""cacheUrl"":""http://www.google.com/search?q\u003dcache:GBhRR8ytMhQJ:www.ilovecheese.com"",""title"":""I Love \u003cb\u003eCheese\u003c/b\u003e!, Homepage"",""titleNoFormatting"":""I Love Cheese!, Homepage"",""content"":""The American Dairy Association\u0026#39;s official site includes recipes and information   on nutrition and storage of \u003cb\u003echeese\u003c/b\u003e.""},{""GsearchResultClass"":""GwebSearch"",""unescapedUrl"":""http://www.gnome.org/projects/cheese/"",""url"":""http://www.gnome.org/projects/cheese/"",""visibleUrl"":""www.gnome.org"",""cacheUrl"":""http://www.google.com/search?q\u003dcache:jvfWnVcSFeQJ:www.gnome.org"",""title"":""\u003cb\u003eCheese\u003c/b\u003e"",""titleNoFormatting"":""Cheese"",""content"":""\u003cb\u003eCheese\u003c/b\u003e uses your webcam to take photos and videos, applies fancy special effects   and lets you share the fun with others. It was written as part of Google\u0026#39;s \u003cb\u003e...\u003c/b\u003e""}],""cursor"":{""pages"":[{""start"":""0"",""label"":1},{""start"":""4"",""label"":2},{""start"":""8"",""label"":3},{""start"":""12"",""label"":4},{""start"":""16"",""label"":5},{""start"":""20"",""label"":6},{""start"":""24"",""label"":7},{""start"":""28"",""label"":8}],""estimatedResultCount"":""14400000"",""currentPageIndex"":0,""moreResultsUrl"":""http://www.google.com/search?oe\u003dutf8\u0026ie\u003dutf8\u0026source\u003duds\u0026start\u003d0\u0026hl\u003den-GB\u0026q\u003dcheese""}}, ""responseDetails"": null, ""responseStatus"": 200}";
            g1 = JSONHelper.Deserialise&lt;googlesearchresults&gt;(json);

            foreach (Results x in g1.responseData.results)
            {
                // Anything you want to get
                Console.WriteLine(x.content);

            }
        }
    }

    public class JSONHelper
    {

        public static T Deserialise&lt;t&gt;(string json)
        {
            using (var ms = new MemoryStream(Encoding.Unicode.GetBytes(json)))
            {
                var serialiser = new DataContractJsonSerializer(typeof(T));
                return (T)serialiser.ReadObject(ms);
            }
        }
    }
    [DataContract]
    public class GoogleSearchResults
    {
        [DataMember]
        public ResponseData responseData { get; set; }
    }

    [DataContract]
    public class ResponseData
    {
        [DataMember]
        public IEnumerable&lt;results&gt; results { get; set; }
    }

    [DataContract]
    public class Results
    {
        [DataMember]
        public string unescapedUrl { get; set; }

        [DataMember]
        public string url { get; set; }

        [DataMember]
        public string visibleUrl { get; set; }

        [DataMember]
        public string cacheUrl { get; set; }

        [DataMember]
        public string title { get; set; }

        [DataMember]
        public string titleNoFormatting { get; set; }

        [DataMember]
        public string content { get; set; }
    }
}
&lt;/results&gt;&lt;/t&gt;&lt;/googlesearchresults&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;div class="MsoNormal"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Referências:&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://www.json.org/"&gt;http://www.json.org/&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://www.codeproject.com/KB/aspnet/G_Search_REST_API_Dot_Net.aspx"&gt;http://www.codeproject.com/KB/aspnet/G_Search_REST_API_Dot_Net.aspx&lt;/a&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;a href="http://stackoverflow.com/questions/1212344/parse-json-in-c-sharp"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;http://stackoverflow.com/questions/1212344/parse-json-in-c-sharp&lt;/span&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Ferramentas:&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;JSON Viewer&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;a href="http://sourceforge.net/projects/nppjsonviewer/"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;http://sourceforge.net/projects/nppjsonviewer/&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span lang="EN-US"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Online JSON Viewer&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;a href="http://jsonviewer.stack.hu/"&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;http://jsonviewer.stack.hu/&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span lang="EN-US"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;JSON Validator&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://jsonlint.com/"&gt;&lt;span lang="EN-US"&gt;http://jsonlint.com/&lt;/span&gt;&lt;/a&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br class="Apple-interchange-newline" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6331859157625229771-8739128361230020687?l=aplicacoesweb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AplicaesWeb/~4/uO2yMp_ouZc" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/8739128361230020687?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/8739128361230020687?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AplicaesWeb/~3/uO2yMp_ouZc/introducao-ao-json-com-c.html" title="Introdução ao JSON com C#" /><author><name>Mateus Queiroz Correia</name><uri>https://profiles.google.com/103544107567690484780</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-D0HajHeutmA/AAAAAAAAAAI/AAAAAAAAAzs/PWg9nWVws10/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-Et4ui9Uzwn4/Tw9X8urqyxI/AAAAAAAAIds/qPFs66tovKU/s72-c/Referencia.gif" height="72" width="72" /><feedburner:origLink>http://aplicacoesweb.blogspot.com/2012/01/introducao-ao-json-com-c.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQARHg8eSp7ImA9WhRVFE0.&quot;"><id>tag:blogger.com,1999:blog-6331859157625229771.post-3099981141573715362</id><published>2012-01-12T19:05:00.000-02:00</published><updated>2012-01-12T19:05:45.671-02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-12T19:05:45.671-02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ISAPI" /><category scheme="http://www.blogger.com/atom/ns#" term="IIS 7" /><title>Restrições no ISAPI CGI</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/VsCoEbcZAS2csoDMPRcsNhWRSM8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VsCoEbcZAS2csoDMPRcsNhWRSM8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/VsCoEbcZAS2csoDMPRcsNhWRSM8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VsCoEbcZAS2csoDMPRcsNhWRSM8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="WordSection1"&gt;
&lt;div class="MsoNormal"&gt;
&lt;b&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;O erro&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;No IIS 7, você pode ter o erro HTTP 404.2 abaixo:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Se você estiver tendo o erro em português:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="text-indent: 35.4pt;"&gt;
&lt;i&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;A página que você está solicitando não pode ser servida devido às configurações da lista de Restrições ISAPI e CGI no servidor Web.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Ou em inglês:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="background: white; line-height: 13.5pt; vertical-align: baseline;"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/i&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;The page you requested could not be displayed because of the settings for the list of ISAPI and CGI restrictions on web server.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;b&gt;&lt;span lang="EN-US" style="font-family: Arial, Helvetica, sans-serif;"&gt;A solução&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Você deve permitir a execução do .net framework no IIS, abra o &amp;nbsp;Gerenciador do Serviços de Informações da Internet(IIS):&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;b&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="color: #1f497d;"&gt;&lt;a href="http://3.bp.blogspot.com/-1xBvu5qTqQI/Tw9KoplTWwI/AAAAAAAAIdM/m-S4oZuO3vo/s1600/image002-709762.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5696854115864500994" src="http://3.bp.blogspot.com/-1xBvu5qTqQI/Tw9KoplTWwI/AAAAAAAAIdM/m-S4oZuO3vo/s320/image002-709762.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="color: #1f497d;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Na raiz, configure as Restrições ISAPI e CGI:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="color: #1f497d;"&gt;&lt;a href="http://2.bp.blogspot.com/-VhNZFKb92VU/Tw9KojnW39I/AAAAAAAAIdY/5MKAy8uu-bw/s1600/image004-710881.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5696854114262507474" src="http://2.bp.blogspot.com/-VhNZFKb92VU/Tw9KojnW39I/AAAAAAAAIdY/5MKAy8uu-bw/s320/image004-710881.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Permita a execução do asp.net&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="color: #1f497d;"&gt;&lt;a href="http://1.bp.blogspot.com/-r9M_A7Xcgd4/Tw9KpOjnxlI/AAAAAAAAIdo/2lUr7Vtwpvw/s1600/image005-712542.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5696854125789562450" src="http://1.bp.blogspot.com/-r9M_A7Xcgd4/Tw9KpOjnxlI/AAAAAAAAIdo/2lUr7Vtwpvw/s320/image005-712542.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="color: #1f497d;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Feito isso, basta tentar acessar sua aplicação/página novamente.&lt;br clear="all" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Fonte: &lt;a href="http://social.msdn.microsoft.com/Forums/pt/aspnetpt/thread/5ceb2b35-73f6-47a4-9292-4ce2b3f8c83f"&gt;http://social.msdn.microsoft.com/Forums/pt/aspnetpt/thread/5ceb2b35-73f6-47a4-9292-4ce2b3f8c83f&lt;/a&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6331859157625229771-3099981141573715362?l=aplicacoesweb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AplicaesWeb/~4/nTO_t3vhHf8" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/3099981141573715362?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/3099981141573715362?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AplicaesWeb/~3/nTO_t3vhHf8/restricoes-no-isapi-cgi.html" title="Restrições no ISAPI CGI" /><author><name>Mateus Queiroz Correia</name><uri>https://profiles.google.com/103544107567690484780</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-D0HajHeutmA/AAAAAAAAAAI/AAAAAAAAAzs/PWg9nWVws10/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-1xBvu5qTqQI/Tw9KoplTWwI/AAAAAAAAIdM/m-S4oZuO3vo/s72-c/image002-709762.png" height="72" width="72" /><feedburner:origLink>http://aplicacoesweb.blogspot.com/2012/01/restricoes-no-isapi-cgi.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YFR3ozcCp7ImA9WhRXEE0.&quot;"><id>tag:blogger.com,1999:blog-6331859157625229771.post-711943947597281434</id><published>2009-05-21T10:20:00.003-03:00</published><updated>2011-12-16T01:11:56.488-02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-16T01:11:56.488-02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="firefox" /><category scheme="http://www.blogger.com/atom/ns#" term="Javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="AJAX" /><title>Extensão do FireFox para depurar o ASP.NET Ajax - FireAtlas</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/0XSockpNiiH7qyybc-nr4iOTfuk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0XSockpNiiH7qyybc-nr4iOTfuk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/0XSockpNiiH7qyybc-nr4iOTfuk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0XSockpNiiH7qyybc-nr4iOTfuk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="Section1"&gt;  &lt;p class="MsoNormal"&gt;O Firebug é uma extensão do FireFox excelente para depurar javascript, css etc. Agora foi criado uma extensão para o Firebug para depurar o ASP.NET Ajax que ainda é grátis:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;Para mais detalhes consulte este link:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://fireatlas.chesnaistechnologies.com/"&gt;http://fireatlas.chesnaistechnologies.com/&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6331859157625229771-711943947597281434?l=aplicacoesweb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AplicaesWeb/~4/TwtdouLBHdE" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/711943947597281434?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/711943947597281434?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AplicaesWeb/~3/TwtdouLBHdE/extensao-do-firefox-para-depurar-o.html" title="Extensão do FireFox para depurar o ASP.NET Ajax - FireAtlas" /><author><name>Mateus Queiroz Correia</name><uri>https://profiles.google.com/103544107567690484780</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-D0HajHeutmA/AAAAAAAAAAI/AAAAAAAAAzs/PWg9nWVws10/s512-c/photo.jpg" /></author><feedburner:origLink>http://aplicacoesweb.blogspot.com/2009/05/extensao-do-firefox-para-depurar-o.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEABSXc-fyp7ImA9WxRSE0Q.&quot;"><id>tag:blogger.com,1999:blog-6331859157625229771.post-1472114528324506108</id><published>2008-09-14T09:36:00.001-03:00</published><updated>2008-09-14T09:52:38.957-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-14T09:52:38.957-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows Vista" /><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio 2008" /><category scheme="http://www.blogger.com/atom/ns#" term="IIS 7" /><title>Abrindo um Web Site do IIS no VS2008</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/5QPZBLBtxzkWoZKC1uVcH-j2o9I/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5QPZBLBtxzkWoZKC1uVcH-j2o9I/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/5QPZBLBtxzkWoZKC1uVcH-j2o9I/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5QPZBLBtxzkWoZKC1uVcH-j2o9I/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Ao abrir o VS 2008 pode aparecer o seguinte erro:&lt;div&gt;  &lt;p&gt; &lt;/p&gt;    &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_b8Po4UBWLzo/SM0Dz-5p8OI/AAAAAAAAAaE/ZK9y4IglMFw/s1600-h/001.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_b8Po4UBWLzo/SM0Dz-5p8OI/AAAAAAAAAaE/ZK9y4IglMFw/s400/001.png" alt="" id="BLOGGER_PHOTO_ID_5245853332549529826" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p&gt;“To Access local IIS Web sites, you must install the following IIS components:&lt;/p&gt;  &lt;p&gt;IIS 6 Metabase and IIS 5 Configuration Compatibility Windows Authentication”&lt;/p&gt;  &lt;h2&gt;Instalando Recurso do Windows&lt;/h2&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Para fazer este acerto, é necessário abrir Iniciar / Painel de Controle / Programas e Recursos:&lt;/p&gt;  &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_b8Po4UBWLzo/SM0Dz_vMiKI/AAAAAAAAAaM/9_clONwZJec/s1600-h/002.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_b8Po4UBWLzo/SM0Dz_vMiKI/AAAAAAAAAaM/9_clONwZJec/s400/002.png" alt="" id="BLOGGER_PHOTO_ID_5245853332774095010" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Feito isso, selecionar : Ativar ou desativar recursos do Windows:&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_b8Po4UBWLzo/SM0D0AHQ88I/AAAAAAAAAaU/cQqsP9agbVI/s1600-h/003.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_b8Po4UBWLzo/SM0D0AHQ88I/AAAAAAAAAaU/cQqsP9agbVI/s400/003.png" alt="" id="BLOGGER_PHOTO_ID_5245853332875047874" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;E marcar a opção Compatibilidade com Gerenciamento do IIS 6:&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_b8Po4UBWLzo/SM0D0Z4ch-I/AAAAAAAAAac/eInACwFNmBA/s1600-h/004.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_b8Po4UBWLzo/SM0D0Z4ch-I/AAAAAAAAAac/eInACwFNmBA/s400/004.png" alt="" id="BLOGGER_PHOTO_ID_5245853339792213986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Será necessário reiniciar a máquina, pois o Windows Vista não solicita este reinicio.&lt;/p&gt;  &lt;h2&gt;Executando o Visual Studio 2008 como administrador&lt;/h2&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Além disso é necessário executar o Visual Studio 2008 como Administrador:&lt;/p&gt;  &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_b8Po4UBWLzo/SM0D0ZRRcsI/AAAAAAAAAak/xfYO99D_ruE/s1600-h/005.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_b8Po4UBWLzo/SM0D0ZRRcsI/AAAAAAAAAak/xfYO99D_ruE/s400/005.png" alt="" id="BLOGGER_PHOTO_ID_5245853339627909826" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;  &lt;h2&gt;Permissão no diretório da aplicação&lt;/h2&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Será necessário dar permissão no diretório da aplicação ao usuário definido no Application Pool da Aplicação no IIS, no meu caso:&lt;/p&gt;  &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_b8Po4UBWLzo/SM0EINOQ6zI/AAAAAAAAAas/FsiSAwyDjoY/s1600-h/006.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_b8Po4UBWLzo/SM0EINOQ6zI/AAAAAAAAAas/FsiSAwyDjoY/s400/006.png" alt="" id="BLOGGER_PHOTO_ID_5245853679991450418" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;Referências:&lt;/p&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2006/09/19/Tip_2F00_Trick_3A00_-Using-IIS7-on-Vista-with-VS-2005.aspx"&gt;http://weblogs.asp.net/scottgu/archive/2006/09/19/Tip_2F00_Trick_3A00_-Using-IIS7-on-Vista-with-VS-2005.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.marcosdellantonio.net/2008/08/10/visual-studio-2008-e-iis-70/"&gt;http://learn.iis.net/page.aspx/131/compatibility-and-feature-requirements-for-windows-vista/&lt;br /&gt;http://www.marcosdellantonio.net/2008/08/10/visual-studio-2008-e-iis-70/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.devmedia.com.br/articles/viewcomp.asp?comp=3882"&gt;http://www.devmedia.com.br/articles/viewcomp.asp?comp=3882&lt;/a&gt;&lt;br /&gt;&lt;a href="http://learn.iis.net/page.aspx/125/metabase-compatibility-with-iis-7/"&gt;http://learn.iis.net/page.aspx/125/metabase-compatibility-with-iis-7/&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6331859157625229771-1472114528324506108?l=aplicacoesweb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AplicaesWeb/~4/Ehg0ibNo0Rk" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/1472114528324506108?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/1472114528324506108?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AplicaesWeb/~3/Ehg0ibNo0Rk/abrindo-um-web-site-do-iis-no-vs2008.html" title="Abrindo um Web Site do IIS no VS2008" /><author><name>Mateus Queiroz Correia</name><uri>https://profiles.google.com/103544107567690484780</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-D0HajHeutmA/AAAAAAAAAAI/AAAAAAAAAzs/PWg9nWVws10/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_b8Po4UBWLzo/SM0Dz-5p8OI/AAAAAAAAAaE/ZK9y4IglMFw/s72-c/001.png" height="72" width="72" /><feedburner:origLink>http://aplicacoesweb.blogspot.com/2008/09/abrindo-um-web-site-do-iis-no-vs2008.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YBQnozeyp7ImA9WxRTFE0.&quot;"><id>tag:blogger.com,1999:blog-6331859157625229771.post-1059187486446231256</id><published>2008-09-02T21:17:00.001-03:00</published><updated>2008-09-02T21:19:13.483-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-02T21:19:13.483-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Desempenho" /><category scheme="http://www.blogger.com/atom/ns#" term="IIS" /><title>Monitorando aplicações WEB</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jjUE1CsFaJJaZctOn2Kwys7_bRU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jjUE1CsFaJJaZctOn2Kwys7_bRU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/jjUE1CsFaJJaZctOn2Kwys7_bRU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jjUE1CsFaJJaZctOn2Kwys7_bRU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Utilizar os Performances Counters para monitorar a aplicação WEB é interessante. Com ele podemos identificar se há algum gargalo ou ver como anda o desempenho de nossas aplicações, segue dois links interessantes:&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/4427ad2b-c33b-4b5f-b18a-16568349149a.mspx?mfr=true" target="_blank"&gt;http://www.microsoft.com/&lt;wbr&gt;technet/prodtechnol/&lt;wbr&gt;WindowsServer2003/Library/IIS/&lt;wbr&gt;4427ad2b-c33b-4b5f-b18a-&lt;wbr&gt;16568349149a.mspx?mfr=true&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/852720c8-7589-49c3-a9d1-73fdfc9126f0.mspx?mfr=true" target="_blank"&gt;http://www.microsoft.com/&lt;wbr&gt;technet/prodtechnol/&lt;wbr&gt;WindowsServer2003/Library/IIS/&lt;wbr&gt;852720c8-7589-49c3-a9d1-&lt;wbr&gt;73fdfc9126f0.mspx?mfr=true&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6331859157625229771-1059187486446231256?l=aplicacoesweb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AplicaesWeb/~4/DQmSjBjduHQ" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/1059187486446231256?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/1059187486446231256?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AplicaesWeb/~3/DQmSjBjduHQ/monitorando-aplicaes-web.html" title="Monitorando aplicações WEB" /><author><name>Mateus Queiroz Correia</name><uri>https://profiles.google.com/103544107567690484780</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-D0HajHeutmA/AAAAAAAAAAI/AAAAAAAAAzs/PWg9nWVws10/s512-c/photo.jpg" /></author><feedburner:origLink>http://aplicacoesweb.blogspot.com/2008/09/monitorando-aplicaes-web.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QDQn8ycSp7ImA9WxdaEE0.&quot;"><id>tag:blogger.com,1999:blog-6331859157625229771.post-3616901759368712683</id><published>2008-08-17T16:31:00.003-03:00</published><updated>2008-08-17T17:36:13.199-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-17T17:36:13.199-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Maps" /><category scheme="http://www.blogger.com/atom/ns#" term="Google" /><title>Controle ASP.NET para Google Maps</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/OpYcuz9zkckfOEfSyNxzsr2EGLw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OpYcuz9zkckfOEfSyNxzsr2EGLw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/OpYcuz9zkckfOEfSyNxzsr2EGLw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OpYcuz9zkckfOEfSyNxzsr2EGLw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;O Google possui uma API para desenvolvedores onde fornece várias funcionalidades como o Google Maps. A documentação do Google Maps pode ser vista neste endereço &lt;a href="http://code.google.com/apis/maps/documentation/index.html"&gt;http://code.google.com/apis/maps/documentation/index.html&lt;/a&gt; onde temos acesso a informações como como termos de uso e sobre a necessidade de se criar uma chave para cada diretório de site que for usar o Google Maps.&lt;br /&gt;&lt;br /&gt;A chave pode ser criada &lt;a href="http://www.google.com/apis/maps/signup.html"&gt;neste endereço&lt;/a&gt; e &lt;a href="http://code.google.com/apis/maps/terms.html"&gt;neste temos acesso aos termos para uso do serviço&lt;/a&gt;. O Google representa uma instância do mapa como o objeto GMap. Uma vez com esta instância é possível adicionar vários controles como o GMapType, onde é possível definir o tipo de visualização do mapa. É possível utilizar dos controles já existentes ou criar controles próprios, abaixo segue a lista de controles existentes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;GLargeMapControl - grande controle de zoom e rolagem.&lt;/li&gt;&lt;li&gt;GSmallMapControl - pequeno controle de zoom e rolagem.&lt;/li&gt;&lt;li&gt;GSmallZoomControl - pequeno control de zoom(sem rolagem).&lt;/li&gt;&lt;li&gt;GScaleControl - mapa de escala.&lt;/li&gt;&lt;li&gt;GMapTypeControl - botões que permitem usuários trocarem entre diferentes visualizações de mapa(Como mapa e satélite).&lt;/li&gt;&lt;li&gt;GHierarchicalMapTypeControl - botões e menus para localizar vários tipos de selecionadores do mapa.&lt;/li&gt;&lt;li&gt;GOverviewMapControl - uma visão geral do mapa que pode ser expandido ou fechado.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;O Google Maps também tem o conceito de overlay, que são objetos no mapa definidos para coordenadas de latitudes e longitudes. Há vários tipos de overlays:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Makers - são pontos no mapa e algumas vezes mostram ícones customizados. Markers são do tipo GMarker e podem usar o tipo GIcon&lt;/li&gt;&lt;li&gt;Polylines - são linhas no mapa, representando uma coleção de pontos. São do tipo GPolyline.&lt;/li&gt;&lt;li&gt;Polygons - são áreas no mapa que mostram áreas arbritrárias. Similar ao Polylines, só que consiste em uma coleção de pontos que são fechados.&lt;/li&gt;&lt;li&gt;Title overlay - o mapa é representando com o title overlay. Podemos modificar este com nosso próprio conjunto de títulos usando o GTitleLayerOverlay ou criando um GMapType.&lt;/li&gt;&lt;li&gt;Info window - é um tipo especial de overlay. Este é adicionado ao mapa automaticamente é só pode haver um objeto do tipo GInfoWindow anexado ao mapa.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Entendendo o funcionamento do Google Maps com o javascript existem implementações de controles de ASP.NET onde foi feito um controle(wrapper) que facilita o uso desta funcionalidade utilizando .net muitas vezes no lugar do javascript.&lt;br /&gt;&lt;br /&gt;Um exemplo desta implementação é este:&lt;br /&gt;&lt;a href="http://dotnet.sys-con.com/node/171162"&gt;http://dotnet.sys-con.com/node/171162&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Para baixar os fontes do controle basta ir neste endereço:&lt;br /&gt;&lt;a href="http://gemsres.com/story/jan06/171162/source.html"&gt;http://gemsres.com/story/jan06/171162/source.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Referências:&lt;br /&gt;&lt;a href="http://code.google.com/apis/maps/documentation/controls.html"&gt;http://code.google.com/apis/maps/documentation/controls.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://code.google.com/apis/maps/documentation/overlays.html"&gt;http://code.google.com/apis/maps/documentation/overlays.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2006/01/22/436166.aspx"&gt;http://weblogs.asp.net/scottgu/archive/2006/01/22/436166.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.codeproject.com/KB/custom-controls/LatLaysFlat-Part1.aspx"&gt;http://www.codeproject.com/KB/custom-controls/LatLaysFlat-Part1.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://dotnet.sys-con.com/node/171162"&gt;http://dotnet.sys-con.com/node/171162&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6331859157625229771-3616901759368712683?l=aplicacoesweb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AplicaesWeb/~4/xELrcHkHihM" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/3616901759368712683?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/3616901759368712683?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AplicaesWeb/~3/xELrcHkHihM/controle-aspnet-para-google-maps.html" title="Controle ASP.NET para Google Maps" /><author><name>Mateus Queiroz Correia</name><uri>https://profiles.google.com/103544107567690484780</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-D0HajHeutmA/AAAAAAAAAAI/AAAAAAAAAzs/PWg9nWVws10/s512-c/photo.jpg" /></author><feedburner:origLink>http://aplicacoesweb.blogspot.com/2008/08/controle-aspnet-para-google-maps.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEAQXs_eip7ImA9WxdVEkg.&quot;"><id>tag:blogger.com,1999:blog-6331859157625229771.post-3548218819304354573</id><published>2008-07-03T12:55:00.002-03:00</published><updated>2008-07-16T21:30:40.542-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-16T21:30:40.542-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="AJAX" /><title>ASP.NET AJAX RoadMap</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/vHIssiHEVaIP35sh7CSxBSNr24U/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vHIssiHEVaIP35sh7CSxBSNr24U/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/vHIssiHEVaIP35sh7CSxBSNr24U/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vHIssiHEVaIP35sh7CSxBSNr24U/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div&gt;Foi liberado um  documento que divulga as novas implementações que estão sendo pensadas para o  ASP.NET Ajax:&lt;/div&gt; &lt;div&gt;&lt;a href="http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=14924"&gt;http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=14924&lt;/a&gt;&lt;/div&gt; &lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Algumas informações  relevantes que pude achar neste documento foi:&lt;/div&gt; &lt;div&gt;&lt;/div&gt;   &lt;ul&gt;&lt;li&gt;Nele é citado como    eles pretendem organizar as evoluções da biblioteca e a disponibilização de    extensões através do CodePlex;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;A idéia de criar    uma linguagem de script para facilitar bind de dados em cliente, através de    javascript e templates;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;Com isso deve ser    criado um DataSource em cliente, para permitir um "live binding" e atualização    de informações em cliente;&lt;/li&gt;&lt;/ul&gt; &lt;div&gt;Existem diversas  outras informações neste documento, onde a equipe de desenvolvimento do estão  com idéias. Vale a pena ver todo o documento e acompanhar estas novidades em  suas versões futuras CTP através do site:&lt;/div&gt; &lt;div&gt;&lt;a href="http://www.codeplex.com/aspnet"&gt;http://www.codeplex.com/aspnet&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6331859157625229771-3548218819304354573?l=aplicacoesweb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AplicaesWeb/~4/q3ZpWDuqzhE" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/3548218819304354573?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/3548218819304354573?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AplicaesWeb/~3/q3ZpWDuqzhE/aspnet-ajax-roadmap.html" title="ASP.NET AJAX RoadMap" /><author><name>Mateus Queiroz Correia</name><uri>https://profiles.google.com/103544107567690484780</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-D0HajHeutmA/AAAAAAAAAAI/AAAAAAAAAzs/PWg9nWVws10/s512-c/photo.jpg" /></author><feedburner:origLink>http://aplicacoesweb.blogspot.com/2008/07/aspnet-ajax-roadmap.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EGSHc9eCp7ImA9WxdXF0o.&quot;"><id>tag:blogger.com,1999:blog-6331859157625229771.post-1405727629490651516</id><published>2008-06-29T17:29:00.001-03:00</published><updated>2008-06-29T17:33:49.960-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-06-29T17:33:49.960-03:00</app:edited><title>Cliente Web</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/cB55jI5SWX9EYsVNRAiI6O4qe1Y/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cB55jI5SWX9EYsVNRAiI6O4qe1Y/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/cB55jI5SWX9EYsVNRAiI6O4qe1Y/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cB55jI5SWX9EYsVNRAiI6O4qe1Y/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Até para dar a devida importância nas tecnologias de cliente, criei outro blog para tratar das tecnologias utilizadas nesta camada. A idéia é publicar e evoluir o material que utilizei para lecionar sobre estas tecnologias e ter algo focado, com teorias e práticas com qualidade em um único lugar.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://clienteweb.blogspot.com/"&gt;Veja aqui&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6331859157625229771-1405727629490651516?l=aplicacoesweb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AplicaesWeb/~4/GLusBcZlCPw" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/1405727629490651516?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/1405727629490651516?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AplicaesWeb/~3/GLusBcZlCPw/cliente-web.html" title="Cliente Web" /><author><name>Mateus Queiroz Correia</name><uri>https://profiles.google.com/103544107567690484780</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-D0HajHeutmA/AAAAAAAAAAI/AAAAAAAAAzs/PWg9nWVws10/s512-c/photo.jpg" /></author><feedburner:origLink>http://aplicacoesweb.blogspot.com/2008/06/cliente-web.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEQERHg9eip7ImA9WxdRE0k.&quot;"><id>tag:blogger.com,1999:blog-6331859157625229771.post-4057583844889170145</id><published>2008-06-01T14:02:00.009-03:00</published><updated>2008-06-01T15:51:45.662-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-06-01T15:51:45.662-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="META" /><category scheme="http://www.blogger.com/atom/ns#" term="REFRESH" /><title>Atualizando a página automaticamente.</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/JrwZ-Jyv4T2TEI2ggzZpZ-Nhkcg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JrwZ-Jyv4T2TEI2ggzZpZ-Nhkcg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/JrwZ-Jyv4T2TEI2ggzZpZ-Nhkcg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JrwZ-Jyv4T2TEI2ggzZpZ-Nhkcg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;As vezes criamos páginas que terão conteúdos dinâmicos e atualizados com frequência, e ainda por cima, gostaríamos que a atualização acontecesse de forma periódica e automática para nossos usuários.  Por exemplo poderíamos citar um site com informações sobre cotações, onde as informações são atualizadas a cada 1 minuto.&lt;br /&gt;&lt;br /&gt;Para implementar esta idéia temos várias opções, as duas mais básicas são utilizar javascript ou usar o elemento HTML META.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Javascript&lt;/h3&gt;Uma opção com javascript é utilizar o window.setTimeOut, para fazer com que passado o tempo definido, o usuário seja direcionado para a própria página.&lt;br /&gt;&lt;br /&gt;Exemplo de atualização em 5 segundos:&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color:#efefef"&gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;   &amp;lt;head&amp;gt;&lt;br /&gt;       &amp;lt;title&amp;gt;Exemplo de atualização de página&lt;br /&gt;       com javascript&amp;lt;/title&amp;gt;&lt;br /&gt;       &amp;lt;script type="text/JavaScript"&amp;gt;&lt;br /&gt;       &amp;lt;!--&lt;br /&gt;&lt;br /&gt;       function doLoad()&lt;br /&gt;       {&lt;br /&gt;           setTimeout( "refresh()", 5*1000 );&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;       function refresh()&lt;br /&gt;       {&lt;br /&gt;           window.location.href = window.location;&lt;br /&gt;       }&lt;br /&gt;       //--&amp;gt;&lt;br /&gt;       &amp;lt;/script&amp;gt;&lt;br /&gt;           &amp;lt;/head&amp;gt;&lt;br /&gt;   &amp;lt;body onload="doLoad();"&amp;gt;&lt;br /&gt;       Última atualização as&lt;br /&gt;     &lt;br /&gt;       &amp;lt;script type="text/JavaScript"&amp;gt;&lt;br /&gt;       &amp;lt;!--&lt;br /&gt;           document.write('&amp;lt;b&amp;gt;' + (new Date()).toLocaleString() + &amp;lt;/b&amp;gt;');&lt;br /&gt;       //--&amp;gt;&lt;br /&gt;       &amp;lt;/script&amp;gt;&lt;br /&gt; &lt;br /&gt;   &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Elemento Meta&lt;/h3&gt;&lt;br /&gt;O elemento HTML META permite que seja adicionado ao documento, a página HTML, informações sobre o próprio documento. Várias informações podem ser adicionadas a página desta forma, como autor, informações sobre cache, informações para bots de pequisa e várias outras. No caso, estamos interessado na atualização(Refresh).&lt;br /&gt;&lt;br /&gt;Para utilizarmos a atualização(Refresh), devemos adicionar um elemento meta dentro do elemento head, especificar o atributo http-equiv com o valor refresh, além do atributo content, que contêm o tempo de atualização em segundos e a url destino(se não for a mesma).&lt;br /&gt;&lt;br /&gt;&amp;lt;meta equiv="refresh" content="[TEMPO EM SEGUNDOS];[URL DESTINO(Opcional)]"&amp;gt;&lt;br /&gt;&lt;br /&gt;Neste exemplo é feito a atualização da página atual em 5 segundos:&lt;br /&gt;&lt;div style="background-color:#efefef"&gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;meta equiv="refresh" content="5"&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Há também a possibilidade de se utilizar AJAX, para que não seja necessário a atualização de toda a página, mas somente dos dados que são dinâmicos da página.&lt;br /&gt;&lt;br /&gt;Referências:&lt;br /&gt;&lt;a href="http://developer.mozilla.org/pt/docs/Utilizando_meta_tags"&gt;http://developer.mozilla.org/pt/docs/Utilizando_meta_tags&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.w3schools.com/tags/tag_meta.asp"&gt;http://www.w3schools.com/tags/tag_meta.asp&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms533689%28VS.85%29.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms533689(VS.85).aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://grizzlyweb.com/webmaster/javascripts/refresh.asp"&gt;http://grizzlyweb.com/webmaster/javascripts/refresh.asp&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6331859157625229771-4057583844889170145?l=aplicacoesweb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AplicaesWeb/~4/SQPVwlGBO40" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/4057583844889170145?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/4057583844889170145?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AplicaesWeb/~3/SQPVwlGBO40/atualizando-pgina-automaticamente.html" title="Atualizando a página automaticamente." /><author><name>Mateus Queiroz Correia</name><uri>https://profiles.google.com/103544107567690484780</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-D0HajHeutmA/AAAAAAAAAAI/AAAAAAAAAzs/PWg9nWVws10/s512-c/photo.jpg" /></author><feedburner:origLink>http://aplicacoesweb.blogspot.com/2008/06/atualizando-pgina-automaticamente.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMEQ34zeCp7ImA9WxdSFU0.&quot;"><id>tag:blogger.com,1999:blog-6331859157625229771.post-5602343128082768310</id><published>2008-05-22T21:55:00.003-03:00</published><updated>2008-05-22T22:00:02.080-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-22T22:00:02.080-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="cookie" /><title>Utilizando cookies</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/pbT_pcieDER5wdbuprfpeDU5BAM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pbT_pcieDER5wdbuprfpeDU5BAM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/pbT_pcieDER5wdbuprfpeDU5BAM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pbT_pcieDER5wdbuprfpeDU5BAM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Um cookie é formado por dados em forma de texto que acompanham as requisições e respostas entre navegadores e servidores web. O cookie contêm informações que a aplicação Web pode ler sempre que o usuário visita o site. Desta forma podemos armazenar, por exemplo preferências do usuário através do cookie.&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;"&gt;Quando um usuário requisita uma página de um site, o site pode retornar além da página, cookies que são armazenados localmente. Mais tarde, se o usuário requisita uma página do mesmo site novamente, o navegador irá enviar os cookies daquele site juntamente com a requisição.&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;"&gt;Os cookies são associados a sites e não a páginas e usuários. Então a medida que os usuários navegam podem ser armazenados cookies de sites que diferentes uns dos outros.&lt;/p&gt;  &lt;p class="western" style="margin-bottom: 0cm; font-weight: bold;"&gt;Limitações de cookies&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;"&gt;A maioria dos navegadores suportam cookies de até 4096 bytes. Por este pequeno limite, cookies são usados para armazenar pequenas quantidades de dados.&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;"&gt;Pode haver também limitações de quantidade de cookies que um site pode armazenar, sendo que a maioria dos navegadores impõem um limite de 20 cookies por site. Alguns navegadores limitam a 300 cookies armazenados na máquina&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;"&gt;Outra limitação é que o cliente pode desabilitar cookies&lt;/p&gt;  &lt;p class="western" style="margin-bottom: 0cm; font-weight: bold;"&gt;Escrevendo cookies&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;"&gt;O ASP.NET escreve cookies na resposta de uma requisição, o navegador que é responsável pela persistência dos dados no cliente. Quando criado um cookie, deve ser especificado um nome e  valor. Cada cookie deve ter um nome único, para que possa ser recuperado posteriormente. É possível informar uma data de expiração do cookie, lembrando que o usuário pode limpar os cookies antes da expiração definida pelo nosso código.&lt;/p&gt;  &lt;p class="western" style="margin-bottom: 0cm; font-weight: bold;"&gt;Controlando o escopo do cookie&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;"&gt;Os cookies podem ter um escopo limitado para diretórios dentro do domínio, utilizando subdomínios do site.&lt;/p&gt;  &lt;p class="western" style="margin-bottom: 0cm; font-weight: bold;"&gt;Determinando se o navegador suporta cookie&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;"&gt;Uma forma de descobrir se o navegador suporta cookie é enviar um cookie para o usuário e posteriormente tentar lê-lo.&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;"&gt;&lt;span style="font-weight: bold;"&gt;Prática&lt;/span&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;"&gt;Vamos agora montar um exemplo que irá armazenar o usuário e data do último login do usuário no site, quando ele marca uma opção para isto. Para isso, crie um novo Web site e na página default.aspx adicione os seguintes controles e defina suas propriedades como abaixo:&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;Label&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;ID: lbUsuario&lt;/p&gt;   &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;Text : Usuário&lt;/p&gt;  &lt;/li&gt;&lt;/ul&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;TextBox&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;ID : txtUsuario&lt;/p&gt;  &lt;/li&gt;&lt;/ul&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;Button&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;ID: btnEnviar&lt;/p&gt;   &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;Text: Enviar&lt;/p&gt;  &lt;/li&gt;&lt;/ul&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;Label&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;ID: lbUltimoLogin&lt;/p&gt;   &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;Text : &lt;i&gt;vazio&lt;/i&gt;&lt;/p&gt;  &lt;/li&gt;&lt;/ul&gt; &lt;/li&gt;&lt;/ul&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Feito isto a parte visual da página deverá estar parecido com a Imagem 1:&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_b8Po4UBWLzo/SDYWdZ75n7I/AAAAAAAAANA/DdDh3mfIJ3s/s1600-h/Imagem+1+%E2%80%93+P%C3%A1gina+Default.aspx+com+os+controles+configurados.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_b8Po4UBWLzo/SDYWdZ75n7I/AAAAAAAAANA/DdDh3mfIJ3s/s400/Imagem+1+%E2%80%93+P%C3%A1gina+Default.aspx+com+os+controles+configurados.jpg" alt="" id="BLOGGER_PHOTO_ID_5203371113907330994" border="0" /&gt;&lt;/a&gt;Imagem 1 – Página Default.aspx com os controles configurados &lt;p class="western" style="margin-bottom: 0cm;"&gt;Programa o evento click do botão btnEnviar e o Page Load conforme o Código 1:&lt;/p&gt;     &lt;p class="western" style="margin-bottom: 0cm;" lang=""&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;public&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;partial&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;class&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;_Default&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; : System.Web.UI.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;Page&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;private&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;const&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;string&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; cookieID = &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;"informacoesUsuario"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p class="western" style="margin-bottom: 0cm;" lang=""&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;protected&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;void&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; Page_Load(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;object&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; sender, &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;EventArgs&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; e)&lt;br /&gt;&lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p class="western" style="margin-bottom: 0cm;" lang=""&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;if&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; (Request.Cookies[cookieID] != &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;null&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;)&lt;br /&gt;&lt;/span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;HttpCookie&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; cookieInformacoesUsuario = Request.Cookies[cookieID];&lt;br /&gt;txtUsuario.Text = cookieInformacoesUsuario[&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;"usuario"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;];&lt;br /&gt;&lt;/span&gt;AdicionaInfoUltimaVisita(cookieInformacoesUsuario);&lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" lang=""&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;span style="font-size:85%;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="western" style="margin-bottom: 0cm;" lang=""&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;private&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;void&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; AdicionaInfoUltimaVisita(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;HttpCookie&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; cookieInformacoesUsuario)&lt;br /&gt;&lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="western" style="margin-bottom: 0cm;" lang=""&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;if&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; (Request.Cookies[cookieID] != &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;null&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;)&lt;br /&gt;&lt;/span&gt;{&lt;br /&gt;&lt;span lang=""&gt;lbUltimoLogin.Text = &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;string&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;.Format(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;"Sua última visita foi em : {0}"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;, cookieInformacoesUsuario.Values[&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;"ultimaVisita"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;]);&lt;br /&gt;&lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" lang=""&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;span style="font-size:85%;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="western" style="margin-bottom: 0cm;" lang=""&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;protected&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;void&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; btnEnviar_Click(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;object&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; sender, &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;EventArgs&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; e)&lt;br /&gt;&lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p class="western" style="margin-bottom: 0cm;" lang=""&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;HttpCookie&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; cookieInformacoesUsuario = &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;HttpCookie&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;(cookieID);&lt;br /&gt;cookieInformacoesUsuario.Values[&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;"usuario"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;] = txtUsuario.Text;&lt;br /&gt;cookieInformacoesUsuario.Values[&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;"ultimaVisita"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;] = &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;DateTime&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;.Now.ToString();&lt;br /&gt;cookieInformacoesUsuario.Expires = &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;DateTime&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;.Now.AddDays(10);&lt;br /&gt;&lt;/span&gt;Response.Cookies.Add(cookieInformacoesUsuario);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" lang=""&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;        &lt;span style="font-size:85%;"&gt;AdicionaInfoUltimaVisita(cookieInformacoesUsuario);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" lang=""&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;span style="font-size:85%;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;" lang=""&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Código 1 – Programando o click do BtnEnviar e o PageLoad&lt;/p&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Execute o site, digite o usuário e clique em enviar. Feche o navegador, abra outro navegador e visite o mesmo endereço e veja o cookie em ação.&lt;/p&gt;   &lt;p class="western" style="margin-bottom: 0cm;"&gt;Referências&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms178194.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms178194.aspx&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6331859157625229771-5602343128082768310?l=aplicacoesweb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AplicaesWeb/~4/_IxauRGdazo" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/5602343128082768310?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/5602343128082768310?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AplicaesWeb/~3/_IxauRGdazo/utilizando-cookies.html" title="Utilizando cookies" /><author><name>Mateus Queiroz Correia</name><uri>https://profiles.google.com/103544107567690484780</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-D0HajHeutmA/AAAAAAAAAAI/AAAAAAAAAzs/PWg9nWVws10/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_b8Po4UBWLzo/SDYWdZ75n7I/AAAAAAAAANA/DdDh3mfIJ3s/s72-c/Imagem+1+%E2%80%93+P%C3%A1gina+Default.aspx+com+os+controles+configurados.jpg" height="72" width="72" /><feedburner:origLink>http://aplicacoesweb.blogspot.com/2008/05/utilizando-cookies.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMEQnw_eSp7ImA9WxdSFUg.&quot;"><id>tag:blogger.com,1999:blog-6331859157625229771.post-3231945319296966848</id><published>2008-05-22T17:37:00.002-03:00</published><updated>2008-05-23T11:53:23.241-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-23T11:53:23.241-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="applicationstate" /><category scheme="http://www.blogger.com/atom/ns#" term="hiddenfield" /><category scheme="http://www.blogger.com/atom/ns#" term="querystring" /><category scheme="http://www.blogger.com/atom/ns#" term="cookie" /><category scheme="http://www.blogger.com/atom/ns#" term="viewstate" /><category scheme="http://www.blogger.com/atom/ns#" term="sessionstate" /><category scheme="http://www.blogger.com/atom/ns#" term="controlstate" /><title>Gerenciamento de estado do ASP.NET</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/A-IorFquwuL51X6lpw8i4EaPDHU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/A-IorFquwuL51X6lpw8i4EaPDHU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/A-IorFquwuL51X6lpw8i4EaPDHU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/A-IorFquwuL51X6lpw8i4EaPDHU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Sabemos que o protocolo HTTP é um protocolo sem estado(Stateless), ou seja, cada requisição feita ao servidor é vista como uma transação independente que não tem relação com requisições anteriores. Então, as aplicações web, que utilizam o protocolo HTTP, não poderiam fornecer conteúdos específicos para um usuário? Depois de entrar num site com usuário e senha, uma segunda requisição não poderia mostrar informações específicas de um usuário? Por isso é necessário utilizar de métodos alternativos para manter estado e iremos pode ser feito no ASP.NET.  &lt;p class="western" style="margin-bottom: 0cm;"&gt;O estado do ASP.NET poderia ser definido como uma foto de um determinado momento da utilização da aplicação web pelo usuário. Poderia estar incluído nesta foto diversas informações, como qual usuário que está usando, dados digitados em controles e várias outras. Esta foto poderia incluir inclusive dados que o usuário enviou a vários dias. Para possibilitar esta manutenção de estado, existem alguns recursos:&lt;/p&gt; &lt;h2 class="western"&gt;Recursos para manutenção de estado em cliente:&lt;/h2&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;View State(Estado  da exibição)&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;Control  State(Estado de controle)&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;Campos ocultos&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;Cookies&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;Query  Strings(String de consulta da url)&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;Armazenamento de  sessão no Cliente(Client side storage)&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;h2 class="western"&gt;Recursos para manutenção de estado no servidor:&lt;/h2&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;Application State  (Estado do Aplicativo)&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;Session State  (Estado da sessão)&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;Propriedades de  Perfil&lt;/p&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p class="western" style="margin-bottom: 0cm;"&gt;Abaixo iremos explicar um pouco de cada um destes recursos.&lt;/p&gt; &lt;h2 class="western"&gt;Recursos para manutenção de estado em cliente:&lt;/h2&gt; &lt;h3 class="western"&gt;View State(Estado da exibição)&lt;/h3&gt; &lt;p class="western"&gt;A página e controles usam por padrão o view state para armazenar seus dados, o ViewState é uma tabela hash onde possui uma chave e um valor, que é o valor do estado armazenado para aquela chave. Esta tabela hash é serializada na codificação base 64 e armazenada em cliente num campo oculto(o elemento input com atributo type=”hidden”). É possível que o usuário desabilite o ViewState de controles ou até mesmo armazene valores próprios, mas é importante ressaltar que como estes dados vão para cliente, deve-se tomar o cuidado com o que é armazenado.&lt;/p&gt; &lt;p class="western"&gt;Para exemplificar, podemos pensar que um controle pode por exemplo armazenar informação sobre sua visibilidade no view state, e se por ventura deixar de ficar visível, isto poderia ser atualizado no ViewState.&lt;/p&gt; &lt;h3 class="western"&gt;Control State(Estado de controle)&lt;/h3&gt; &lt;p class="western"&gt;O Control State trabalha da mesma forma que o View &lt;span lang="pt-BR"&gt;State&lt;/span&gt;, só que o View State pode ser desabilitado e o Control State, dessa forma o Control State tem as informações de estado do controle indispensáveis para seu correto funcionamento. O ASP.NET utiliza isto para seus controles e podemos também fazê-lo para nossos controles.&lt;/p&gt; &lt;h3 class="western"&gt;Campos ocultos&lt;/h3&gt; &lt;p class="western"&gt;O campo oculto(o elemento input com atributo type=”hidden”) permite enviar e recuperar informações no HTML como os demais controles de formulário, só que não renderiza nada para o usuário. Mas apesar de de não mostrar nada para os usuários, usuário mal intencionados podem alterar ou recuperar valores destes campos, por isso deve-se tomar cuidado com os dados que são armazenados desta forma.  &lt;/p&gt; &lt;h3 class="western"&gt;Cookies&lt;/h3&gt; &lt;p class="western"&gt;Um cookie são dados que podem ser armazenados como arquivo de texto no sistema de arquivo do cliente ou na memória da sessão do navegador do cliente. Ele contêm informações específicas do site, que o servidor envia para o cliente através da resposta da requisição da página.&lt;/p&gt; &lt;p class="western"&gt;Os cookies podem ser usados para armazenar informações de um cliente em particular, sessão ou aplicação. Os cookies podem ser armazenados no dispositivo cliente, e o navegador envia estes para o servidor juntamente com as informações de requisição. Desta forma estas informações ficam disponíveis para serem utilizadas no servidor.&lt;/p&gt;  &lt;p class="western"&gt;Como os dados do cookie ficam disponíveis no cliente, usuário mal intencionados podem ter visualizar ou até mesmo modificar estas informações.&lt;/p&gt; &lt;h3 class="western"&gt;Query Strings(String de consulta da url)&lt;/h3&gt; &lt;p class="western"&gt;A url para requisição de um recurso do servidor pode conter informações extras, como é o caso da Query String. A QueryString inicia após um ponto de interrogação(?) e é formada por um conjunto de pares chave/valor, onde cada par é separado pelo "&amp;amp;". Vejamos um exemplo:&lt;/p&gt; &lt;p class="western"&gt;&lt;a href="http://www.google.com.br/search?q=aplicacoesweb.blogspot.com"&gt;http://www.google.com.br/search?q=aplicacoesweb.blogspot.com&lt;/a&gt;&lt;/p&gt; &lt;p class="western"&gt;Neste exemplo acima, que funciona se utilizado no navegador, é passado para o mecanismo de busca a querystring q=aplicacoesweb.blogspot.com. Esta querystring contêm um único par que é a chave "q" e o valor "aplicacoesweb.blogspot.com".&lt;/p&gt; &lt;p class="western"&gt;Apesar de ser simples a forma de passar informações por Query String, mas alguns navegadores impõe limitações da quantidade de caracteres na URL.&lt;/p&gt; &lt;p class="western"&gt;As informações de querystring também podem ser utilizadas e alteradas por usuários mal intencionados.&lt;/p&gt; &lt;h3 class="western"&gt;Armazenamento de sessão no Cliente(Client side storage)&lt;/h3&gt; &lt;p class="western"&gt;Esta é uma novidade do HTML 5, que alguns navegadores já implementam, o client side storage. Sua idéia é muito parecida com o cookie, mas este vem como solução para dois problemas na utilização de Cookie:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western"&gt;Ter dados disponíveis de forma única  para janelas diferentes&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p class="western"&gt; Hoje é muito o comportamento de navegadores com várias guias, caso do Firefox 2 e Internet Explorer 7. Se logarmos em um site e abrirmos outra guia, esta outra guia possui a mesma sessão da primeira, pois ambos estão no mesmo processo, na mesma instância do navegador. Já se abrirmos outro navegador, outro processo, estes não compartilham a sessão. O cookie não manipula bem estes casos&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western"&gt;Armazenar uma grande quantidade de dados no  cliente&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p class="western"&gt; Os cookies são sempre enviados para o servidor a cada requisição, então é inviável armazenar uma grande quantidade de dados no cliente.&lt;/p&gt; &lt;p class="western"&gt;Atualmente o HTML 5 tem o seu rascunho de implementação, de acordo com o existente da data de  22 de maio de 2008 haverão dois novos atributos DOM, o sessionStorage e o localStorage para resolver esta demanda.&lt;/p&gt; &lt;h2 class="western"&gt;Recursos para manutenção de estado no servidor:&lt;/h2&gt; &lt;h3 class="western"&gt;Application State (Estado do Aplicativo)&lt;/h3&gt; &lt;p class="western"&gt;O ASP.NET permite que informações da aplicação Web sejam salvas no Application State, que é uma instância da classe HttpApplicationState. Estas informações são únicas para todos usuário de uma aplicação Web em específico, mas não é compartilhada entre aplicações Webs. Estas informações são salvas numa tabela de chave/valor.&lt;/p&gt; &lt;h3 class="western"&gt;Session State (Estado da sessão)&lt;/h3&gt; &lt;p class="western"&gt;o ASP.NET permite que seja armazenado valores de uma sessão usando o Session State, que é uma instância da classe HttpSessionState. Session state é similar ao Application state, armazenando os valores também numa tabela de chave/valor, mas neste caso as informações são únicas para cada sessão do navegador.  &lt;/p&gt; &lt;p class="western"&gt;Se um usuário sai da aplicação, por exemplo fechando um navegador, e posteriormente retorna ao site, não terá a mesma sessão e não estará disponível no Session State informações da sessão anterior.&lt;/p&gt; &lt;p class="western"&gt;O Session State pode ser configurado para armazenar as informações da sessão em banco de dados e de várias outras formas. Por padrão as informações de sessão são armazenadas por um tempo, se o usuário ficar pelo tempo determinado sem fazer requisições ao servidor, será considerado inativo e os dados de sua sessão serão limpos. Este tempo de expiração padrão é 20 minutos.&lt;/p&gt; &lt;h3 class="western"&gt;Propriedades de Perfil&lt;/h3&gt; &lt;p class="western"&gt;O ASP.NET disponibiliza uma funcionalidade chamada propriedade do perfil(Profile Properties), que permite o armazenamento de dados específicos do usuário. Este é similar a sessão, mas os dados não são perdidos quando a sessão expira.&lt;/p&gt; &lt;p class="western"&gt;O perfil ASP.NET  permite uma fácil manutenção das informações do usuário, utilizando provedores de perfil(Profile &lt;span lang="pt-BR"&gt;providers&lt;/span&gt;). Esta arquitetura de provedores permite uma fácil utilização de provedores existentes, como é o caso do SqlProfileProvider, ou a criação de provedores próprios. Utilizando de provedores persistentes como é o caso do &lt;span lang="pt-BR"&gt;SqlProfileProvider&lt;/span&gt;, os dados estarão disponíveis para o usuários numa arquitetura de WebFarm ou mesmo que o IIS reinicie.&lt;/p&gt; &lt;ul&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;&lt;/p&gt;&lt;/ul&gt;          &lt;p class="western" style="margin-bottom: 0cm;"&gt;Referências:&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/pt-br/library/75x4ha6s.aspx"&gt;http://msdn.microsoft.com/pt-br/library/75x4ha6s.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol"&gt;http://msdn.microsoft.com/pt-br/library/bb386448.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.whatwg.org/specs/web-apps/current-work/#structured"&gt;http://aplicacoesweb.blogspot.com/2008/04/html-5-como-est-indo.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.whatwg.org/specs/web-apps/current-work/#structured"&gt;http://www.whatwg.org/specs/web-apps/current-work/#structured&lt;/a&gt;&lt;br /&gt;&lt;a href="http://technet2.microsoft.com/windowsserver/en/library/51aa77d2-4485-4cb9-a75f-9186dc5d775f1033.mspx?mfr=true"&gt;http://technet2.microsoft.com/windowsserver/en/library/51aa77d2-4485-4cb9-a75f-9186dc5d775f1033.mspx?mfr=true&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/pt-br/library/2y3fs9xs.aspx"&gt;http://msdn.microsoft.com/pt-br/library/2y3fs9xs.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ewfkf772.aspx"&gt;http://msdn.microsoft.com/en-us/library/ewfkf772.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Program_state"&gt;http://en.wikipedia.org/wiki/Program_state&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol"&gt;http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6331859157625229771-3231945319296966848?l=aplicacoesweb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AplicaesWeb/~4/9OL_2dKAlaU" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/3231945319296966848?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/3231945319296966848?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AplicaesWeb/~3/9OL_2dKAlaU/gerenciamento-de-estado-do-aspnet.html" title="Gerenciamento de estado do ASP.NET" /><author><name>Mateus Queiroz Correia</name><uri>https://profiles.google.com/103544107567690484780</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-D0HajHeutmA/AAAAAAAAAAI/AAAAAAAAAzs/PWg9nWVws10/s512-c/photo.jpg" /></author><feedburner:origLink>http://aplicacoesweb.blogspot.com/2008/05/gerenciamento-de-estado-do-aspnet.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMDQH89eSp7ImA9WxdSFEU.&quot;"><id>tag:blogger.com,1999:blog-6331859157625229771.post-1194300520588602616</id><published>2008-05-22T17:14:00.002-03:00</published><updated>2008-05-22T17:17:51.161-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-22T17:17:51.161-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="APP_DATA" /><title>SQL Server Database no App_data</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/F1jDb5iIfCp3oyUrfkZO2YsNQB8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/F1jDb5iIfCp3oyUrfkZO2YsNQB8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/F1jDb5iIfCp3oyUrfkZO2YsNQB8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/F1jDb5iIfCp3oyUrfkZO2YsNQB8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Se rodarmos nossas aplicações ASP.NET e estivermos usando SQL Server Database no diretório APP_DATA podemos nos deparar com o seguinte erro se nosso SQL Server não estiver configurado para permitir esta utilização: &lt;p class="western" style="margin-bottom: 0cm;"&gt;Generating user instances in SQL Server is disabled. Use sp_configure 'user instances enabled' to generate user instances.&lt;/p&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Para permitir que o Sql Express crie instâncias do usuário, é necessário uma executar a query no Sql Express, abra então o Sql Server Management Studio Express.  &lt;/p&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Abra o SQL Server Management Studio Express, na pasta Microsoft SQL Server 2005, conforme imagem 1:&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_b8Po4UBWLzo/SDXUdZ75n4I/AAAAAAAAAMo/GeKDi8P5T9g/s1600-h/Imagem+1+-+Abrindo+o+SQL+Server+Management+Studio+Express.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_b8Po4UBWLzo/SDXUdZ75n4I/AAAAAAAAAMo/GeKDi8P5T9g/s400/Imagem+1+-+Abrindo+o+SQL+Server+Management+Studio+Express.jpg" alt="" id="BLOGGER_PHOTO_ID_5203298546139897730" border="0" /&gt;&lt;/a&gt;Imagem 1 - Abrindo o SQL Server Management Studio Express.jpg &lt;p class="western" style="margin-bottom: 0cm;"&gt;Conecte-se ao servidor local, conforme Imagem 2:&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_b8Po4UBWLzo/SDXUeJ75n5I/AAAAAAAAAMw/Nohn4wEh9_k/s1600-h/Imagem+2+-+Conectando-se+no+servidor+local.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_b8Po4UBWLzo/SDXUeJ75n5I/AAAAAAAAAMw/Nohn4wEh9_k/s400/Imagem+2+-+Conectando-se+no+servidor+local.jpg" alt="" id="BLOGGER_PHOTO_ID_5203298559024799634" border="0" /&gt;&lt;/a&gt;Imagem 2 - Conectando-se no servidor local  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Abra a janela para execução da consulta SQL, conforme Imagem 3:&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_b8Po4UBWLzo/SDXUeJ75n6I/AAAAAAAAAM4/zYJym5EyGeY/s1600-h/Imagem+3+-+Abrindo+a+janela+para+execu%C3%A7%C3%A3o+da+consulta+SQL.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_b8Po4UBWLzo/SDXUeJ75n6I/AAAAAAAAAM4/zYJym5EyGeY/s400/Imagem+3+-+Abrindo+a+janela+para+execu%C3%A7%C3%A3o+da+consulta+SQL.jpg" alt="" id="BLOGGER_PHOTO_ID_5203298559024799650" border="0" /&gt;&lt;/a&gt;Imagem 3 - Abrindo a janela para execução da consulta SQL  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Informe a consulta sql abaixo e mande executar(atalho F5):&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;"&gt;sp_configure  'user instances enabled', 1; RECONFIGURE&lt;/p&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Feito isto já será possível utilizar bancos de dados SQL SERVER no diretório APP_DATA.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6331859157625229771-1194300520588602616?l=aplicacoesweb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AplicaesWeb/~4/fqJQNOkm58c" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/1194300520588602616?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/1194300520588602616?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AplicaesWeb/~3/fqJQNOkm58c/sql-server-database-no-appdata.html" title="SQL Server Database no App_data" /><author><name>Mateus Queiroz Correia</name><uri>https://profiles.google.com/103544107567690484780</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-D0HajHeutmA/AAAAAAAAAAI/AAAAAAAAAzs/PWg9nWVws10/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_b8Po4UBWLzo/SDXUdZ75n4I/AAAAAAAAAMo/GeKDi8P5T9g/s72-c/Imagem+1+-+Abrindo+o+SQL+Server+Management+Studio+Express.jpg" height="72" width="72" /><feedburner:origLink>http://aplicacoesweb.blogspot.com/2008/05/sql-server-database-no-appdata.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEAQ3s9cCp7ImA9WxdTGEw.&quot;"><id>tag:blogger.com,1999:blog-6331859157625229771.post-1268405235113222750</id><published>2008-05-14T22:03:00.003-03:00</published><updated>2008-05-14T22:24:02.568-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-14T22:24:02.568-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Regular Expression" /><title>Expressões Regulares no C#</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/iYIrmOFvPFXBLhVyI3fvptxPeHA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iYIrmOFvPFXBLhVyI3fvptxPeHA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/iYIrmOFvPFXBLhVyI3fvptxPeHA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iYIrmOFvPFXBLhVyI3fvptxPeHA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;span class="217392019-14052008"&gt;O C# e várias outras linguagens utilizam de Regular Expression para localização e substituição de strings. Como recentemente postei sobre Validators, há também o RegularExpressionValidator. Só que Regular Expression também não é uma coisa muito fácil e natural, pelo menos para mim, então muitas vezes gosto de utilizar programas para me ajudar a montar as minhas expressões.&lt;br /&gt;&lt;br /&gt;Existe este programa escrito em C#, Regular Expression Builder, distribuído na licença GPL:&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="217392019-14052008"&gt;&lt;a href="http://sourceforge.net/projects/regexbuilder/"&gt;http://sourceforge.net/projects/regexbuilder/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Achei este programa escrito em Java, Regular Expression Editor distribuído na licença GPL:&lt;br /&gt;&lt;/span&gt; &lt;div&gt;&lt;span class="217392019-14052008"&gt;&lt;a href="http://sourceforge.net/project/platformdownload.php?group_id=219185"&gt;http://sourceforge.net/project/platformdownload.php?group_id=219185&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;  &lt;div&gt;&lt;span class="217392019-14052008"&gt;Para executá-lo é necessário ter no mínimo o Java Virtual Machine 1.6 para Windows. Baixe neste endereço:&lt;/span&gt;&lt;/div&gt; &lt;div&gt;&lt;span class="217392019-14052008"&gt;&lt;a href="http://www.java.com/pt_BR/download/index.jsp"&gt;http://java.sun.com/javase/downloads/index.jsp&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Outras fontes para estudo:&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms998267.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms998267.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.regular-expressions.info/"&gt;http://www.regular-expressions.info/&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6331859157625229771-1268405235113222750?l=aplicacoesweb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AplicaesWeb/~4/FwnQS7cq9OE" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/1268405235113222750?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/1268405235113222750?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AplicaesWeb/~3/FwnQS7cq9OE/expresses-regulares-no-c.html" title="Expressões Regulares no C#" /><author><name>Mateus Queiroz Correia</name><uri>https://profiles.google.com/103544107567690484780</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-D0HajHeutmA/AAAAAAAAAAI/AAAAAAAAAzs/PWg9nWVws10/s512-c/photo.jpg" /></author><feedburner:origLink>http://aplicacoesweb.blogspot.com/2008/05/expresses-regulares-no-c.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8ASXkyfCp7ImA9WxdTFU4.&quot;"><id>tag:blogger.com,1999:blog-6331859157625229771.post-5270460773739758189</id><published>2008-05-11T17:47:00.000-03:00</published><updated>2008-05-11T17:47:28.794-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-11T17:47:28.794-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ValidationSummary" /><category scheme="http://www.blogger.com/atom/ns#" term="RequiredFieldValidator" /><category scheme="http://www.blogger.com/atom/ns#" term="CompareValidator" /><title>Usando os controles de validação</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/cptQYaPTK7xICv5Cx4nXAPznAgE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cptQYaPTK7xICv5Cx4nXAPznAgE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/cptQYaPTK7xICv5Cx4nXAPznAgE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cptQYaPTK7xICv5Cx4nXAPznAgE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;Neste exemplo vamos criar um formulário de compra de títulos, onde será informado para o usuário o valor de um título e poderá ser comprado títulos informando quantidade ou valor. O site fará o cálculo da quantidade ou valor total de acordo com o botão selecionado. O resultado final será conforme Imagem 1.&lt;/p&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_b8Po4UBWLzo/SCda36dJGxI/AAAAAAAAAMI/Xd-ilEElmbM/s1600-h/Imagem+1+-+Execu%C3%A7%C3%A3o+do+exemplo.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_b8Po4UBWLzo/SCda36dJGxI/AAAAAAAAAMI/Xd-ilEElmbM/s400/Imagem+1+-+Execu%C3%A7%C3%A3o+do+exemplo.jpg" alt="" id="BLOGGER_PHOTO_ID_5199224211453319954" border="0" /&gt;&lt;/a&gt;Imagem 1 - Execução do exemplo  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Crie um novo site. Abra a página Default.aspx e adicione um controle label e defina as propriedades da seguinte forma:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;ID :  lblDescricaoValor&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;Text: Valor de  cada título:&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Adicione outro Label e defina as propriedades da seguinte forma:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;ID: lblValor&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Adicione um controle ValidationSummary  e definas as propriedades:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;ID: vsQuantidade&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;ValidationGroup:  Quantidade&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Adicione mais um controle Label e defina as propriedades:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;ID: lblQuantidade&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;Text: Quantidade:&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Adicione um controle do tipo TextBox e defina as propriedades:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;ID:  txtQuantidadeDesejada&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Adicione um controle RequiredFieldValidator e defina as propriedades:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;ID: rfvQuantidade&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  ControlToValidate: txtQuantidadeDesejada&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  Display: Dynamic&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;ErrorMessage:  Informe a Quantidade&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  Text: *&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  ValidationGroup: Quantidade&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Adicione um controle CompareValidator, para garantir que um número inteiro seja digitado e defina as propriedades:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  ID: cvQuantidade&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  ControlToValidate: txtQuantidadeDesejada&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  Display: Dynamic&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  ErrorMessage: Informe um número inteiro&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  Operator: GreaterThan&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  Text: *&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  Type: Integer&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  ValidationGroup: Quantidade&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  ValueToCompare: 0&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Adicione um botão e defina as propriedades:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  ID: btnCalcularValor&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  Text: Calcular Valor&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  ValidationGroup: Quantidade&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Nossa página que contêm controles que serão usados no cálculo do valor por quantidade deve parecer com a Imagem 2 :  &lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_b8Po4UBWLzo/SCda4adJGyI/AAAAAAAAAMQ/yTahFCWdc30/s1600-h/Imagem+2+-+Controles+para+Calcular+Valor.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_b8Po4UBWLzo/SCda4adJGyI/AAAAAAAAAMQ/yTahFCWdc30/s400/Imagem+2+-+Controles+para+Calcular+Valor.jpg" alt="" id="BLOGGER_PHOTO_ID_5199224220043254562" border="0" /&gt;&lt;/a&gt;Imagem 2 - Controles para Calcular Valor  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Adicione um controle ValidationSummary  e definas as propriedades:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;ID: vsValor&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  ValidationGroup: Valor&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Adicione um controle do tipo Label e defina as propriedades:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  ID: lblPorValor&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  Text: Valor:&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Adicione um controle do tipo TextBox e defina as propriedades:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  ID: txtValorDesejado&lt;/p&gt;   &lt;/li&gt;&lt;/ul&gt; &lt;p class="western" style="margin-bottom: 0cm;"&gt;Adicione um controle CompareValidator, para garantir que um número inteiro seja digitado e defina as propriedades:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  ID: cvValor&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  ControlToValidate: txtValorDesejado&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  Display: Dynamic&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  ErrorMessage: Informe um número inteiro&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  Operator: GreaterThan&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  Text: *&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  Type: Currency&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  ValidationGroup: Valor&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  ValueToCompare: 0&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Adicione um controle RequiredFieldValidator e defina as propriedades:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;ID: rfvValor&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;ErrorMessage:  Informe o Valor&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  Text: *&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  ControlToValidate: txtValorDesejado&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  ValidationGroup: Quantidade&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Adicione um botão e defina as propriedades:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  ID: btnCalcularQuantidade&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  Text: Calcular Quantidade&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  ValidationGroup: Valor&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Nossa página que agora também contêm controles que serão usados no cálculo da quantidade por valor deve parecer com a Imagem 3 :  &lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_b8Po4UBWLzo/SCda4qdJGzI/AAAAAAAAAMY/JKaJuqXActM/s1600-h/Imagem+3+-+Controles+para+Calcular+Quantidade.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_b8Po4UBWLzo/SCda4qdJGzI/AAAAAAAAAMY/JKaJuqXActM/s400/Imagem+3+-+Controles+para+Calcular+Quantidade.jpg" alt="" id="BLOGGER_PHOTO_ID_5199224224338221874" border="0" /&gt;&lt;/a&gt;Imagem 3 - Controles para Calcular Quantidade  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Adicionamos agora os controles que informam o total da compra. Adicionaremos um Panel e definimos as seguintes propriedades:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  ID: pnCompra&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  GroupingText: Valores de compra&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  Visible: False&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Adicionamos um controle Label dentro do Panel pnCompra e definimos as propriedades:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  ID: lblQuantidadeCompra&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  Text:Quantidade:&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Adicionamos um controle TextBox dentro do Panel pnCompra e &lt;span lang="pt-BR"&gt;definimos&lt;/span&gt; as propriedades:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  ID: txtQuantidadeCompra&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt; Adicionamos um controle Label dentro do Panel pnCompra e definimos as propriedades:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  ID: lblValorCompra&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  Text: Valor da Compra:&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Adicionamos um controle TextBox dentro do Panel pnCompra e as propriedades deverão estar definidas como:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  ID: txtValorCompra&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  ReadOnly: True&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Adicionamos um controle Button dentro do Panel pnCompra e definimos as propriedades:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  ID: btnComprar&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;  Text: Comprar&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Nossa página deverá ficar como a Imagem 4:&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_b8Po4UBWLzo/SCda4qdJG0I/AAAAAAAAAMg/lo91QKaLG2U/s1600-h/Imagem+4+-+Todos+os+controles.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_b8Po4UBWLzo/SCda4qdJG0I/AAAAAAAAAMg/lo91QKaLG2U/s400/Imagem+4+-+Todos+os+controles.jpg" alt="" id="BLOGGER_PHOTO_ID_5199224224338221890" border="0" /&gt;&lt;/a&gt;Imagem 4 - Todos os controles  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Vamos agora adicionar os códigos nos eventos apropriados, primeiro vamos programar o a exibição do valor do título. Adicionaremos uma CONST com o valor do título e atribuímos estes no lblValor, conforme código 1:&lt;/p&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;    &lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;public&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;const&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;decimal&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; ValotTitulo = 1000;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;     &lt;p class="western" style="margin-bottom: 0cm;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;protected&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;void&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; Page_Load(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;object&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; sender, &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;EventArgs&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; e)&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;lblValor.Text = ValotTitulo.ToString();&lt;br /&gt;&lt;span lang=""&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Código 1 – Definindo o valor do título&lt;/p&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Programaremos o click do btnCalcularValor  conforme código 2:&lt;/p&gt;       &lt;p class="western" style="margin-bottom: 0cm;" lang=""&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;&lt;span style=""&gt;protected&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;&lt;span style=""&gt;void&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;&lt;span style=""&gt; btnCalcularValor_Click(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;&lt;span style=""&gt;object&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;&lt;span style=""&gt; sender, &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;&lt;span style=""&gt;EventArgs&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;&lt;span style=""&gt; e)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;decimal&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; valorCompra = ValotTitulo * &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;int&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;.Parse(txtQuantidadeDesejada.Text);&lt;/span&gt;&lt;br /&gt;txtQuantidadeCompra.Text = txtQuantidadeDesejada.Text;&lt;br /&gt;txtValorCompra.Text = valorCompra.ToString();&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;        &lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;pnCompra.Visible = &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;true&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Código 2 – Calculando o Valor&lt;/p&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Programaremos o click do btnCalcularQuantidade  conforme código 3:&lt;/p&gt;       &lt;p class="western" style="margin-bottom: 0cm;" lang=""&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;protected&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;void&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; btnCalcularQuantidade_Click(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;object&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; sender, &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;EventArgs&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; e)&lt;/span&gt;&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;decimal&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; valorDesejadoCompra = &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;decimal&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;.Parse(txtValorDesejado.Text);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;decimal&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; valorCompra = valorDesejadoCompra - (valorDesejadoCompra % ValotTitulo);&lt;/span&gt;&lt;br /&gt;txtValorCompra.Text = valorCompra.ToString();&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;     &lt;p class="western" style="margin-bottom: 0cm;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;int&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt; quantidade = &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;Convert&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;.ToInt32(valorCompra / ValotTitulo);&lt;/span&gt;&lt;br /&gt;txtQuantidadeCompra.Text = quantidade.ToString();&lt;br /&gt;&lt;span lang=""&gt;pnCompra.Visible = &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;true&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang=""&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Código 3 – Calculando a Quantidade&lt;/p&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Execute a aplicação e repare que as validações acontecem tanto em cliente(Javascript se o navegador suportar), quanto em servidor.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6331859157625229771-5270460773739758189?l=aplicacoesweb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AplicaesWeb/~4/2nI3uSHAjIY" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/5270460773739758189?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/5270460773739758189?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AplicaesWeb/~3/2nI3uSHAjIY/usando-os-controles-de-validao.html" title="Usando os controles de validação" /><author><name>Mateus Queiroz Correia</name><uri>https://profiles.google.com/103544107567690484780</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-D0HajHeutmA/AAAAAAAAAAI/AAAAAAAAAzs/PWg9nWVws10/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_b8Po4UBWLzo/SCda36dJGxI/AAAAAAAAAMI/Xd-ilEElmbM/s72-c/Imagem+1+-+Execu%C3%A7%C3%A3o+do+exemplo.jpg" height="72" width="72" /><feedburner:origLink>http://aplicacoesweb.blogspot.com/2008/05/usando-os-controles-de-validao.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUECRX4_cCp7ImA9WxdTFU4.&quot;"><id>tag:blogger.com,1999:blog-6331859157625229771.post-4093255050169711461</id><published>2008-05-10T21:48:00.003-03:00</published><updated>2008-05-11T17:27:44.048-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-11T17:27:44.048-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Validation Control" /><title>Validações no ASP.NET</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_D15lz6Rpc0oXsALCgJ0kf-YFVk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_D15lz6Rpc0oXsALCgJ0kf-YFVk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_D15lz6Rpc0oXsALCgJ0kf-YFVk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_D15lz6Rpc0oXsALCgJ0kf-YFVk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;É possível adicionar validações de entrada de dados em nossas páginas ASP.NET usando os controles de validação. Os controles de validação permitem validações flexíveis e customizáveis(inclusive com &lt;a href="http://www.regular-expressions.info/"&gt;Regular Expression&lt;/a&gt;), e também de necessidades comuns a várias aplicações. Também é possível trabalhar com um sumário de erros e/ou informar por controle que não foi válido.  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Os controles de validação podem ser usados com os controles ASP.NET sejam controles Html ou Web.&lt;/p&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Os controles de validação são:&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;table border="1" bordercolor="#000000" cellpadding="4" cellspacing="0" width="100%"&gt;  &lt;col width="67*"&gt;  &lt;col width="189*"&gt;  &lt;tbody&gt;&lt;tr valign="top"&gt;   &lt;td bgcolor="#e6e6e6" width="26%"&gt;    &lt;p class="western"&gt;&lt;b&gt;Controle&lt;/b&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td bgcolor="#e6e6e6" width="74%"&gt;    &lt;p class="western"&gt;&lt;b&gt;Descrição&lt;/b&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="26%"&gt;    &lt;p class="western"&gt;RequiredFieldValidator&lt;/p&gt;   &lt;/td&gt;   &lt;td width="74%"&gt;    &lt;p class="western"&gt;Valida que o usuário digitou ou    selecionou alguma inforação no controle&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="26%"&gt;    &lt;p class="western"&gt;CompareValidator&lt;/p&gt;   &lt;/td&gt;   &lt;td width="74%"&gt;    &lt;p class="western"&gt;Compara se os dados de dois controles são    as mesmas.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="26%"&gt;    &lt;p class="western"&gt;RangeValidator&lt;/p&gt;   &lt;/td&gt;   &lt;td width="74%"&gt;    &lt;p class="western"&gt;Verifica se o dado do controle está    dentro do limite inferior e superior definido.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="26%"&gt;    &lt;p class="western"&gt;RegularExpressionValidator&lt;/p&gt;   &lt;/td&gt;   &lt;td width="74%"&gt;    &lt;p class="western"&gt;Verifica se o dado do controle está de    acordo com a expressão regular definida&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="26%"&gt;    &lt;p class="western"&gt;CustomValidator&lt;/p&gt;   &lt;/td&gt;   &lt;td width="74%"&gt;    &lt;p class="western"&gt;Permite a construção de uma    validação customizada do usuário utilizando    uma lógica do servidor(usando C# por exemplo) e uma lógica    de cliente(javascript)&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;h3 class="western"&gt;Fazendo a validação&lt;/h3&gt; &lt;p class="western" style="margin-bottom: 0cm;"&gt;É possível utilizar também grupos de validação, desta forma é possível associar um conjunto de controles a um tipo de validação em especial. Por exemplo é possível fazer em um formulário que o botão OK faça a validação de um conjunto de controles, já o botão Recuperar Senha obrigaria o preenchimento somente do e-mail.  &lt;/p&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Há disponível na página o método GetValidators que retorna os validadores do grupo de validação definido.&lt;/p&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Existe também o controle ValidationSummary que mostra a lista de erros gerados pelos validadores.&lt;/p&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Quando usa-se validadores é importante verificar se o estado dos controles que usado por determinada ação está válido. Para isso há disponível:&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;Os controles de  validação tem a propriedade &lt;b&gt;IsValid&lt;/b&gt; que informa  se o controle é válido&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;A página  tem o método &lt;b&gt;Validate&lt;/b&gt;, que pode receber o grupo de  validação que deseja-se verificar&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;A página  tem a propriedade &lt;b&gt;IsValid&lt;/b&gt;, que informa se a validação  aconteceu com sucesso&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;A página  tem o método &lt;b&gt;GetValidators&lt;/b&gt;, que pode receber o grupo  de validação e retorna os controles de validação.&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt;  &lt;h3 class="western"&gt;O momento que ocorre a validação&lt;/h3&gt; &lt;p class="western" style="margin-bottom: 0cm;"&gt;A validação acontece tanto em cliente quanto em servidor. Em servidor a validação acontece após a inicialização da página(depois de ler o viewstate e dados de postback) e antes que os eventos de alteração e click sejam disparados.&lt;/p&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;A validação em cliente acontece se o navegador suportar ECMAScript(Javascript). Isto melhora a interatividade, já que as validações assim que o usuário muda o foco de um controle que teve seu valor alterado.&lt;/p&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;A validação de servidor acontece mesmo que a validação em cliente esteja habilitada, já que usuários mal intencionados poderiam burlar a validação no cliente.&lt;/p&gt; &lt;h3 class="western"&gt;Mostrando as mensagens de erro&lt;/h3&gt; &lt;p class="western" style="margin-bottom: 0cm;"&gt;Por padrão os controles de validação não estão visíveis ao renderizar a página, e ao não atender uma validação as mensagens de erro são exibidas.&lt;/p&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Cada controle de validação pode definir as mensagens de erro através das propriedades:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;ErrorMessage  :  Define a mensagem de erro que exibida no ValidationSummary ou no  próprio controle de validação caso a  propriedade Text não esteja definida&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;Text : Define a  mensagem de erro que é exibida no controle de validação&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Os controles de validação ainda tem a propriedade Display que podem ter os valores:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;None: a mensagem  de erro não é mostrada no controle&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;Static: o espaço  para a mensagem de erro é reservada no controle de validação&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;Dynamic: o espaço  para a mensagem de erro é utilizado se houver algum erro&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Há ainda o controle ValidationSummary que mostra todos os erros da página como sumário. É possível definir a propriedade DisplayMode:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;List: mostra os  erros em lista, onde cada mensagem de erro é uma nova linha&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;BulletList: mostra  os erros como uma lista de marcadadores&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;SingleParagraph:  as mensagens de erros são mostradas num único  parágrafo&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt;   &lt;p class="western" style="margin-bottom: 0cm;"&gt;Há ainda as propriedades ShowMessageBox que define se as mensagens de erro serão mostradas através de uma caixa de mensagem para o usuário e a propriedade ShowSummary que define se as mensagens de erro serão mostradas como sumário.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;      &lt;p class="western" style="margin-bottom: 0cm;"&gt;Referências:&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.validationsummary.aspx"&gt;http://msdn.microsoft.com/en-us/library/7kh55542.aspx&lt;br /&gt;http://msdn.microsoft.com/en-us/library/bwd43d0x.aspx&lt;br /&gt;http://msdn.microsoft.com/en-us/library/ms178313.aspx&lt;br /&gt;http://msdn.microsoft.com/en-us/library/hxet6xwx.aspx&lt;br /&gt;http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.validationsummary.aspx&lt;br /&gt;http://quickstarts.asp.net/QuickStartv20/aspnet/doc/validation/default.aspx&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6331859157625229771-4093255050169711461?l=aplicacoesweb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AplicaesWeb/~4/-QJrT7CKCr4" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/4093255050169711461?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/4093255050169711461?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AplicaesWeb/~3/-QJrT7CKCr4/validaes-no-aspnet.html" title="Validações no ASP.NET" /><author><name>Mateus Queiroz Correia</name><uri>https://profiles.google.com/103544107567690484780</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-D0HajHeutmA/AAAAAAAAAAI/AAAAAAAAAzs/PWg9nWVws10/s512-c/photo.jpg" /></author><feedburner:origLink>http://aplicacoesweb.blogspot.com/2008/05/validaes-no-aspnet.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4FRXozcSp7ImA9WxdTEkQ.&quot;"><id>tag:blogger.com,1999:blog-6331859157625229771.post-7537081207535381461</id><published>2008-05-08T22:01:00.000-03:00</published><updated>2008-05-08T22:01:54.489-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-08T22:01:54.489-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="notepad++" /><category scheme="http://www.blogger.com/atom/ns#" term="Winmerge" /><title>Ferramentas interessantes</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/g1zmHHd4aBJYgs7xf9t_1UArB3Q/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/g1zmHHd4aBJYgs7xf9t_1UArB3Q/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/g1zmHHd4aBJYgs7xf9t_1UArB3Q/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/g1zmHHd4aBJYgs7xf9t_1UArB3Q/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Fazer a diferença de arquivos:&lt;br /&gt;O Winmerge é muito interessante, mostrando a diferença das linhas de dois arquivos e também das colunas, quem trabalha com o source safe e não tem a dificuldade de achar qual o caracter que foi alterado no Diff de uma linha de um arquivo? Com o Winmerge fica mais fácil e ele é Free:&lt;br /&gt;&lt;a href="http://winmerge.org/"&gt;http://winmerge.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Visualizar o arquivo, editar fontes:&lt;br /&gt;O notepad++ é um editor de arquivos leve que tem uma visualização diferente para cada tipo de arquivo. Também tem várias funcionalidades como fazer outline de arquivos html, xml.&lt;br /&gt;&lt;a href="http://sourceforge.net/projects/notepad-plus/"&gt;http://sourceforge.net/projects/notepad-plus/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6331859157625229771-7537081207535381461?l=aplicacoesweb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AplicaesWeb/~4/klNXuAEwi5o" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/7537081207535381461?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/7537081207535381461?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AplicaesWeb/~3/klNXuAEwi5o/ferramentas-interessantes.html" title="Ferramentas interessantes" /><author><name>Mateus Queiroz Correia</name><uri>https://profiles.google.com/103544107567690484780</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-D0HajHeutmA/AAAAAAAAAAI/AAAAAAAAAzs/PWg9nWVws10/s512-c/photo.jpg" /></author><feedburner:origLink>http://aplicacoesweb.blogspot.com/2008/05/ferramentas-interessantes.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0AFR389fip7ImA9WxdTEUQ.&quot;"><id>tag:blogger.com,1999:blog-6331859157625229771.post-7074234199369441932</id><published>2008-05-07T18:28:00.001-03:00</published><updated>2008-05-07T18:28:36.166-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-07T18:28:36.166-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="FormView" /><category scheme="http://www.blogger.com/atom/ns#" term="GridView" /><title>Ligação entre GridView e FormView</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/AUNabF3UfyqlOyiRp2ob3gyqq0M/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AUNabF3UfyqlOyiRp2ob3gyqq0M/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/AUNabF3UfyqlOyiRp2ob3gyqq0M/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AUNabF3UfyqlOyiRp2ob3gyqq0M/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;Vamos neste post fazer a ligação do GridView e um FormView. O GridView mostra vários registros e o FormView mostra um registro em detalhe. &lt;a href="http://aplicacoesweb.blogspot.com/2008/05/lista-de-objetos-com-o-gridview.html"&gt;Neste post&lt;/a&gt; criamos um site e mostramos registros através do GridView e &lt;a href="http://aplicacoesweb.blogspot.com/2008/05/mostrando-dados-com-o-formview-e.html"&gt;neste post&lt;/a&gt; adicionamos a visualização de um único registro através do FormView.&lt;/p&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Para isto visualize a página GridView.aspx, vá nas tarefas do controle GridView e clique em Add New Column, conforme Imagem 1:&lt;/p&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_b8Po4UBWLzo/SB46b56fpkI/AAAAAAAAAL4/jwIvhxZlKJ0/s1600-h/Imagem+1+-+Tarefas+do+GridView.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_b8Po4UBWLzo/SB46b56fpkI/AAAAAAAAAL4/jwIvhxZlKJ0/s400/Imagem+1+-+Tarefas+do+GridView.jpg" alt="" id="BLOGGER_PHOTO_ID_5196655271109174850" border="0" /&gt;&lt;/a&gt;Imagem 1 - Tarefas do GridView  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Selecione o tipo HyperLinkField para a nova coluna, defina o texto Visualizar e para a URL defina  conforme Imagem 2:&lt;/p&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_b8Po4UBWLzo/SB46b56fplI/AAAAAAAAAMA/ZzZo56bUkOk/s1600-h/Imagem+2+-+Configurando+o+HiperLink.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_b8Po4UBWLzo/SB46b56fplI/AAAAAAAAAMA/ZzZo56bUkOk/s400/Imagem+2+-+Configurando+o+HiperLink.jpg" alt="" id="BLOGGER_PHOTO_ID_5196655271109174866" border="0" /&gt;&lt;/a&gt;Imagem 2 - Configurando o HyperLink  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Depois de clicar em Ok. Defina a página GridView.aspx como a página inicial da aplicação. Execute o site e clique nos links da coluna adicionada para visualizar o registro.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6331859157625229771-7074234199369441932?l=aplicacoesweb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AplicaesWeb/~4/y7KJhkBhgQQ" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/7074234199369441932?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/7074234199369441932?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AplicaesWeb/~3/y7KJhkBhgQQ/ligao-entre-gridview-e-formview.html" title="Ligação entre GridView e FormView" /><author><name>Mateus Queiroz Correia</name><uri>https://profiles.google.com/103544107567690484780</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-D0HajHeutmA/AAAAAAAAAAI/AAAAAAAAAzs/PWg9nWVws10/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_b8Po4UBWLzo/SB46b56fpkI/AAAAAAAAAL4/jwIvhxZlKJ0/s72-c/Imagem+1+-+Tarefas+do+GridView.jpg" height="72" width="72" /><feedburner:origLink>http://aplicacoesweb.blogspot.com/2008/05/ligao-entre-gridview-e-formview.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0QFSXs6eSp7ImA9WxdQE0w.&quot;"><id>tag:blogger.com,1999:blog-6331859157625229771.post-1972829447464230124</id><published>2008-05-06T23:01:00.003-03:00</published><updated>2008-06-12T19:55:18.511-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-06-12T19:55:18.511-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="FormView" /><category scheme="http://www.blogger.com/atom/ns#" term="OO" /><title>Mostrando dados com o FormView e Orientação a Objetos</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/UyX-oc4CtuXvDj-7UHrkrE_v2D8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UyX-oc4CtuXvDj-7UHrkrE_v2D8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/UyX-oc4CtuXvDj-7UHrkrE_v2D8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UyX-oc4CtuXvDj-7UHrkrE_v2D8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;Vamos abrir o projeto já existente feito através &lt;a href="http://aplicacoesweb.blogspot.com/2008/05/lista-de-objetos-com-o-gridview.html"&gt;deste post&lt;/a&gt;. Após aberto, vamos adicionar um novo método na classe FonteDadosFornecedor para recuperar os dados de um fornecedor passando o código. Então edite o FonteDadosFornecedor.cs e adicione o método conforme Código 1.&lt;br /&gt;&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;&lt;a name="SwXTextPosition19"&gt;&lt;/a&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(43,145,175)"&gt;&lt;span style="font-size:85%;"&gt;Fornecedor&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt; GetFornecedor(&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt; codigo)&lt;br /&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(43,145,175)"&gt;&lt;span style="font-size:85%;"&gt;Fornecedor&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt; result = &lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(43,145,175)"&gt;&lt;span style="font-size:85%;"&gt;List&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(43,145,175)"&gt;&lt;span style="font-size:85%;"&gt;Fornecedor&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&gt; fornecedores = &lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;.RetornaFornecedores();&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;for&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt; (&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt; i = 0; i &amp;lt; fornecedores.Count;i++)&lt;/span&gt;&lt;br /&gt;{&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt; (fornecedores[i].Codigo.Equals(codigo))&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;result = fornecedores[i];&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;break&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;return&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt; result;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;}&lt;/span&gt;&lt;/span&gt; &lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;Código 1 – Método para recuperar os dados de um fornecedor&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;Adicione uma nova página e renomeie-a para Visualizar.aspx. A solução deverá ter ficado conforme Imagem 1:&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_b8Po4UBWLzo/SB40sJ6fpYI/AAAAAAAAAKY/y33Zx5p8veU/s1600-h/Imagem+1+-+Solution+Explorer.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5196648953212282242" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_b8Po4UBWLzo/SB40sJ6fpYI/AAAAAAAAAKY/y33Zx5p8veU/s400/Imagem+1+-+Solution+Explorer.jpg" border="0" /&gt;&lt;/a&gt;Imagem 1 - Solution Explorer &lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;Edite o Visualizar.aspx e adicione um controle FormView, exiba as tarefas do controle e no DropDownList Choose a Data Source selecione a opção “&lt;new data=""&gt;”, conforme imagem 2:&lt;/new&gt;&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_b8Po4UBWLzo/SB40sZ6fpZI/AAAAAAAAAKg/GjQDlDPoo-Y/s1600-h/Imagem+2+-+Tarefas+do+FormView.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5196648957507249554" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_b8Po4UBWLzo/SB40sZ6fpZI/AAAAAAAAAKg/GjQDlDPoo-Y/s400/Imagem+2+-+Tarefas+do+FormView.jpg" border="0" /&gt;&lt;/a&gt;Imagem 2 - Tarefas do FormView &lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;Selecione o ObjectDataSource e defina o nome odsFornecedor e clique em Next, conforme Imagem 3:&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_b8Po4UBWLzo/SB40sp6fpaI/AAAAAAAAAKo/pJIlKDz2e0k/s1600-h/Imagem+3+-+Definindo+o+tipo+de+Fonte+de+Dados.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5196648961802216866" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_b8Po4UBWLzo/SB40sp6fpaI/AAAAAAAAAKo/pJIlKDz2e0k/s400/Imagem+3+-+Definindo+o+tipo+de+Fonte+de+Dados.jpg" border="0" /&gt;&lt;/a&gt;Imagem 3 - Definindo o tipo de Fonte de Dados &lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;Selecione o objeto de negócio, no nosso caso o FonteDadosFornecedor e clique em Next, conforme Imagem 4:&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_b8Po4UBWLzo/SB40s56fpbI/AAAAAAAAAKw/aHEiwVa6Kk0/s1600-h/Imagem+4+-+Definindo+o+Objeto+de+neg%C3%B3cio.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5196648966097184178" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_b8Po4UBWLzo/SB40s56fpbI/AAAAAAAAAKw/aHEiwVa6Kk0/s400/Imagem+4+-+Definindo+o+Objeto+de+neg%C3%B3cio.jpg" border="0" /&gt;&lt;/a&gt;Imagem 4 - Definindo o Objeto de negócio &lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;Selecione o método de seleção para a página, será o método recém criado chamado GetFornecedor e clique em Next, conforme Imagem 5:&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_b8Po4UBWLzo/SB40tJ6fpcI/AAAAAAAAAK4/hXVwSV-q4Uo/s1600-h/Imagem+5+-+Definindo+o+M%C3%A9todo+Select.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5196648970392151490" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_b8Po4UBWLzo/SB40tJ6fpcI/AAAAAAAAAK4/hXVwSV-q4Uo/s400/Imagem+5+-+Definindo+o+M%C3%A9todo+Select.jpg" border="0" /&gt;&lt;/a&gt;Imagem 5 - Definindo o Método Select &lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;Vamos receber o parâmetro que define qual o Fornecedor a ser exibido através da querystring, CodFornecedor, configuramos isto no próximo passo e clicamos em Finish conforme imagem 6:&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_b8Po4UBWLzo/SB41Kp6fpdI/AAAAAAAAALA/2SJUHnWqd6k/s1600-h/Imagem+6+-+Configurando+Par%C3%A2metro+de+Selecao.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5196649477198292434" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_b8Po4UBWLzo/SB41Kp6fpdI/AAAAAAAAALA/2SJUHnWqd6k/s400/Imagem+6+-+Configurando+Par%C3%A2metro+de+Selecao.jpg" border="0" /&gt;&lt;/a&gt;Imagem 6 - Configurando Parâmetro de Seleção &lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;Feito isso, defina a página Visualizar.aspx como a página inicial da aplicação, conforme Imagem 7:&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_b8Po4UBWLzo/SB41Kp6fpeI/AAAAAAAAALI/Pd2LCN1sR6Q/s1600-h/Imagem+7+-+Definindo+a+P%C3%A1gina+inicial.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5196649477198292450" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_b8Po4UBWLzo/SB41Kp6fpeI/AAAAAAAAALI/Pd2LCN1sR6Q/s400/Imagem+7+-+Definindo+a+P%C3%A1gina+inicial.jpg" border="0" /&gt;&lt;/a&gt;Imagem 7 - Definindo a Página inicial &lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;Edite o modelo de visualização, conforme Imagem 8:&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_b8Po4UBWLzo/SB41K56fpfI/AAAAAAAAALQ/6Cp4s0co49k/s1600-h/Imagem+8+-+Editando+o+modelo+ItemTemplate.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5196649481493259762" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_b8Po4UBWLzo/SB41K56fpfI/AAAAAAAAALQ/6Cp4s0co49k/s400/Imagem+8+-+Editando+o+modelo+ItemTemplate.jpg" border="0" /&gt;&lt;/a&gt;Imagem 8 - Editando o modelo ItemTemplate &lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;Vamos excluir o label que mostra o Site e adicionaremos um hyperlink, feito isso, editaremos os DataBindings conforme Imagem 9:&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_b8Po4UBWLzo/SB41K56fpgI/AAAAAAAAALY/pJXNIVk-a0c/s1600-h/Imagem+9+-+Editando+DataBindings+do+HyperLink.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5196649481493259778" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_b8Po4UBWLzo/SB41K56fpgI/AAAAAAAAALY/pJXNIVk-a0c/s400/Imagem+9+-+Editando+DataBindings+do+HyperLink.jpg" border="0" /&gt;&lt;/a&gt;Imagem 9 - Editando DataBindings do HyperLink &lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;Configure o DataBinding da propriedade NavigateUrl conforme Imagem 10:&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_b8Po4UBWLzo/SB41K56fphI/AAAAAAAAALg/nGaZ3Q_EGio/s1600-h/Imagem+10+-+Binding+da+propriedade+NavigateUrl.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5196649481493259794" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_b8Po4UBWLzo/SB41K56fphI/AAAAAAAAALg/nGaZ3Q_EGio/s400/Imagem+10+-+Binding+da+propriedade+NavigateUrl.jpg" border="0" /&gt;&lt;/a&gt;Imagem 10 - Binding da propriedade NavigateUrl &lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;Configure o DataBinding da propriedade Text conforme Imagem 11:&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_b8Po4UBWLzo/SB41tZ6fpiI/AAAAAAAAALo/vOEQKZPkSSY/s1600-h/Imagem+11+-+Binding+da+propriedade+Text.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5196650074198746658" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_b8Po4UBWLzo/SB41tZ6fpiI/AAAAAAAAALo/vOEQKZPkSSY/s400/Imagem+11+-+Binding+da+propriedade+Text.jpg" border="0" /&gt;&lt;/a&gt;Imagem 11 - Binding da propriedade Text &lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;Defina a propriedade Target para o link ser aberto em uma nova janela, conforme Imagem 12:&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_b8Po4UBWLzo/SB41tp6fpjI/AAAAAAAAALw/5EWpVdKKzeo/s1600-h/Imagem+12+-+Configura%C3%A7%C3%A3o+da+propriedade+Target.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5196650078493713970" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_b8Po4UBWLzo/SB41tp6fpjI/AAAAAAAAALw/5EWpVdKKzeo/s400/Imagem+12+-+Configura%C3%A7%C3%A3o+da+propriedade+Target.jpg" border="0" /&gt;&lt;/a&gt;Imagem 12 - Configuração da propriedade Target &lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;Execute o site e veja o resultado gerado. É possível também adicionar a querystring para visualizar os demais fornecedores, na Url do site adicione o seguinte conteúdo para ver o Fornecedor de Código 1:“?CodFornecedor=1”.&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;Referências:&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa581783.aspx"&gt;http://msdn.microsoft.com/en-us/library/aa581783.aspx&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6331859157625229771-1972829447464230124?l=aplicacoesweb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AplicaesWeb/~4/3AUT11LJa6M" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/1972829447464230124?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/1972829447464230124?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AplicaesWeb/~3/3AUT11LJa6M/mostrando-dados-com-o-formview-e.html" title="Mostrando dados com o FormView e Orientação a Objetos" /><author><name>Mateus Queiroz Correia</name><uri>https://profiles.google.com/103544107567690484780</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-D0HajHeutmA/AAAAAAAAAAI/AAAAAAAAAzs/PWg9nWVws10/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_b8Po4UBWLzo/SB40sJ6fpYI/AAAAAAAAAKY/y33Zx5p8veU/s72-c/Imagem+1+-+Solution+Explorer.jpg" height="72" width="72" /><feedburner:origLink>http://aplicacoesweb.blogspot.com/2008/05/mostrando-dados-com-o-formview-e.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4FQ3oyfCp7ImA9WxdTEE8.&quot;"><id>tag:blogger.com,1999:blog-6331859157625229771.post-3360881640546293104</id><published>2008-05-05T19:51:00.000-03:00</published><updated>2008-05-05T19:51:52.494-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-05T19:51:52.494-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="FormView" /><title>FormView - Visão Geral</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/JtfHlXLoFQcjUoYuvohWiMK13SU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JtfHlXLoFQcjUoYuvohWiMK13SU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/JtfHlXLoFQcjUoYuvohWiMK13SU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JtfHlXLoFQcjUoYuvohWiMK13SU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;O FormView permite a exibição de um único registro de uma fonte de dados, sendo possível editar, excluir e inserir registros. O problema que ele vem a resolver é o mesmo que o DetailsView, a diferença é que o FormView permite criar modelos(templates) para definir como os controles ficarão.&lt;/p&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;O FormView suporta as seguintes funcionalidades:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;Fazer bind com  controles DataSource(SqlDataSource, XmlDataSource, LinqDataSource  etc).&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;Suporte a inserção&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;Suporte a  atualização e exclusão&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;Paginação&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;Acesso ao modelo  de objetos FormView para definir &lt;span lang="pt-BR"&gt;propriedade&lt;/span&gt;,  manipular eventos e outros&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;Customização  da aparência através de modelos de usuários,  temas e estilos.&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p class="western" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;h3 class="western"&gt;Modelos(Templates)&lt;/h3&gt; &lt;p class="western" style="margin-bottom: 0cm;"&gt;Para que o FormView mostre conteúdo é necessário criar templates para as diferentes partes do controle. A maioria dos templates são opcionais, porém é necessário criar um template para o modo que o FormView está. Os templates do FormView são:&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;table border="1" bordercolor="#000000" cellpadding="4" cellspacing="0" width="100%"&gt;  &lt;col width="128*"&gt;  &lt;col width="128*"&gt;  &lt;tbody&gt;&lt;tr valign="top"&gt;   &lt;td width="50%"&gt;    &lt;p class="western"&gt;Tipo de modelo(Template)&lt;/p&gt;   &lt;/td&gt;   &lt;td width="50%"&gt;    &lt;p class="western"&gt;Descrição&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="50%"&gt;    &lt;p class="western"&gt;EditItemTemplate&lt;/p&gt;   &lt;/td&gt;   &lt;td width="50%"&gt;    &lt;p class="western"&gt;Define o modelo para quando o FormView está    em edição. Este modelo geralmente tem controles para    entrada de dados com os valores atuais do registros.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="50%"&gt;    &lt;p class="western"&gt;EmptyDataTemplate&lt;/p&gt;   &lt;/td&gt;   &lt;td width="50%"&gt;    &lt;p class="western"&gt;Define o conteúdo para o modelo quando a    fonte de dados não tem registro. Este normalmente tem um    aviso para o usuário que não existe o registro    solicitado.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="50%"&gt;    &lt;p class="western"&gt;FooterTemplate&lt;/p&gt;   &lt;/td&gt;   &lt;td width="50%"&gt;    &lt;p class="western"&gt;Este modelo define o rodapé do FomView.&lt;/p&gt;    &lt;p class="western"&gt;Nota:     &lt;/p&gt;    &lt;p class="western"&gt;como alternativa é possível    definir a propriedade FooterText&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="50%"&gt;    &lt;p class="western"&gt;HeaderTemplate&lt;/p&gt;   &lt;/td&gt;   &lt;td width="50%"&gt;    &lt;p class="western"&gt;Este modelo define o cabeçalho do    FomView.&lt;/p&gt;    &lt;p class="western"&gt;Nota:     &lt;/p&gt;    &lt;p class="western"&gt;como alternativa é possível    definir a propriedade HeaderText&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="50%"&gt;    &lt;p class="western"&gt;ItemTemplate&lt;/p&gt;   &lt;/td&gt;   &lt;td width="50%"&gt;    &lt;p class="western"&gt;Este modelo define o comportamento quando o    FormView está em visualização sem permitir a    edição.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="50%"&gt;    &lt;p class="western"&gt;InsertItemTemplate&lt;/p&gt;   &lt;/td&gt;   &lt;td width="50%"&gt;    &lt;p class="western"&gt;Este modelo permite a inserção de    registros na fonte de dados.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="50%"&gt;    &lt;p class="western"&gt;PagerTemplate&lt;/p&gt;   &lt;/td&gt;   &lt;td width="50%"&gt;    &lt;p class="western"&gt;Este modelo permite a navegação    entre registros do FormView quando a paginação está    habilitada(Propriedade AllowPaging definida para true).&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;h3 class="western"&gt;Mostrando Dados&lt;/h3&gt; &lt;p class="western" style="margin-bottom: 0cm;"&gt;Para fazer bind com controles DataSource deve-se definir a propriedade DataSourceID do GridView com o ID do controle DataSource. Este é preferível em relação ao debaixo, pois provê automaticamente ações como ordenação, atualização, exclusão e paginação.&lt;/p&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Para fazer bind com controles que implementam a interface System.Collections.IEnumerable, deve-se através de programação definir a propriedade DataSource e chamar o método DataBind.&lt;/p&gt;  &lt;h3 class="western"&gt;Operações de Dados&lt;/h3&gt; &lt;p class="western"&gt;O FormView reconhece alguns comandos para permitir a atualização, exclusão, inserção e paginação. Como o FormView utiliza modelos(templates) não é gerado automaticamente os botões de comando para estas funcionalidades, então fica a cargo do usuário adicionar estes botões com a propriedade CommandName definido conforme lista abaixo:&lt;/p&gt; &lt;table border="1" bordercolor="#000000" cellpadding="4" cellspacing="0" width="100%"&gt;  &lt;col width="30*"&gt;  &lt;col width="54*"&gt;  &lt;col width="172*"&gt;  &lt;tbody&gt;&lt;tr valign="top"&gt;   &lt;td width="12%"&gt;    &lt;p class="western"&gt;Botão&lt;/p&gt;   &lt;/td&gt;   &lt;td width="21%"&gt;    &lt;p class="western"&gt;CommandName&lt;/p&gt;   &lt;/td&gt;   &lt;td width="67%"&gt;    &lt;p class="western"&gt;Descrição&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="12%"&gt;    &lt;p class="western"&gt;Cancel&lt;/p&gt;   &lt;/td&gt;   &lt;td width="21%"&gt;    &lt;p class="western"&gt;Cancel&lt;/p&gt;   &lt;/td&gt;   &lt;td width="67%"&gt;    &lt;p class="western"&gt;Retorna o FormView para o DefaultMode definido.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="12%"&gt;    &lt;p class="western"&gt;Delete&lt;/p&gt;   &lt;/td&gt;   &lt;td width="21%"&gt;    &lt;p class="western"&gt;Delete&lt;/p&gt;   &lt;/td&gt;   &lt;td width="67%"&gt;    &lt;p class="western"&gt;Usado nas operações de exclusão    do registro corrente, dispara os eventos ItemDeleting e    ItemDeleted.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="12%"&gt;    &lt;p class="western"&gt;Edit&lt;/p&gt;   &lt;/td&gt;   &lt;td width="21%"&gt;    &lt;p class="western"&gt;Edit&lt;/p&gt;   &lt;/td&gt;   &lt;td width="67%"&gt;    &lt;p class="western"&gt;Usado para colocar o FormView no modo de    edição.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="12%"&gt;    &lt;p class="western"&gt;Insert&lt;/p&gt;   &lt;/td&gt;   &lt;td width="21%"&gt;    &lt;p class="western"&gt;Insert&lt;/p&gt;   &lt;/td&gt;   &lt;td width="67%"&gt;    &lt;p class="western"&gt;Usado para inserir um novo registro na fonte de    dados. Dispara os eventos ItemInserting e ItemInserted.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="12%"&gt;    &lt;p class="western"&gt;New&lt;/p&gt;   &lt;/td&gt;   &lt;td width="21%"&gt;    &lt;p class="western"&gt;New     &lt;/p&gt;   &lt;/td&gt;   &lt;td width="67%"&gt;    &lt;p class="western"&gt;Usao para colocar o FormView no modo de    inserção.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="12%"&gt;    &lt;p class="western"&gt;Page&lt;/p&gt;   &lt;/td&gt;   &lt;td width="21%"&gt;    &lt;p class="western"&gt;Page&lt;/p&gt;   &lt;/td&gt;   &lt;td width="67%"&gt;    &lt;p class="western"&gt;Usado para paginação. Para usar    da paginação defina a propriedade CommandArgument do    botão para "Next", "Prev", "First",    "Last", ou o indice de página que deseja    visualizar. Dispara os eventos PageIndexChanging e    PageIndexChanged&lt;/p&gt;    &lt;p class="western"&gt;Nota: Este normalmente é utilizado    somente no PagerTemplate&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="12%"&gt;    &lt;p class="western"&gt;Update&lt;/p&gt;   &lt;/td&gt;   &lt;td width="21%"&gt;    &lt;p class="western"&gt;Update&lt;/p&gt;   &lt;/td&gt;   &lt;td width="67%"&gt;    &lt;p class="western"&gt;Usado para atualizar o registro na fonte de    dados. Dispara os eventos ItemUpdating e ItemUpdated.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;h3 class="western"&gt;Customizando interface com o usuário&lt;/h3&gt; &lt;p class="western"&gt;É possível customizar a aparência do FormView definindo as propriedades de estilo para as diferentes partes do controle:&lt;/p&gt; &lt;table border="1" bordercolor="#000000" cellpadding="4" cellspacing="0" width="100%"&gt;  &lt;col width="69*"&gt;  &lt;col width="187*"&gt;  &lt;tbody&gt;&lt;tr valign="top"&gt;   &lt;td width="27%"&gt;    &lt;p class="western"&gt;Propriedades de estilo&lt;/p&gt;   &lt;/td&gt;   &lt;td width="73%"&gt;    &lt;p class="western"&gt;Descrição&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="27%"&gt;    &lt;p class="western"&gt;EditRowStyle&lt;/p&gt;   &lt;/td&gt;   &lt;td width="73%"&gt;    &lt;p class="western"&gt;Configurações de estilo para    quando o FormView está em modo de edição.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="27%"&gt;    &lt;p class="western"&gt;EmptyDataRowStyle&lt;/p&gt;   &lt;/td&gt;   &lt;td width="73%"&gt;    &lt;p class="western"&gt;Configurações de estilo para    quando o FormView não contêm nenhum dado.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="27%"&gt;    &lt;p class="western"&gt;FooterStyle&lt;/p&gt;   &lt;/td&gt;   &lt;td width="73%"&gt;    &lt;p class="western"&gt;Configurações de estilo do rodapé    do FormView.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="27%"&gt;    &lt;p class="western"&gt;HeaderStyle&lt;/p&gt;   &lt;/td&gt;   &lt;td width="73%"&gt;    &lt;p class="western"&gt;Configurações de estilo do    cabeçalho do FormView.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="27%"&gt;    &lt;p class="western"&gt;InsertRowStyle&lt;/p&gt;   &lt;/td&gt;   &lt;td width="73%"&gt;    &lt;p class="western"&gt;Configurações de estilo para    quando o FormView está em modo de inserção.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="27%"&gt;    &lt;p class="western"&gt;PagerStyle&lt;/p&gt;   &lt;/td&gt;   &lt;td width="73%"&gt;    &lt;p class="western"&gt;Configurações de estilo da    paginação quando está habilitada.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="27%"&gt;    &lt;p class="western"&gt;RowStyle&lt;/p&gt;   &lt;/td&gt;   &lt;td width="73%"&gt;    &lt;p class="western"&gt;Configurações de estilo para    quando o FormView está em modo de visualização(somente    leitura).&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;    &lt;p class="western" style="margin-bottom: 0cm;"&gt;Referências:&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa581783.aspx"&gt;http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.formview.aspx&lt;br /&gt;http://msdn.microsoft.com/en-us/library/aa581783.aspx&lt;/a&gt;&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6331859157625229771-3360881640546293104?l=aplicacoesweb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AplicaesWeb/~4/WebwU3NXpZM" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/3360881640546293104?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/3360881640546293104?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AplicaesWeb/~3/WebwU3NXpZM/formview-viso-geral.html" title="FormView - Visão Geral" /><author><name>Mateus Queiroz Correia</name><uri>https://profiles.google.com/103544107567690484780</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-D0HajHeutmA/AAAAAAAAAAI/AAAAAAAAAzs/PWg9nWVws10/s512-c/photo.jpg" /></author><feedburner:origLink>http://aplicacoesweb.blogspot.com/2008/05/formview-viso-geral.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEMQn4zeip7ImA9WxdRF0Q.&quot;"><id>tag:blogger.com,1999:blog-6331859157625229771.post-3623983116607825745</id><published>2008-05-04T12:17:00.005-03:00</published><updated>2008-06-06T20:24:43.082-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-06-06T20:24:43.082-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="GridView" /><category scheme="http://www.blogger.com/atom/ns#" term="Generics" /><category scheme="http://www.blogger.com/atom/ns#" term="OO" /><title>Mostrando dados com o GridView e Orientação a Objetos</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/64yM6_qrvHUJ2YlWwUMeDpWkuKI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/64yM6_qrvHUJ2YlWwUMeDpWkuKI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/64yM6_qrvHUJ2YlWwUMeDpWkuKI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/64yM6_qrvHUJ2YlWwUMeDpWkuKI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Neste post iremos preencher uma GridView com uma fonte de dados que é uma lista de fornecedores. Para isso criaremos um novo site, adicionaremos a pasta ASP.NET App_Code, nesta adicionaremos as classes Fornecedor e a FonteDadosFornecedor, conforme imagem 1&lt;br /&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;&lt;br /&gt;&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_b8Po4UBWLzo/SB3Upp6fpQI/AAAAAAAAAJU/Qnnigh-m6bs/s1600-h/Imagem+1+-+Solution+Explorer.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5196543357146342658" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_b8Po4UBWLzo/SB3Upp6fpQI/AAAAAAAAAJU/Qnnigh-m6bs/s400/Imagem+1+-+Solution+Explorer.jpg" border="0" /&gt;&lt;/a&gt;Imagem 1 – Solution Explorer da solução &lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;Escrevemos o código do Fornecedor conforme Código 1, este código é compatível com o ASP.NET 3.5, para ver o código compatível com o ASP.NET 2.0 veja o Código 2:&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;using&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; System;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;using&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; System.Data;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;using&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; System.Configuration;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;using&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; System.Web;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;using&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; System.Web.Security;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;using&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; System.Web.UI;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;using&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; System.Web.UI.HtmlControls;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;using&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; System.Web.UI.WebControls;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;using&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; System.Web.UI.WebControls.WebParts;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" lang="zxx" style="MARGIN-BOTTOM: 0cm"&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;class&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;Fornecedor&lt;/span&gt;&lt;br /&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; Fornecedor(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; codigo, &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; nome, &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; site)&lt;/span&gt;&lt;br /&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;.Codigo = codigo;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;.Nome = nome;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;.Site = site;&lt;/span&gt;&lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; Codigo { &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;get&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;set&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;; }&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; Nome { &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;get&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;set&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;; }&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; Site { &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;get&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;set&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;; }&lt;/span&gt;&lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;Código 1 – Fornecedor.cs (ASP.NET 3.5)&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;using&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; System;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;using&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; System.Data;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;using&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; System.Configuration;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;using&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; System.Web;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;using&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; System.Web.Security;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;using&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; System.Web.UI;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;using&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; System.Web.UI.HtmlControls;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;using&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; System.Web.UI.WebControls;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;using&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; System.Web.UI.WebControls.WebParts;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" lang="zxx" style="MARGIN-BOTTOM: 0cm"&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;class&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;Fornecedor&lt;/span&gt;&lt;br /&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;private int&lt;/span&gt; _Codigo;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;private string&lt;/span&gt; _Nome;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;private string&lt;/span&gt; _Site;&lt;br /&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; Fornecedor(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; codigo, &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; nome, &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; site)&lt;/span&gt;&lt;br /&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;.Codigo = codigo;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;.Nome = nome;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;.Site = site;&lt;/span&gt;&lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; Codigo&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;get &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;{ return _Codigo; }&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;set&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; { _Codigo = value; }&lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; Nome&lt;br /&gt;{&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;get &lt;span style="color:#000000;"&gt;{ &lt;/span&gt;return &lt;span style="color:#000000;"&gt;_Nome;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;set &lt;span style="color:#000000;"&gt;{ _Nome = &lt;/span&gt;value&lt;span style="color:#000000;"&gt;; }&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;&lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; Site&lt;br /&gt;{&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;get &lt;span style="color:#000000;"&gt;{&lt;/span&gt; return&lt;span style="color:#000000;"&gt; _Site;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;set &lt;span style="color:#000000;"&gt;{ _Site =&lt;/span&gt; value&lt;span style="color:#000000;"&gt;;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;Código 2 - Fornecedor.cs (ASP.NET 2.0)&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;Escrevemos o código do FonteDadosFonrcedor conforme Código 3:&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;using&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; System;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;using&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; System.Data;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;using&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; System.Configuration;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;using&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; System.Web;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;using&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; System.Web.Security;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;using&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; System.Web.UI;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;using&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; System.Web.UI.HtmlControls;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;using&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; System.Web.UI.WebControls;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;using&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; System.Web.UI.WebControls.WebParts;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;using&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; System.Collections.Generic;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" lang="zxx" style="MARGIN-BOTTOM: 0cm"&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;class&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;FonteDadosFornecedor&lt;/span&gt;&lt;br /&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(43,145,175)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;List&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;&lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(43,145,175)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;Fornecedor&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;&gt; RetornaFornecedores()&lt;/span&gt;&lt;br /&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(43,145,175)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;List&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;&lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(43,145,175)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;Fornecedor&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;&gt; result = &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(43,145,175)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;List&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;&lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(43,145,175)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;Fornecedor&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;&gt;();&lt;br /&gt;result.Add(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(43,145,175)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;Fornecedor&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;(0, &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(163,21,21)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;"Microsoft"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;, &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(163,21,21)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;"http://www.microsoft.com"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;));&lt;br /&gt;result.Add(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(43,145,175)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;Fornecedor&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;(1, &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(163,21,21)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;"Google"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;, &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(163,21,21)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;"http://www.google.com"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;));&lt;br /&gt;result.Add(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(43,145,175)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;Fornecedor&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;(2, &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(163,21,21)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;"Oracle"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;, &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(163,21,21)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;"http://www.oracle.com"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;));&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt;return&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="zxx"&gt; result;&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;Código 3 – FonteDadosFornecedor&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;Criamos ou renomearemos uma página existente para GridView.aspx. Para garantir que esta página seja a que será executada ao iniciar a aplicação, clique com o botão direito nesta página e vá na opção “Set as Start Page”, conforme Imagem 2.&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;&lt;br /&gt;&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_b8Po4UBWLzo/SB3Up56fpRI/AAAAAAAAAJc/85-_tS8SsDc/s1600-h/Imagem+2+-+Set+As+Start+Page.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5196543361441309970" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_b8Po4UBWLzo/SB3Up56fpRI/AAAAAAAAAJc/85-_tS8SsDc/s400/Imagem+2+-+Set+As+Start+Page.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;Imagem 2 – Set as Start Page&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;Adicione um GridView ao GridView.aspx, e nas tarefas no GridView na parte “Choose Data Source”, selecione a opção “New Data Source” para definirmos O FonteDadosFornecedor como nossa fonte de dados, conforme imagem 3.&lt;/p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_b8Po4UBWLzo/SB3UqJ6fpSI/AAAAAAAAAJk/-qAVzQ5n3Tk/s1600-h/Imagem+3+-+Tarefas+do+GridView.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5196543365736277282" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_b8Po4UBWLzo/SB3UqJ6fpSI/AAAAAAAAAJk/-qAVzQ5n3Tk/s400/Imagem+3+-+Tarefas+do+GridView.jpg" border="0" /&gt;&lt;/a&gt;Imagem 3 – Tarefas do GridView &lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;No wizard que será aberto selecione o tipo de dados ObjectDataSource e defina o ID como odsFornecedor conforme Imagem 4 e clique em OK.&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_b8Po4UBWLzo/SB3UqZ6fpTI/AAAAAAAAAJs/Ab8Q4AMeaFM/s1600-h/Imagem+4+-+Definindo+o+ObjectDataSource+como+fonte+de+dados.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5196543370031244594" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_b8Po4UBWLzo/SB3UqZ6fpTI/AAAAAAAAAJs/Ab8Q4AMeaFM/s400/Imagem+4+-+Definindo+o+ObjectDataSource+como+fonte+de+dados.jpg" border="0" /&gt;&lt;/a&gt;Imagem 4 - Definindo o ObjectDataSource como fonte de dados &lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;No próximo passo, selecione nosso objeto de negócio o FonteDadosFornecedor, conforme Imagem 5 e clique em Next.&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_b8Po4UBWLzo/SB3Uqp6fpUI/AAAAAAAAAJ0/t1q27p-L_m4/s1600-h/Imagem+5+-+Definindo+o+objeto+de+neg%C3%B3cio.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5196543374326211906" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_b8Po4UBWLzo/SB3Uqp6fpUI/AAAAAAAAAJ0/t1q27p-L_m4/s400/Imagem+5+-+Definindo+o+objeto+de+neg%C3%B3cio.jpg" border="0" /&gt;&lt;/a&gt;Imagem 5 – Definindo o Objeto de negócio &lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;Selecione o método de dados para o SELECT, conforme Imagem 6 e clique em Finish.&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_b8Po4UBWLzo/SB3VWJ6fpVI/AAAAAAAAAJ8/3L7DXB5P8GQ/s1600-h/Imagem+6+-+Definindo+o+M%C3%A9todo+SELECT.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5196544121650521426" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_b8Po4UBWLzo/SB3VWJ6fpVI/AAAAAAAAAJ8/3L7DXB5P8GQ/s400/Imagem+6+-+Definindo+o+M%C3%A9todo+SELECT.jpg" border="0" /&gt;&lt;/a&gt;Imagem 6 - Definindo o Método SELECT &lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;O GridView já identifica quais as colunas são mostradas, vamos agora customizar a coluna Site para ser um HiperLink, nas tarefas do GridView, selecione a opção Edit Columns, conforme Imagem 7.&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_b8Po4UBWLzo/SB3VWZ6fpWI/AAAAAAAAAKE/AQ6A6pE3_5o/s1600-h/Imagem+7+%E2%80%93+Selecionando+a+op%C3%A7%C3%A3o+Edit+Columns.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5196544125945488738" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_b8Po4UBWLzo/SB3VWZ6fpWI/AAAAAAAAAKE/AQ6A6pE3_5o/s400/Imagem+7+%E2%80%93+Selecionando+a+op%C3%A7%C3%A3o+Edit+Columns.jpg" border="0" /&gt;&lt;/a&gt;Imagem 7 – Selecionando a opção Edit Columns &lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;Adicione uma nova coluna do tipo HyperLinkField e defina as propriedades com os seguintes valores:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;HeaderText: Site&lt;br /&gt;&lt;i&gt;Define o texto do cabeçalho&lt;/i&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;Target : _blank&lt;br /&gt;&lt;i&gt;Define que o link será aberto em uma nova janela&lt;/i&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;DataNavigateUrlFields: Site&lt;br /&gt;&lt;i&gt;Define o campo que será usado na montagem da URL&lt;/i&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;DataNavigateUrlFormatString: {0}&lt;br /&gt;Define a string de URL, onde {Indice} é substituído pelo campo de indice do DataNavigateUrlFields&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;DataTextField&lt;br /&gt;Campo a ser mostrado no GridView&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;Depois exclua a coluna Site existente previamente. O Resultado fica conforme Imagem 8.&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_b8Po4UBWLzo/SB3VWp6fpXI/AAAAAAAAAKM/8wvSdVdC5fU/s1600-h/Imagem+8+-+Configurado+o+HyperLinkField.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5196544130240456050" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_b8Po4UBWLzo/SB3VWp6fpXI/AAAAAAAAAKM/8wvSdVdC5fU/s400/Imagem+8+-+Configurado+o+HyperLinkField.jpg" border="0" /&gt;&lt;/a&gt;Imagem 8 - Configurado o HyperLinkField &lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;Execute o site e veja o resultado gerado. Observe o HTML gerado e a abstração que isto nos deu do HTML.&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;Referências:&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.aspx"&gt;http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.aspx&lt;/a&gt;&lt;/p&gt;&lt;p class="western" style="MARGIN-BOTTOM: 0cm"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6331859157625229771-3623983116607825745?l=aplicacoesweb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AplicaesWeb/~4/UbLySKmJ_wI" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/3623983116607825745?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/3623983116607825745?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AplicaesWeb/~3/UbLySKmJ_wI/lista-de-objetos-com-o-gridview.html" title="Mostrando dados com o GridView e Orientação a Objetos" /><author><name>Mateus Queiroz Correia</name><uri>https://profiles.google.com/103544107567690484780</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-D0HajHeutmA/AAAAAAAAAAI/AAAAAAAAAzs/PWg9nWVws10/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_b8Po4UBWLzo/SB3Upp6fpQI/AAAAAAAAAJU/Qnnigh-m6bs/s72-c/Imagem+1+-+Solution+Explorer.jpg" height="72" width="72" /><feedburner:origLink>http://aplicacoesweb.blogspot.com/2008/05/lista-de-objetos-com-o-gridview.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUDQn07cCp7ImA9WxZaGUw.&quot;"><id>tag:blogger.com,1999:blog-6331859157625229771.post-6282200720072102870</id><published>2008-05-04T11:10:00.000-03:00</published><updated>2008-05-04T11:11:13.308-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-04T11:11:13.308-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="teste unitário" /><category scheme="http://www.blogger.com/atom/ns#" term="xUnit.net" /><title>Indo para o xUnit.net</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/kHxjQo9M8Hw1KrXf_zeTvFFViYM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kHxjQo9M8Hw1KrXf_zeTvFFViYM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/kHxjQo9M8Hw1KrXf_zeTvFFViYM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kHxjQo9M8Hw1KrXf_zeTvFFViYM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Novo em testes unitários? &lt;a href="http://aplicacoesweb.blogspot.com/2008/03/pensando-no-resultado-esperado.html"&gt;Leia este post&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Para quem já conhece teste unitário e possivelmente conhece alguma framework como o NUnit. Em 23 de abril deste ano saiu a versão xUnit.net 1.0 RTM(Release To Market). Para quem quiser migrar, esta página faz um comparativo dos diferentes atributos e asserções (Attributes, Assertions):&lt;br /&gt;&lt;a href="http://www.codeplex.com/xunit/Wiki/View.aspx?title=Comparisons&amp;amp;referringTitle=Home"&gt;http://www.codeplex.com/xunit/Wiki/View.aspx?title=Comparisons&amp;amp;referringTitle=Home&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;O Nunit já tem 5 anos de idade e tem seus padrões bem e mal sucedidos, este link explica o porquê de ter sido criado o xUnit.net, outra plataforma para testes unitários:&lt;br /&gt;&lt;a href="http://www.codeplex.com/xunit/Wiki/View.aspx?title=WhyDidWeBuildXunit&amp;amp;referringTitle=Home"&gt;http://www.codeplex.com/xunit/Wiki/View.aspx?title=WhyDidWeBuildXunit&amp;amp;referringTitle=Home&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Post sobre a alteração para xUnit.net do MoQ:&lt;br /&gt;&lt;a href="http://www.clariusconsulting.net/blogs/kzu/archive/2008/04/22/MoQnowusesxUnitforitsunittests.aspx"&gt;http://www.clariusconsulting.net/blogs/kzu/archive/2008/04/22/MoQnowusesxUnitforitsunittests.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Veja o site do xUnit.net:&lt;br /&gt;&lt;a href="http://www.codeplex.com/xunit"&gt;http://www.codeplex.com/xunit&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6331859157625229771-6282200720072102870?l=aplicacoesweb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AplicaesWeb/~4/CcLbtneArFg" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/6282200720072102870?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/6282200720072102870?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AplicaesWeb/~3/CcLbtneArFg/indo-para-o-xunitnet.html" title="Indo para o xUnit.net" /><author><name>Mateus Queiroz Correia</name><uri>https://profiles.google.com/103544107567690484780</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-D0HajHeutmA/AAAAAAAAAAI/AAAAAAAAAzs/PWg9nWVws10/s512-c/photo.jpg" /></author><feedburner:origLink>http://aplicacoesweb.blogspot.com/2008/05/indo-para-o-xunitnet.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUEAR30-fyp7ImA9WxZaGU0.&quot;"><id>tag:blogger.com,1999:blog-6331859157625229771.post-2825119143426986059</id><published>2008-05-03T10:06:00.003-03:00</published><updated>2008-05-04T10:27:26.357-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-04T10:27:26.357-03:00</app:edited><title>Trabalhando com dados - GridView</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/6ifbpiESe_BHwa8pO_IrSt0V8N8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6ifbpiESe_BHwa8pO_IrSt0V8N8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/6ifbpiESe_BHwa8pO_IrSt0V8N8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6ifbpiESe_BHwa8pO_IrSt0V8N8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;Quando trabalhamos com fontes de dados, há disponível pelo ASP.NET alguns controles para nos auxiliar, como o GridView, o DataList, o DetailsView, FormView e o Repeater. O ASP.NET 3.5 ainda trouxe dois novos controles: ListView e o Repeater.&lt;/p&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Os controles são basicamente divididos para exibições de vários registros: GridView, DataList, Repeater e ListView. E exibição de um registro, que é possível usando o DetailsView ou o FormView.&lt;/p&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Neste momento vamos falar o GridView, que foi introduzido no ASP.NET 2.0 e substitui o antigo DataGrid. O GridView mostra dados de uma fonte de dados de maneira tabular, onde cada linha do GridView representa uma linha da fonte de dado. O GridView ainda possúi:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;Ordenação&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;Atualização  e exclusão&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;Paginação&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;Seleção  de linha&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;Multiplas chaves&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;Multiplos campos  de dados para hiperlinks&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0cm;"&gt;Cutomização  de aparencia através de temas(themes) e estilos(styles)&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Cada coluna do GridView representa um atributo do registro, no caso do DataTable, um DataColumn. Cada coluna do GridView é uma classe que descende de DataControlField, e as opções são:&lt;/p&gt; &lt;table border="1" bordercolor="#000000" cellpadding="4" cellspacing="0" width="100%"&gt;  &lt;col width="200px"&gt;  &lt;col width="100%"&gt;  &lt;tbody&gt;&lt;tr valign="top"&gt;   &lt;td bgcolor="#e6e6e6" width="908"&gt;    &lt;p class="western"&gt;&lt;b&gt;Tipo de Coluna&lt;/b&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td bgcolor="#e6e6e6" width="3443"&gt;    &lt;p class="western"&gt;&lt;b&gt;Descrição&lt;/b&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="908"&gt;    &lt;p class="western"&gt;BoundField&lt;/p&gt;   &lt;/td&gt;   &lt;td width="3443"&gt;    &lt;p class="western"&gt;Mostra o valor de um campo como texto&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="908"&gt;    &lt;p class="western"&gt;ButtonField&lt;/p&gt;   &lt;/td&gt;   &lt;td width="3443"&gt;    &lt;p class="western"&gt;Mostra um botão de controle&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="908"&gt;    &lt;p class="western"&gt;CheckBoxField&lt;/p&gt;   &lt;/td&gt;   &lt;td width="3443"&gt;    &lt;p class="western"&gt;Mostra um CheckBox&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="908"&gt;    &lt;p class="western"&gt;CommandField&lt;/p&gt;   &lt;/td&gt;   &lt;td width="3443"&gt;    &lt;p class="western"&gt;Mostra um botão de comando para editar,    inserir ou excluir&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="908"&gt;    &lt;p class="western"&gt;HyperLinkField&lt;/p&gt;   &lt;/td&gt;   &lt;td width="3443"&gt;    &lt;p class="western"&gt;Mostra um texto como hiperlink&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="908"&gt;    &lt;p class="western"&gt;ImageField&lt;/p&gt;   &lt;/td&gt;   &lt;td width="3443"&gt;    &lt;p class="western"&gt;Mostra uma imagem&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="908"&gt;    &lt;p class="western"&gt;TemplateField&lt;/p&gt;   &lt;/td&gt;   &lt;td width="3443"&gt;    &lt;p class="western"&gt;Mostra um conteúdo de acordo com um    modelo(Template) do usuário&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;O GridView ainda tem a propriedade AutoGenerateColumns, que se habilitadade gera automaticamente colunas para o GridView.&lt;/p&gt; &lt;h3 class="western"&gt;Mostrando Dados com o GridView&lt;/h3&gt; &lt;p class="western" style="margin-bottom: 0cm;"&gt;Podemos fazer bind o GridView com dados através de controles DataSources(SqlDataSource, XMLDataSource, LinqDataSource) ou com qualquer fonte de dados que implemente a interface System.Collections.IEnumerable.&lt;/p&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Para fazer bind com controles DataSource deve-se definir a propriedade DataSourceID do GridView com o ID do controle DataSource. Este é preferível em relação ao debaixo, pois provê automaticamente ações como ordenação, atualização, exclusão e paginação.&lt;/p&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;Para fazer bind com controles que implementam a interface System.Collections.IEnumerable, deve-se através de programação definir a propriedade DataSource e chamar o método DataBind.&lt;/p&gt;  &lt;h3 class="western"&gt;Customizando Interface com o Usuário&lt;/h3&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;De maneira mais genérica, podemos customizar a aparência do GridView utilizando Thema e skin. O que permite uma padronização de interface da aplicação Web. Mas podemos também customizar definindo propriedades de estilo de diferentes partes do controle:&lt;br /&gt;&lt;br /&gt;&lt;/p&gt; &lt;table border="1" bordercolor="#000000" cellpadding="4" cellspacing="0" width="100%"&gt;  &lt;col width="69*"&gt;  &lt;col width="187*"&gt;  &lt;tbody&gt;&lt;tr valign="top"&gt;   &lt;td bgcolor="#e6e6e6" width="27%"&gt;    &lt;p class="western"&gt;&lt;b&gt;Propriedade&lt;/b&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td bgcolor="#e6e6e6" width="73%"&gt;    &lt;p class="western"&gt;&lt;b&gt;Descrição&lt;/b&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="27%"&gt;    &lt;p class="western"&gt;AlternatingRowStyle&lt;/p&gt;   &lt;/td&gt;   &lt;td width="73%"&gt;    &lt;p class="western"&gt;Define o estilo para as linhas alternadas no    controle GridView. Quando esta propriedade é definida as    linhas do GridView alternam estilos entre RowStyle e    AlternatingRowStyle.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="27%"&gt;    &lt;p class="western"&gt;EditRowStyle&lt;/p&gt;   &lt;/td&gt;   &lt;td width="73%"&gt;    &lt;p class="western"&gt;Define o estilo da linha que está sendo    editada no GridView.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="27%"&gt;    &lt;p class="western"&gt;EmptyDataRowStyle&lt;/p&gt;   &lt;/td&gt;   &lt;td width="73%"&gt;    &lt;p class="western"&gt;Define o estilo das linhas em branco mostradas    no GridView, quando a fonte de dados não tem nenhum    registro.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="27%"&gt;    &lt;p class="western"&gt;FooterStyle&lt;/p&gt;   &lt;/td&gt;   &lt;td width="73%"&gt;    &lt;p class="western"&gt;Define o estilo para a linha rodapé do    GridView.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="27%"&gt;    &lt;p class="western"&gt;HeaderStyle&lt;/p&gt;   &lt;/td&gt;   &lt;td width="73%"&gt;    &lt;p class="western"&gt;Define o estilo da linha cabeçalho do    GridView.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="27%"&gt;    &lt;p class="western"&gt;PagerStyle&lt;/p&gt;   &lt;/td&gt;   &lt;td width="73%"&gt;    &lt;p class="western"&gt;Define o estilo do paginador do GridView.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="27%"&gt;    &lt;p class="western"&gt;RowStyle&lt;/p&gt;   &lt;/td&gt;   &lt;td width="73%"&gt;    &lt;p class="western"&gt;Define o estilo das linhas do GridView. Se a    propriedade AlternatingRowStyle é definida as linhas do    GridView alternam estilos entre RowStyle e AlternatingRowStyle.&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="western" style="margin-bottom: 0cm;"&gt;É possível também mostrar ou ocultar o cabeçalho e o rodapé do GridView utilizando respectivamente das propriedades ShowHeader e ShowFooter.&lt;/p&gt;    &lt;p class="western" style="margin-bottom: 0cm;"&gt;Referências:&lt;br /&gt;&lt;a href="http://www.microsoft.com/brasil/msdn/Tecnologias/aspnet/ExplorandoGridView.mspx"&gt;http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview(VS.80).aspx&lt;br /&gt;http://www.microsoft.com/brasil/msdn/Tecnologias/aspnet/ExplorandoGridView.mspx&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6331859157625229771-2825119143426986059?l=aplicacoesweb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AplicaesWeb/~4/C1UKD01bIDI" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/2825119143426986059?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/2825119143426986059?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AplicaesWeb/~3/C1UKD01bIDI/trabalhando-com-dados-gridview.html" title="Trabalhando com dados - GridView" /><author><name>Mateus Queiroz Correia</name><uri>https://profiles.google.com/103544107567690484780</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-D0HajHeutmA/AAAAAAAAAAI/AAAAAAAAAzs/PWg9nWVws10/s512-c/photo.jpg" /></author><feedburner:origLink>http://aplicacoesweb.blogspot.com/2008/05/trabalhando-com-dados-gridview.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0IHRns4fyp7ImA9WxdXEEo.&quot;"><id>tag:blogger.com,1999:blog-6331859157625229771.post-3938678923437431060</id><published>2008-05-02T13:23:00.003-03:00</published><updated>2008-06-21T15:05:37.537-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-06-21T15:05:37.537-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="DropDownList" /><category scheme="http://www.blogger.com/atom/ns#" term="Generics" /><category scheme="http://www.blogger.com/atom/ns#" term="OO" /><title>Bind do DropDownList com uma lista genérica</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/UObK46HeN-Y56dsl1GlDElMZlu8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UObK46HeN-Y56dsl1GlDElMZlu8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/UObK46HeN-Y56dsl1GlDElMZlu8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UObK46HeN-Y56dsl1GlDElMZlu8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="western" lang="pt-BR"&gt;O DropDownList do ASP.NET pode fazer bind com uma lista genérica(System.Collections.Generic.List), desta forma podemos trabalhar orientado a objetos ou da forma já comum utilizando DataTable. Neste exemplo abaixo criaremos uma classe de Pessoa, criaremos uma lista genérica do tipo Pessoa e faremos o bind com o DropDownList.&lt;br /&gt;&lt;br /&gt;Crie um novo site e adicione a classe Pessoa no diretório App_Code, conforme imagem abaixo:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_b8Po4UBWLzo/SBs_Xp6fpMI/AAAAAAAAAI0/RpiFrX-gt8A/s1600-h/Imagem+1+-+Estrutura+da+aplica%C3%A7%C3%A3o.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5195816270722737346" style="margin: 0px auto 10px; display: block; cursor: pointer; text-align: center;" alt="" src="http://3.bp.blogspot.com/_b8Po4UBWLzo/SBs_Xp6fpMI/AAAAAAAAAI0/RpiFrX-gt8A/s400/Imagem+1+-+Estrutura+da+aplica%C3%A7%C3%A3o.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Imagem 1 - Estrutura da aplicação&lt;br /&gt;&lt;br /&gt;Coloque duas propriedades na classe pessoa, uma do tipo inteiro Codigo e outra string Nome. Como estamos utilizando o ASP.NET 3.5 podemos fazer conforme código 1:&lt;br /&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Data;&lt;br /&gt;using System.Configuration;&lt;br /&gt;using System.Web;&lt;br /&gt;using System.Web.Security;&lt;br /&gt;using System.Web.UI;&lt;br /&gt;using System.Web.UI.HtmlControls;&lt;br /&gt;using System.Web.UI.WebControls;&lt;br /&gt;using System.Web.UI.WebControls.WebParts;&lt;br /&gt;&lt;br /&gt;public class Pessoa&lt;br /&gt;{&lt;br /&gt;public Pessoa(int codigo, string nome)&lt;br /&gt;{&lt;br /&gt;this.Codigo = codigo;&lt;br /&gt;this.Nome = nome;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public int Codigo { get; set; }&lt;br /&gt;public string Nome { get; set; }&lt;br /&gt;}&lt;br /&gt;Código 1 - Classe Pessoa(ASP.NET 3.5)&lt;br /&gt;&lt;br /&gt;Para quem utiliza o ASP.NET 2.0 deverá escrever conforme Código 2:&lt;br /&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Data;&lt;br /&gt;using System.Configuration;&lt;br /&gt;using System.Web;&lt;br /&gt;using System.Web.Security;&lt;br /&gt;using System.Web.UI;&lt;br /&gt;using System.Web.UI.HtmlControls;&lt;br /&gt;using System.Web.UI.WebControls;&lt;br /&gt;using System.Web.UI.WebControls.WebParts;&lt;br /&gt;&lt;br /&gt;public class Pessoa&lt;br /&gt;{&lt;br /&gt;private int codigo;&lt;br /&gt;private string nome;&lt;br /&gt;public Pessoa(int codigo, string nome)&lt;br /&gt;{&lt;br /&gt;this.Codigo = codigo;&lt;br /&gt;this.Nome = nome;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public int Codigo&lt;br /&gt;{&lt;br /&gt;get&lt;br /&gt;{&lt;br /&gt;return codigo;&lt;br /&gt;}&lt;br /&gt;set&lt;br /&gt;{&lt;br /&gt;codigo = value;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public string Nome&lt;br /&gt;{&lt;br /&gt;get&lt;br /&gt;{&lt;br /&gt;return nome;&lt;br /&gt;}&lt;br /&gt;set&lt;br /&gt;{&lt;br /&gt;nome = value;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;Código 2 - Classe Pessoa(ASP.NET 2.0)&lt;br /&gt;&lt;br /&gt;Na página, adicione um DropDownList no Default.aspx, altere seu nome para ddlPessoa, conforme Imagem 2 :&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_b8Po4UBWLzo/SBs_X56fpNI/AAAAAAAAAI8/JlJC__qlIBc/s1600-h/Imagem+2+-+Adicionando+o+DropDownList+ddlPessoa.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5195816275017704658" style="margin: 0px auto 10px; display: block; cursor: pointer; text-align: center;" alt="" src="http://4.bp.blogspot.com/_b8Po4UBWLzo/SBs_X56fpNI/AAAAAAAAAI8/JlJC__qlIBc/s400/Imagem+2+-+Adicionando+o+DropDownList+ddlPessoa.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Imagem 2 - Adicionando o DropDownList ddlPessoa&lt;br /&gt;&lt;br /&gt;Visualize o CodeBehind do Default.aspx(Default.aspx.cs) e no evento Page_Load adicione o código conforme código 3, este cria uma lista de pessoas, faz as configurações necessárias no ddlPessoa e chama o método DataBind para adicionar os valores ao DropDownList.&lt;br /&gt;&lt;/p&gt;&lt;p class="western" lang="pt-BR"&gt;As configurações necessárias no ddlPessoa é definir a fonte de dados que irá montar os itens, isto é feito definindo a propriedade DataSource, configuramos a lista de Pessoa. Também é necessário configurar as propriedades DataValueField e DataTextField, como cada item do nosso DataSource é uma instância de Pessoa, definimos nestes quais as propriedades de Pessoa, neste caso as propriedades Codigo e Nome.&lt;/p&gt;&lt;p class="western" lang="pt-BR"&gt;Outra inforamção importante é que estamos usando generics é necessário adicionar o using ao namespace System.Collections.Generic:&lt;br /&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Collections;&lt;br /&gt;using System.Configuration;&lt;br /&gt;using System.Data;&lt;br /&gt;using System.Web;&lt;br /&gt;using System.Web.Security;&lt;br /&gt;using System.Web.UI;&lt;br /&gt;using System.Web.UI.HtmlControls;&lt;br /&gt;using System.Web.UI.WebControls;&lt;br /&gt;using System.Web.UI.WebControls.WebParts;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;&lt;br /&gt;public partial class Default : System.Web.UI.Page&lt;br /&gt;{&lt;br /&gt;protected void Page_Load(object sender, EventArgs e)&lt;br /&gt;{&lt;br /&gt;List&amp;lt;Pessoa&amp;gt; listaPessoas = new List&amp;lt;Pessoa&amp;gt;();&lt;br /&gt;listaPessoas.Add(new Pessoa(0, "Mateus"));&lt;br /&gt;listaPessoas.Add(new Pessoa(1, "Maria"));&lt;br /&gt;listaPessoas.Add(new Pessoa(2, "Jose"));&lt;br /&gt;&lt;br /&gt;ddlPessoa.DataSource = listaPessoas;&lt;br /&gt;ddlPessoa.DataValueField = "Codigo";&lt;br /&gt;ddlPessoa.DataTextField = "Nome";&lt;br /&gt;ddlPessoa.DataBind();&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Código 3 - Código da página Default.aspx.cs&lt;br /&gt;&lt;br /&gt;Salve tudo e execute o site, visualize também o HTML gerado.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_b8Po4UBWLzo/SBs_yp6fpOI/AAAAAAAAAJE/GNbfSQjxJ0c/s1600-h/Imagem+3+-+Resultado.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5195816734579205346" style="margin: 0px auto 10px; display: block; cursor: pointer; text-align: center;" alt="" src="http://3.bp.blogspot.com/_b8Po4UBWLzo/SBs_yp6fpOI/AAAAAAAAAJE/GNbfSQjxJ0c/s400/Imagem+3+-+Resultado.jpg" border="0" /&gt;&lt;/a&gt;Imagem 3 - Resultado no navegador&lt;/p&gt;&lt;p class="western" lang="pt-BR"&gt;Referências:&lt;br /&gt;&lt;a href="http://digitalcolony.com/2008/01/bind-generic-list-to-aspnet.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms379564(VS.80).aspx&lt;br /&gt;http://digitalcolony.com/2008/01/bind-generic-list-to-aspnet.aspx&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6331859157625229771-3938678923437431060?l=aplicacoesweb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AplicaesWeb/~4/o1g8BofsOvY" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/3938678923437431060?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/3938678923437431060?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AplicaesWeb/~3/o1g8BofsOvY/bind-do-dropdownlist-com-uma-lista.html" title="Bind do DropDownList com uma lista genérica" /><author><name>Mateus Queiroz Correia</name><uri>https://profiles.google.com/103544107567690484780</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-D0HajHeutmA/AAAAAAAAAAI/AAAAAAAAAzs/PWg9nWVws10/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_b8Po4UBWLzo/SBs_Xp6fpMI/AAAAAAAAAI0/RpiFrX-gt8A/s72-c/Imagem+1+-+Estrutura+da+aplica%C3%A7%C3%A3o.jpg" height="72" width="72" /><feedburner:origLink>http://aplicacoesweb.blogspot.com/2008/05/bind-do-dropdownlist-com-uma-lista.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08EQ3o8cSp7ImA9WxZbGUw.&quot;"><id>tag:blogger.com,1999:blog-6331859157625229771.post-7300916884259610164</id><published>2008-04-22T21:47:00.001-03:00</published><updated>2008-04-22T21:50:02.479-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-04-22T21:50:02.479-03:00</app:edited><title>Page Class - A página do ASP.NET</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ZXyw0BkcqWoc2qkpCARfk1CiiRc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZXyw0BkcqWoc2qkpCARfk1CiiRc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ZXyw0BkcqWoc2qkpCARfk1CiiRc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZXyw0BkcqWoc2qkpCARfk1CiiRc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;h3&gt;&lt;span style="" lang="PT-BR"&gt;ASP.NET Modelo de codificação da página web&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;/h3&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;Uma página ASP.NET consiste em duas partes:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul style="margin-top: 0cm;" type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="" lang="PT-BR"&gt;Elementos visuais, que inclui      marcação específica(server controls ) e html(textos estáticos)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="" lang="PT-BR"&gt;Lógica de programação da página,      que contêm eventos e outros códigos&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;Existem dois modelos para gerenciar os elementos visuais e códigos, ambos funcionam da mesma maneira, mas diferenciam em sua utilização: Single File(Arquivo único) e Code Behind. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;&lt;span style="font-weight: bold;"&gt;Single File (Arquivo único)&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;Neste modelo tanto o visual quanto o código ficam num arquivo único. Isto facilita a manutenção para páginas simples e serviços como renomear arquivos.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;&lt;span style="font-weight: bold;"&gt;Code Behind(Arquivo de código separado)&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;Neste modelo a parte de código é separado da parte visual. Isto é bastante interessante, pois passamos a ter um controle separado da parte visual e código, facilitando o trabalho entre desenvolvedores e designers.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;h3&gt;Page Class&lt;/h3&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;As requisições aos recursos ASP.NET são repassados pelo IIS pelo executor de ASP.NET. Neste momento estou limitando a citar a requisição de páginas, do ASPX.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;Ao requisitar uma página, o executor do ASP.NET combina a página, elementos de servidor, como controles, para manipulação de eventos que escrevemos. Como não temos que compilar as páginas em assemblies, netes casos o ASP.NET compila a página na primeira requisição a página. Caso a página ou algum recurso que a página depende sofra alguma alteração a página é recompilada automaticamente.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;O ASP.NET pode compilar as páginas previamente para melhorar o desempenho da aplicação: &lt;a href="http://msdn2.microsoft.com/en-us/library/399f057w.aspx"&gt;http://msdn2.microsoft.com/en-us/library/399f057w.aspx&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;h3&gt;&lt;span style="" lang="PT-BR"&gt;Ciclo de vida da página&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h3&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;A página ASP.NET é executada num ciclo de vida que passa por várias etapas. Estas incluem inicialização, instanciar controles, recuperar e manter estado, executar manipuladores de eventos e renderizar. É importante dominar o ciclo de vida da página para utilizar os eventos apropriados quando necessário.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;table class="MsoNormalTable" style="border: 1pt solid windowtext; width: 100%;" border="1" cellpadding="0" width="100%"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt; background: rgb(230, 230, 230) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;   &lt;p style="text-align: center;" align="center"&gt;&lt;span class="label"&gt;&lt;b&gt;Estágio&lt;/b&gt;&lt;/span&gt;&lt;span class="sentence"&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt; background: rgb(230, 230, 230) none repeat scroll 0% 50%; width: 82.98%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" width="82%"&gt;   &lt;p style="text-align: center;" align="center"&gt;&lt;span id="xn12_cd60e167ca92ee3c755f608324a6a082"&gt;&lt;span class="label"&gt;&lt;b&gt;Descrição&lt;/b&gt;&lt;/span&gt;&lt;span class="sentence"&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt;"&gt;   &lt;p&gt;&lt;span id="xn13_8a7f6fbe44407ca05227518d86e42c64"&gt;&lt;span class="sentence"&gt;Solicitação   de página&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt; width: 82.98%;" width="82%"&gt;   &lt;p&gt;&lt;span id="xn14_8e8897633cbc2f9feec3caca9aa1769d"&gt;&lt;span class="sentence"&gt;&lt;span style="" lang="PT-BR"&gt;A solicitação de página ocorre   antes que o ciclo de vida da página comece.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="" lang="PT-BR"&gt; &lt;span class="sentence"&gt;&lt;span id="xn15_c60438daf35fb322a543ddf4970a3d8b"&gt;Quando a página é solicitada por   um usuário, ASP.NET determina se a página precisa ser analisada e compilada   (portanto, começando a vida de uma página) ou se uma versão em cache da   página pode ser enviada em resposta sem executar a página.&lt;/span&gt;&lt;/span&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt;"&gt;   &lt;p&gt;&lt;span id="xn16_ea2b2676c28c0db26d39331a336c6b92"&gt;&lt;span class="sentence"&gt;Iniciar&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt; width: 82.98%;" width="82%"&gt;   &lt;p&gt;&lt;span id="xn17_e554bf0d530dfbc8c649616f1f1f5031"&gt;&lt;span style="" lang="PT-BR"&gt;Na etapa inicial, as propriedades da página,   como Request e Response são definidas. Nesse estágio, a página também   determina se o Request é um Postback ou um novo Request e define a IsPostBack   Propriedade. Além disso, durante a etapa inicial, a propriedade UICulture da   página é definida.&lt;/span&gt;&lt;span style="" lang="PT-BR"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt;"&gt;   &lt;p&gt;&lt;span id="xn20_ee50a017825a9e5aaddc42dac4eafefc"&gt;&lt;span class="sentence"&gt;Inicialização   da página&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt; width: 82.98%;" width="82%"&gt;   &lt;p&gt;&lt;span id="xn21_8c31895585f3d054cdd02146026002ad"&gt;&lt;span style="" lang="PT-BR"&gt;Durante a inicialização de página, os   controles da página estão disponíveis e é definido a propriedade UniqueID de   cada controle. Os temas também são aplicados para a página. Se a solicitação   atual for um postback, os dados PostBack ainda não foram carregados e valores   da propriedade do controle não foram restaurados com os valores do ViewState.&lt;/span&gt;&lt;span style="" lang="PT-BR"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt;"&gt;   &lt;p&gt;&lt;span id="xn24_ec4d1eb36b22d19728e9d1d23ca84d1c"&gt;&lt;span class="sentence"&gt;Carga&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt; width: 82.98%;" width="82%"&gt;   &lt;p&gt;&lt;span id="xn25_c346068dad6e296f77fc15e7b867bf41"&gt;&lt;span class="sentencesentencechanged"&gt;&lt;span style="" lang="PT-BR"&gt;Durante   o carregamento, se a solicitação atual é um postback, as propriedades de   controle serão carregadas com informações recuperadas do ViewState e do   ControlState.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="" lang="PT-BR"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt;"&gt;   &lt;p&gt;&lt;span id="xn26_a617908b172c473cb8e8cda059e55bf0"&gt;&lt;span class="sentence"&gt;Validação&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt; width: 82.98%;" width="82%"&gt;   &lt;p&gt;&lt;span id="xn27_5e1b8ee23d21bc364ffd7c8351f133e5"&gt;&lt;span style="" lang="PT-BR"&gt;Durante a validação, o método Validate de   todos os controles de validação são chamados, este define a propriedade   IsValid de cada um dos controles validadores da página.&lt;/span&gt;&lt;span style="" lang="PT-BR"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt;"&gt;   &lt;p&gt;&lt;span id="xn28_ed9aee24ecfbdda77663e85a975e362d"&gt;&lt;span class="sentence"&gt;Tratamento   de evento PostBack&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt; width: 82.98%;" width="82%"&gt;   &lt;p&gt;&lt;span id="xn29_e070391e0d4a8d362be69338c13f3f91"&gt;&lt;span class="sentencesentencechanged"&gt;&lt;span style="" lang="PT-BR"&gt;Se   a solicitação for uma postback, quaisquer manipuladores de eventos são   chamados.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="" lang="PT-BR"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt;"&gt;   &lt;p&gt;&lt;span id="xn30_eeb86a8e46dd53f05e075ef216e03d9b"&gt;&lt;span class="sentencesentencechanged"&gt;Renderização&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt; width: 82.98%;" width="82%"&gt;   &lt;p&gt;&lt;span id="xn31_d52a07f01add1199d0f7f6febcd0f48e"&gt;&lt;span style="" lang="PT-BR"&gt;Antes da renderização, o viewstate é salvo   para a página e todos os controles. Durante a fase de renderização, a página   chamará o método Render para cada controle, fornecendo um escritor de texto   que grava a saída para o&lt;span style=""&gt;  &lt;/span&gt;Stream de   saída da propriedade Response da página.&lt;/span&gt;&lt;span style="" lang="PT-BR"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt;"&gt;   &lt;p&gt;&lt;span id="xn33_f972c1d6198baf47dd8fd9a05832db0f"&gt;&lt;span class="sentencesentencechanged"&gt;Descarregar&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0.75pt; width: 82.98%;" width="82%"&gt;   &lt;p&gt;&lt;span id="xn34_027f581a46cdd9c1cce645b1b5543edc"&gt;&lt;span style="" lang="PT-BR"&gt;O descarregar é chamado quando a página tiver sido   processada, enviada para o cliente e está pronta para ser descarregada. Neste   ponto, as propriedades da página, como Response e Request são descarregados e   toda limpeza será executada.&lt;/span&gt;&lt;span style="" lang="PT-BR"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;Referências:&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/pt-br/library/aa479007%28en-us%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/015103yb.aspx&lt;br /&gt;http://msdn2.microsoft.com/en-us/library/ms178138.aspx&lt;br /&gt;http://msdn2.microsoft.com/pt-br/library/ms178472.aspx&lt;br /&gt;http://msdn2.microsoft.com/pt-br/library/aa479007(en-us).aspx&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6331859157625229771-7300916884259610164?l=aplicacoesweb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AplicaesWeb/~4/aWGee45H10A" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/7300916884259610164?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6331859157625229771/posts/default/7300916884259610164?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AplicaesWeb/~3/aWGee45H10A/page-class-pgina-do-aspnet.html" title="Page Class - A página do ASP.NET" /><author><name>Mateus Queiroz Correia</name><uri>https://profiles.google.com/103544107567690484780</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-D0HajHeutmA/AAAAAAAAAAI/AAAAAAAAAzs/PWg9nWVws10/s512-c/photo.jpg" /></author><feedburner:origLink>http://aplicacoesweb.blogspot.com/2008/04/page-class-pgina-do-aspnet.html</feedburner:origLink></entry></feed>

