<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://linhadecodigo.com.br/CS2/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Next Step Place</title><link>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/default.aspx</link><description>Blog by Fernando Cerqueira</description><dc:language>pt-BR</dc:language><generator>CommunityServer 2.0 (Build: 60217.2664)</generator><item><title>Debugando pelo codigo fonte do .NET COM VS2008</title><link>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/2007/10/03/1031.aspx</link><pubDate>Wed, 03 Oct 2007 21:41:00 GMT</pubDate><guid isPermaLink="false">60018a49-732a-46c4-9207-13bc44cc8285:1031</guid><dc:creator>FCerqueira</dc:creator><slash:comments>0</slash:comments><comments>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/comments/1031.aspx</comments><wfw:commentRss>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/commentrss.aspx?PostID=1031</wfw:commentRss><description>&lt;FONT face=Verdana size=2&gt;&lt;STRONG&gt;Sim agora é possível , já podemos debugar e entender melhor o funcionamento do&amp;nbsp; Framework .NET!&lt;BR&gt;&lt;IMG src="http://www.scottgu.com/blogposts/source/step4.jpg"&gt; &lt;IMG src="http://www.scottgu.com/blogposts/source/step5.jpg"&gt;&lt;BR&gt;&lt;BR&gt;Veja na integra&amp;nbsp; mais detalhes pelo blog do grande&amp;nbsp; &lt;/STRONG&gt;&lt;/FONT&gt;&lt;A href="http://weblogs.asp.net/scottgu"&gt;&lt;FONT face=Verdana size=2&gt;&lt;STRONG&gt;ScottGu&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;img src="http://linhadecodigo.com.br/CS2/aggbug.aspx?PostID=1031" width="1" height="1"&gt;</description></item><item><title>Sys is undefined :  “Ajax  X Hora do Sistema”.  AJAX ou .NET Framework ?</title><link>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/2007/09/23/996.aspx</link><pubDate>Sun, 23 Sep 2007 17:52:00 GMT</pubDate><guid isPermaLink="false">60018a49-732a-46c4-9207-13bc44cc8285:996</guid><dc:creator>FCerqueira</dc:creator><slash:comments>1</slash:comments><comments>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/comments/996.aspx</comments><wfw:commentRss>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/commentrss.aspx?PostID=996</wfw:commentRss><description>&lt;P class=MsoNormal&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&lt;FONT size=4&gt;&lt;STRONG&gt;Introdução: &lt;BR&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/SPAN&gt;Já faz um bom tempo que não posto nada e aqui uma explicação: Transferi-me para São Paulo e ate ajustar tudo esta sendo bem mais demorado do que previa...&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;Costumo sempre dar uma pesquisa pela web sobre AJAX para ver como a comunidade vem absorvendo esta funcionalidade que hoje é indispensável para qualquer aplicativo web. &lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;Um post&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;em &lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;um blog me chamou atenção hoje. &lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Não pelo seu conteúdo, mas pela dúvida gerada dentro de um cenário que dificilmente acontece. &lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Como lá só tinha o problema que apontava para o AJAX , sem a causa e explicação dos motivos resolvi escrever este pequeno post para compartilhar com a comunidade alguns fundamentos e conhecimento sobre este cenário . Afinal não adianta nada trazer problemas sem soluções e a devida pesquisa , isso pode leva a outra conclusão.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;Qual é o cenário que estamos&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;falando : &lt;/STRONG&gt;&lt;BR&gt;&lt;BR&gt;Você esta criando um aplicativo web&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;habilitado para usar Ajax. A aplicação criada esta correta, o arquivo de configuração esta perfeito e o servidor também este corretamente configurado com os assemblys do AJAX devidamente registrado no GAC. &lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Ao executar o aplicativo aparece a mensagem de &lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;“Sys is undefined”. &lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Verificando a Data do servidor você percebe que a Data esta errada (com alguns anos para trás...). A solução imediata é simples : É só corrigir a Data, porem o que chamou atenção foi justamente a dúvida deixada :&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;EM&gt;“Mas por que diabos recusar uma data desatualizada, só porque ele não existia na época? Tudo bem que sabe-se lá porque alguém precisaria disso, mas e se eu precisar do meu servidor com a data em 2002 ?”&lt;o:p&gt;&lt;/o:p&gt;&lt;/EM&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;A dúvida é mais que justificada! &lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;porem não existe nenhuma relação com a existência ou não do produto na época.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;&lt;EM&gt;A idéia deste post é entender melhor o que esta acontecendo, como funciona o AJAX ASP. NET e alguns outros detalhes do Framework .NET . Ao final descobrir as respostas e dar um “workarround” para este cenário caso seja necessário. &lt;o:p&gt;&lt;/o:p&gt;&lt;/EM&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana size=2&gt;Para se chegar à explicação iremos precisar usar uma ferramenta(que inclusive já citei neste blog) como fundamentais para qualquer desenvolvedor: &lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;A HREF="/cs2/blogs/fcerqueira/archive/2007/02/22/588.aspx"&gt;&lt;FONT face=Verdana size=2&gt;http://linhadecodigo.com.br/cs2/blogs/fcerqueira/archive/2007/02/22/588.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;“Refletor (Embora muitos achem que a intenção é descompilar e ver o código fonte, estas ferramentas tem uma tarefa mais nobre :&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;Facilitar o entendimento do .NET framework,&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;SPAN&gt;&lt;BR&gt;&lt;SPAN&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;Ajudar a melhorar a performance e reduzir os cast, Uma grande fonte de aprendizado”&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana size=4&gt;&lt;STRONG&gt;A mensagem de Erro para o usuário : &lt;/STRONG&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;“Microsoft JScript runtime error: 'Sys.WebForms.PageRequestManager' is null or not an object”&lt;BR&gt;&lt;BR&gt;Esta mensagem normalmente &lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;ocorre quando não temos instalado (diga-se registradas) as dlls do AJAX. Mas esta mensagem (neste nosso caso) é uma conseqüência e não origem do erro uma vez que tudo esta registrado&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;de forma correta.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;Entendendo melhor: &lt;BR&gt;&lt;/STRONG&gt;&lt;BR&gt;O AJAX é formado por um conjunto de bibliotecas que estão no lado do servidor e no lado do cliente.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;Quando tornamos nossos aplicativos habilitados para Ajax as requisições são interceptadas pela biblioteca que esta no servidor que executa o devido tratamento, inclusive incluído na página que retorna para o cliente os script necessários &lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(Veja o exemplo abaixo) :&lt;BR&gt;&lt;BR&gt;&lt;FONT color=#0000ff&gt;...&lt;BR&gt;&amp;lt;script src="/AJAXEnabledWebSite1/ScriptResource.axd?d=GVl2-bmV...&amp;amp;amp;t=633022221745931040" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;O &lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;ScriptResource.axd&lt;/STRONG&gt;&lt;SPAN&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt; &lt;/SPAN&gt;é um recurso introduzido no Framework 2.0 que permite &lt;U&gt;trabalhar com os resouces&lt;/U&gt; anexados no Assembly . Sua estrutura &lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;é desta forma :&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;FONT color=#0000ff&gt;WebResource.axd?d=recurso &amp;amp; t =Tempo. &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;"d" significa o recurso da Web solicitada que vem encripitado e o "t" é a data/hora para o assembly solicitado. O parâmetro “t” ajuda a identificar se houve alterações feitas o recurso.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana size=2&gt;Para quem desejar saber um pouco mais, abaixo um artigo no MSDN que trata deste assunto :&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;A href="http://support.microsoft.com/kb/910442/pt-br"&gt;&lt;FONT face=Verdana size=2&gt;http://support.microsoft.com/kb/910442/pt-br&lt;/FONT&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=4&gt;&lt;STRONG&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Verdana size=4&gt;&lt;STRONG&gt;A mensagem de Erro de origem: &lt;/STRONG&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;SPAN&gt;&lt;BR&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;Agora conhecendo melhor esta premissa de como os script são gerados e enviados, podemos partir para a origem do problema, testando a execução dos script &lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;que retorna a mensagem real de origem abaixo :&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff&gt;&lt;SPAN&gt;Specified argument was out of the range of valid values.&lt;BR&gt;Parameter name: utcDate&lt;/SPAN&gt;&lt;SPAN&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;...&lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Verdana color=#0000ff size=2&gt;Exception Details: System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.&lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Verdana&gt;&lt;FONT color=#0000ff size=2&gt;Parameter name: utcDate&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT color=#0000ff&gt;&lt;SPAN&gt;...&lt;BR&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;Stack Trace:&lt;/SPAN&gt;&lt;SPAN&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;TABLE class=MsoNormalTable cellPadding=0&gt;

&lt;TR&gt;
&lt;TD&gt;
&lt;P class=MsoNormal&gt;&lt;FONT color=#0000ff&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;[ArgumentOutOfRangeException: Specified argument was out of the range of valid values.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;FONT color=#0000ff&gt;Parameter name: utcDate]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;FONT color=#0000ff&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;System.Web.HttpCachePolicy.UtcSetLastModified(DateTime utcDate) +3299747&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;FONT color=#0000ff&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;System.Web.HttpCachePolicy.SetLastModified(DateTime date) +47&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT color=#0000ff&gt;&lt;SPAN&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;mpletedSynchronously) +64&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;FONT face=Verdana&gt;&lt;FONT color=#0000ff size=2&gt;...&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;Ok, até aqui quase nenhuma novidade. Apenas identificamos a origem do erro, mas ainda restam duas perguntas: Porque deu este erro?&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;Como posso contornar o problema mantendo a data do servidor (mesmo que desatualizada)?&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;Vamos então continuar para termos &lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;as respostas &lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;J&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;SPAN&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=4&gt;&lt;SPAN&gt;&lt;STRONG&gt;Porque deu este erro ?&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana size=2&gt;Para responder vamos usaremos dois recursos: O &lt;STRONG&gt;&lt;U&gt;Refletor&lt;/U&gt;&lt;/STRONG&gt; (para ver a lógica e codigo que o framework utiliza) &lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;e o código &lt;STRONG&gt;&lt;U&gt;fonte&lt;/U&gt;&lt;/STRONG&gt; do AJAX.NET . &lt;BR&gt;&lt;BR&gt;Para quem não sabe o código fonte do AJAX.NET&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;esta disponível para estudo e para debug em :&lt;BR&gt;&lt;/FONT&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=ef2c1acc-051a-4fe6-ad72-f3bed8623b43&amp;amp;DisplayLang=en"&gt;&lt;FONT face=Verdana size=2&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=ef2c1acc-051a-4fe6-ad72-f3bed8623b43&amp;amp;DisplayLang=en&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;&lt;FONT face=Verdana size=2&gt;O erro apresentado é no método&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG&gt;UtcSetLastModified&lt;/STRONG&gt; da classe&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG&gt;System.Web.HttpCachePolicy&lt;/STRONG&gt;. &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN&gt;&lt;FONT face=Verdana size=2&gt;Usando o Refletor temos os seguintes códigos abaixo:&lt;BR&gt;
&lt;BR&gt;
&lt;SPAN&gt;public&lt;/SPAN&gt; &lt;/FONT&gt;&lt;A title=System.Void href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.0.0:b77a5c561934e089/System.Void"&gt;&lt;FONT face=Verdana size=2&gt;void&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt; &lt;/FONT&gt;&lt;A href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://System.Web:2.0.0.0:b03f5f7f11d50a3a/System.Web.HttpCachePolicy/SetLastModified(System.DateTime)"&gt;&lt;SPAN&gt;&lt;FONT face=Verdana size=2&gt;SetLastModified&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt;(&lt;/FONT&gt;&lt;A title=System.DateTime href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.0.0:b77a5c561934e089/System.DateTime"&gt;&lt;FONT face=Verdana size=2&gt;DateTime&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt; date)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;A title=System.DateTime href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.0.0:b77a5c561934e089/System.DateTime"&gt;&lt;SPAN&gt;DateTime&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN&gt; &lt;SPAN&gt;utcDate&lt;/SPAN&gt;&lt;SPAN&gt; = &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;A title=System.Web.Util.DateTimeUtil href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://System.Web:2.0.0.0:b03f5f7f11d50a3a/System.Web.Util.DateTimeUtil"&gt;&lt;SPAN&gt;DateTimeUtil&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;&lt;A title="DateTime System.Web.Util.DateTimeUtil.ConvertToUniversalTime(DateTime localTime);" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://System.Web:2.0.0.0:b03f5f7f11d50a3a/System.Web.Util.DateTimeUtil/ConvertToUniversalTime(System.DateTime):System.DateTime"&gt;&lt;SPAN&gt;ConvertToUniversalTime&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN&gt;(date);&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&lt;SPAN&gt;    &lt;/SPAN&gt;&lt;SPAN&gt;this&lt;/SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;&lt;A title="void System.Web.HttpCachePolicy.UtcSetLastModified(DateTime utcDate);" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://System.Web:2.0.0.0:b03f5f7f11d50a3a/System.Web.HttpCachePolicy/UtcSetLastModified(System.DateTime)"&gt;UtcSetLastModified&lt;/A&gt;(utcDate);&lt;BR&gt;}&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/PRE&gt;
&lt;TABLE class=MsoNormalTable cellSpacing=0 cellPadding=0&gt;

&lt;TR&gt;
&lt;TD&gt;&lt;PRE&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&lt;SPAN&gt;private&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;&lt;A title=System.Void href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.0.0:b77a5c561934e089/System.Void"&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;&lt;A href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://System.Web:2.0.0.0:b03f5f7f11d50a3a/System.Web.HttpCachePolicy/UtcSetLastModified(System.DateTime)"&gt;&lt;SPAN&gt;UtcSetLastModified&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;&lt;A title=System.DateTime href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.0.0:b77a5c561934e089/System.DateTime"&gt;&lt;SPAN&gt;DateTime&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN&gt; utcDate)&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;SPAN&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;{&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;SPAN&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;utcDate = &lt;SPAN&gt;new&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;&lt;A title=System.DateTime.DateTime(long); href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.0.0:b77a5c561934e089/System.DateTime/.ctor(Int64)"&gt;&lt;SPAN&gt;DateTime&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN&gt;(utcDate.&lt;/SPAN&gt;&lt;SPAN&gt;&lt;A title="long System.DateTime.Ticks { ... }" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.0.0:b77a5c561934e089/System.DateTime/property:Ticks:Int64"&gt;&lt;SPAN&gt;Ticks&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN&gt; - (utcDate.&lt;/SPAN&gt;&lt;SPAN&gt;&lt;A title="long System.DateTime.Ticks { ... }" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.0.0:b77a5c561934e089/System.DateTime/property:Ticks:Int64"&gt;&lt;SPAN&gt;Ticks&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN&gt; % &lt;SPAN&gt;0x989680L&lt;/SPAN&gt;));&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&lt;PRE&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;FONT color=#ff0000&gt;&lt;U&gt;&lt;STRONG&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if (utcDate &amp;gt; &lt;/SPAN&gt;&lt;SPAN&gt;&lt;A title=System.DateTime href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.0.0:b77a5c561934e089/System.DateTime"&gt;&lt;SPAN&gt;DateTime&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;&lt;A title="DateTime System.DateTime.UtcNow { ... }" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.0.0:b77a5c561934e089/System.DateTime/property:UtcNow:System.DateTime"&gt;&lt;SPAN&gt;UtcNow&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/U&gt;&lt;/FONT&gt;&lt;SPAN&gt;&lt;FONT color=#ff0000&gt;&lt;U&gt;&lt;STRONG&gt;)&lt;BR&gt;&lt;/STRONG&gt;&lt;/U&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;SPAN&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;FONT color=#ff0000&gt;&lt;U&gt;&lt;STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;BR&gt;&lt;/STRONG&gt;&lt;/U&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;FONT color=#ff0000&gt;&lt;U&gt;&lt;STRONG&gt;&lt;SPAN&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;throw new &lt;/SPAN&gt;&lt;SPAN&gt;&lt;A title=System.ArgumentOutOfRangeException.ArgumentOutOfRangeException(string); href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.0.0:b77a5c561934e089/System.ArgumentOutOfRangeException/.ctor(String)"&gt;&lt;SPAN&gt;ArgumentOutOfRangeException&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/U&gt;&lt;/FONT&gt;&lt;SPAN&gt;&lt;FONT color=#ff0000&gt;&lt;U&gt;&lt;STRONG&gt;("utcDate");&lt;BR&gt;&lt;/STRONG&gt;&lt;/U&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;SPAN&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;FONT color=#ff0000&gt;&lt;U&gt;&lt;STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/STRONG&gt;&lt;/U&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;BR&gt;&lt;STRONG&gt;    &lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&lt;SPAN&gt;if&lt;/SPAN&gt; (!&lt;SPAN&gt;this&lt;/SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;&lt;A title="bool System.Web.HttpCachePolicy._isLastModifiedSet;" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://System.Web:2.0.0.0:b03f5f7f11d50a3a/System.Web.HttpCachePolicy/_isLastModifiedSet:Boolean"&gt;&lt;SPAN&gt;_isLastModifiedSet&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN&gt; || (utcDate &amp;gt; &lt;SPAN&gt;this&lt;/SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;&lt;A title="DateTime System.Web.HttpCachePolicy._utcLastModified;" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://System.Web:2.0.0.0:b03f5f7f11d50a3a/System.Web.HttpCachePolicy/_utcLastModified:System.DateTime"&gt;_utcLastModified&lt;/A&gt;))&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;SPAN&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;this&lt;/SPAN&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;A title="void System.Web.HttpCachePolicy.Dirtied();" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://System.Web:2.0.0.0:b03f5f7f11d50a3a/System.Web.HttpCachePolicy/Dirtied()"&gt;&lt;FONT face=Verdana size=2&gt;Dirtied&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;();&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;this&lt;/SPAN&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;A title="DateTime System.Web.HttpCachePolicy._utcLastModified;" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://System.Web:2.0.0.0:b03f5f7f11d50a3a/System.Web.HttpCachePolicy/_utcLastModified:System.DateTime"&gt;&lt;FONT face=Verdana size=2&gt;_utcLastModified&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt; = utcDate;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;this&lt;/SPAN&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;A title="bool System.Web.HttpCachePolicy._isLastModifiedSet;" href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://System.Web:2.0.0.0:b03f5f7f11d50a3a/System.Web.HttpCachePolicy/_isLastModifiedSet:Boolean"&gt;&lt;FONT face=Verdana size=2&gt;_isLastModifiedSet&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt; = &lt;SPAN&gt;true&lt;/SPAN&gt;;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;}&lt;BR&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana size=2&gt;O Texto em &lt;STRONG&gt;&lt;FONT color=#ff0000&gt;vermelho grifado&lt;/FONT&gt;&lt;/STRONG&gt; é o trecho de código responsável pela mensagem de erro&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;, ou seja: &lt;STRONG&gt;&lt;EM&gt;caso a data passada seja maior que a data corrente ocorre uma exception. &lt;/EM&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT size=4&gt;&lt;STRONG&gt;&lt;SPAN&gt;Mas que Data é essa que é passada como parâmetro? &lt;/SPAN&gt;&lt;BR&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR&gt;Agora precisamos usar o segundo recurso de analise: O Código fonte do AJAX ASP.NET. &lt;BR&gt;&lt;BR&gt;Como estamos tratando uma requisição de resource já explicada, se buscarmos pelo titulo dos arquivos iremos encontrar um arquivo de nome: &lt;SPAN&gt;&lt;STRONG&gt;ScriptResourceHandler.cs&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;e dentro dele temos o método abaixo :&lt;BR&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;FONT color=#0000ff&gt;private static DateTime GetLastWriteTime(Assembly assembly) &lt;BR&gt;{&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;string codeBase = GetCodeBaseWithAssert(assembly);&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Uri codeBaseUri = new Uri(codeBase);&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;if (!codeBaseUri.IsFile) return DateTime.MinValue;&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&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;&lt;/SPAN&gt;string localPath = codeBaseUri.LocalPath;&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;FileIOPermission p = new FileIOPermission(FileIOPermissionAccess.Read, localPath);&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;p.Assert();&lt;BR&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;return File.GetLastWriteTime(localPath);&lt;BR&gt;}&lt;/FONT&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;Analisando o código o leitor poderá perceber que &lt;U&gt;o parâmetro passado é a data do assembly que possui o resouce a ser incluído&lt;/U&gt;.&lt;BR&gt;&lt;BR&gt;&lt;FONT size=4&gt;&lt;STRONG&gt;&lt;SPAN&gt;Explicando o motivo de erro apresentado:&lt;/SPAN&gt;&lt;BR&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;EM&gt;De um lado temos um assembly que foi gerado com uma determinada Data, e de outro lado temos a Data corrente do servidor . &lt;BR&gt;&lt;BR&gt;Como a Data do assembly é superior a data Corrente do servidor temos uma inconsistência que é verificada pelo Framework! Ou seja, &lt;U&gt;o erro gerado não é do AJAX e sim do próprio &lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;.NET framework &lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;que executa a verificação&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;de data&lt;/U&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/EM&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana size=4&gt;&lt;STRONG&gt;Respondendo a segunda pergunta: &lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Caso seja necessário ter um servidor com data desatualizada e ainda assim executar assemblys que foram gerados com data superior a data corrente ?&lt;BR&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR&gt;&lt;FONT face=Verdana size=2&gt;Como se trata de um cenário extremante atípico precisamos &lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;fazer um &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;“workarround”&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;(contornar o problema) . A forma mais simples é modificar a data do assembly e para isso podemos usar váriso aplicativos para este fim, um deles&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;é o File Touch utility&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;A href="http://www.jddesign.f2s.com/touchpro.htm"&gt;&lt;FONT face=Verdana size=2&gt;http://www.jddesign.f2s.com/touchpro.htm&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=4&gt;&lt;STRONG&gt;Conclusão :&lt;o:p&gt;&lt;/o:p&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN&gt;&lt;FONT face=Verdana size=2&gt;Objetivo deste artigo/post foi apenas detalhar algumas funcionalidades que muitas das vezes passa despercebida pela maioria dos desenvolvedores e reforçar alguns conceitos sobre o desenvolvimento na web. &lt;BR&gt;&lt;BR&gt;Um dos pontos que sempre reforço nos trabalhos de mentoring&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;que exerço é a necessidade de se conhecer bem os fundamentos&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;da web e das tecnologias &lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;envolvidas para podemos ter uma compreensão melhor dos cenários e problemas que sempre irão surgir e com isso podemos fazer uma analise mais clara das origens dos problemas evitando-se com isso se chegar a conclusões que podem ser equivocadas.&amp;nbsp; Claro que este cenário apresentado não é trivial e requer uma analise em maior profundidade para se tirara algumas conclusões. &lt;BR&gt;&lt;BR&gt;Espero ter dado uma pequena parcela de ajuda para que os desenvolvedores se interessem em compreender melhor os fundamentos e não apenas os resultados.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;img src="http://linhadecodigo.com.br/CS2/aggbug.aspx?PostID=996" width="1" height="1"&gt;</description><category domain="http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/category/1001.aspx">ASP.NET</category><category domain="http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/category/1002.aspx">ATLAS / AJAX</category></item><item><title>Testando WebParts com o ASP.NET AJAX 1.0</title><link>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/2007/03/28/659.aspx</link><pubDate>Wed, 28 Mar 2007 15:20:00 GMT</pubDate><guid isPermaLink="false">60018a49-732a-46c4-9207-13bc44cc8285:659</guid><dc:creator>FCerqueira</dc:creator><slash:comments>0</slash:comments><comments>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/comments/659.aspx</comments><wfw:commentRss>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/commentrss.aspx?PostID=659</wfw:commentRss><description>Ontem fiquei fazendo alguns testes com webparts e Ajax e resolvi criar este resumo e compartilhar com vocês : 
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Posso usar webparts com ajax ?&lt;BR&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR&gt;Minha resposta &lt;STRONG&gt;SIM&lt;/STRONG&gt;.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Para usar webparts com ajax&amp;nbsp; não preciso fazer nada ?&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;BR&gt;Minha resposta e &lt;STRONG&gt;não&lt;/STRONG&gt;, &lt;STRONG&gt;você precisa fazer sim&lt;/STRONG&gt;! Infelizmente nem todas as funcionalidades de webparts&amp;nbsp; foram implementadas , tanto é que ela não faz parte da versão RTM e sim da versão “Future” . Veja as limitações (sem fazer nada) em &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://forums.asp.net/thread/1545256.aspx" target=_blank&gt;&lt;FONT face=Verdana size=2&gt;http://forums.asp.net/thread/1545256.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp; &lt;BR&gt;ou em &lt;BR&gt;&lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/mharder/archive/2007/01/23/webparts-and-asp-net-ajax-1-0.aspx" target=_blank&gt;&lt;FONT face=Verdana size=2&gt;http://blogs.msdn.com/mharder/archive/2007/01/23/webparts-and-asp-net-ajax-1-0.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT face=Verdana size=2&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Então só posso Ajax com a versão “FUTURE” ?&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;BR&gt;Minha resposta e &lt;STRONG&gt;não&lt;/STRONG&gt;, &lt;STRONG&gt;&lt;U&gt;PODE IR ALEM&lt;/U&gt;, VOCE PODE USAR WEBPARTS COM A VERSÃO ASP.NET AJAX&amp;nbsp; 1.0!!!!!!!!!!!!!!!!!.&lt;/STRONG&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#ff0000 size=2&gt;&lt;STRONG&gt;E posso usar Ajax com Webparts em produção?&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Minha resposta e &lt;STRONG&gt;não&lt;/STRONG&gt;, mas por quê?&amp;nbsp; Por que embora as funcionalidades de Drag and Drop passem a funcionar com as soluções que demonstro mais abaixo, ainda precisa ser amadurecida e melhorada, inclusive se pensando em cross-browser.&amp;nbsp; &lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;O Objetivo aqui&amp;nbsp; é compartilhar o conhecimento e mostrar que é possível fazer funcionar webparts com Ajax &lt;/STRONG&gt;, quem acompanhou a evolução lembra que durante os ctps&amp;nbsp; a compatibilidade entres os browses veio depois , como em qualquer amadurecimento de código.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Mas como é possível? Já li que isso é mito uma lenda não é fato....&lt;BR&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR&gt;Minha resposta é que leia ate o final e depois tire a conclusão do que é lenda e que &lt;STRONG&gt;fato e pode ser feito&lt;/STRONG&gt;, e conclua você mesmo, afinal não estou aqui para ficar demostrando o que não funciona e sim para &lt;STRONG&gt;compartilhar conhecimento&amp;nbsp; e aprender junto com a comunidade , ou seja com vocês.&lt;BR&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;FONT face=Verdana size=2&gt;
&lt;P&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Mas esta solução é sua? &lt;BR&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR&gt;Não. Estava trabalhando em uma solução para este cenário, porem meu trabalho foi abreviado por &lt;U&gt;encontrar uma solução bem mais adiantada e seguindo o mesmo raciocínio que&amp;nbsp; o meu.&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT face=Verdana color=#ff0000 size=2&gt;&lt;STRONG&gt;Mas afinal qual é a Mágica? &lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Bem antes de mostrar como é a mágica, &lt;STRONG&gt;vamos entender o que não funciona&lt;/STRONG&gt;:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Uma das principais funcionalidades de usar webparts é você poder mover as webparts entre as webzones. Uma das coisas desagradáveis era que quando fazia isso para cada webparts que você movia era executado um postback e página era toda carregada. &lt;BR&gt;&lt;BR&gt;Com a chegada do AJAX&amp;nbsp; isso pareceu ter sido resolvido de uma forma&amp;nbsp; muito elegante não ocorrendo mais o postback, tornando a usabilidade bastante atraente. Infelizmente&amp;nbsp; esta funcionalidade com o Ajax foi retirada nas versões betas e também&amp;nbsp; na versão RTM 1.0, sendo deixada para ser implementada em versões futuras. &lt;/FONT&gt;&lt;FONT face=Verdana size=2&gt;&lt;STRONG&gt;Quando colocamos as webparts e o wepartmananger dentro do updatepanel o drag and drop&amp;nbsp; não funciona corretamente.&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;BR&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face=Verdana size=2&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Mas porque não funciona?&amp;nbsp; &lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;É aqui que começa a mágica&lt;/STRONG&gt;.&amp;nbsp; Se observar o comportamento quando esta dentro do updatepanel ira perceber que funciona na primeira vez e depois quando é feito o “Partial render” pelo scriptmananger não é possível mais executar o drag and drop.&amp;nbsp; Este efeito indesejado esta centrado em um único componente:&amp;nbsp; &lt;BR&gt;&lt;BR&gt;O &lt;STRONG&gt;webpartmananger&lt;/STRONG&gt;. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;O &lt;U&gt;webpartmananger&amp;nbsp; que é responsável por gerar e registrar os scripts com as funcionalidades&lt;/U&gt;. Este script é que são os responsáveis pela funcionalidade Drag and drop, os Verbos dos menus e outras funcionalidades das webparzones.&lt;BR&gt;&lt;BR&gt;Desta forma então &lt;STRONG&gt;será o webpartmananger que teremos que modificar para que o webparts funcione corretamente&lt;/STRONG&gt;. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;Mas porque precisamos modificar ele (webpartmananger) ?&amp;nbsp;&lt;/STRONG&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;Porque quando colocamos ele dentro do updatepanel durante o primeiro render ele carrega os script&amp;nbsp; e executa as funcionalidades, mas depois do primeiro “Partial render” o Webpartmananger não consegue mas registrar os scripts e “se perde” criando exatamente&amp;nbsp; o comportamento&amp;nbsp; já descrito de apenas executar somente 1 vez, isso se explica porque &lt;U&gt;o responsável por isso é o scriptmananger quando trabalhamos com&amp;nbsp;&amp;nbsp;AJAX&lt;/U&gt;. &lt;/FONT&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;&lt;STRONG&gt;Simples não é..... São estes conceitos que ajudam a você a resolver cenários onde existe&amp;nbsp; pouca documentação e recursos existentes.&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Vocês já leram&amp;nbsp; também pelo meu blog que os validators também&amp;nbsp; tem problemas quando usando dentro do updatepanel (principalmente dentro de templates de grids que estão dentro dos updatepanels) . &lt;U&gt;A solução para os validtors foi mapear as classes responsáveis pelos controles para outra classe que resolver o problema&lt;/U&gt;. &lt;BR&gt;&lt;BR&gt;&lt;U&gt;A solução para webparts é feita da mesma forma!&lt;/U&gt; Justamente por este caminho que estava trabalhando quando me deparei com outra solução feita por outro desenvolvedor segundo exatamente esta linha!&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Mas o que deve ser&amp;nbsp;feito?&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Primeiro criar &amp;nbsp;uma classe que &lt;STRONG&gt;herde do WebpartMananger&lt;/STRONG&gt; e sobre-escrever&amp;nbsp;o RenderClientScript (para se ter o controle do se se escreve na pagina). Com isso &lt;U&gt;registramos os scripts pelo System.Web.UI.ScriptManager e não mais pelo System.Web.UI.ClientScriptManager&lt;/U&gt;.&amp;nbsp; &lt;BR&gt;&lt;BR&gt;&lt;FONT color=#000080&gt;&lt;STRONG&gt;Esta simples mudança faz com que os script registrados sejam executados a cada refresh do updatepanel&amp;nbsp; que&amp;nbsp; é controlado pelo scriptmananger.&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Estava bem próximo disso quando encontrei esta solução que estou descrevendo.&amp;nbsp; &lt;BR&gt;&lt;BR&gt;Para completar a solução será necessário &lt;STRONG&gt;mapear as&amp;nbsp; classes do System.Web.UI.WebControls.WebParts.WebPartManager&amp;nbsp; para a classe que esta sendo criada da mesma forma que foi feita a solução para os validators&lt;/STRONG&gt;.&lt;BR&gt;&lt;BR&gt;&amp;lt;&lt;FONT color=#008000&gt;configuration&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;system.web&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;pages&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tagMapping&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tagType="System.Web.UI.WebControls.WebParts.WebPartManager" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mappedTagType="Sample.Web.UI.WebParts.WebPartManager, Sample.Web.UI.WebParts"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tagMapping&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/pages&amp;gt;&lt;BR&gt;&amp;lt;/system.web&amp;gt;&lt;BR&gt;&amp;lt;/configuration&amp;gt;&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;E o código ?&amp;nbsp; &lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Verdana color=#ff0000 size=2&gt;&lt;STRONG&gt;Vamos a explicação de algumas partes dele :&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Como já falamos a classe herda de System.Web.UI.WebControls.WebParts.WebPartManager e o trecho abaixo mostra como esta sendo registrado o script necessário junto ao ScriptManager e depois durante a statup para garatir o resfresh do updatepanel.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#800080 size=2&gt;&lt;STRONG&gt;Public Class WebPartManager&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Inherits System.Web.UI.WebControls.WebParts.WebPartManager&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#000080&gt;Protected Overrides Sub RegisterClientScript()&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Me.CheckRenderClientScript Then&lt;BR&gt;&lt;BR&gt;&lt;FONT color=#ff0000&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;System.Web.UI.ScriptManager.RegisterClientScriptResource(Me,&lt;BR&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;GetType(System.Web.UI.WebControls.WebParts.WebPartManager),&lt;BR&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;"WebParts.js")&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Web.UI.ScriptManager.RegisterStartupScript(Me,&lt;BR&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;Me.GetType, Me.ID &amp;amp; "_Script", Me.Script, True)&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR&gt;&lt;FONT color=#000080&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Abaixo parte de o script&amp;nbsp; necessário ser executado durante o startup.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;&lt;FONT color=#800080&gt;&amp;nbsp;&amp;nbsp; Private ReadOnly Property Script() As String&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Get&lt;BR&gt;&amp;nbsp;&lt;FONT color=#000080&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim colorConverter As New System.Web.UI.WebControls.WebColorConverter&lt;BR&gt;Dim _clientScript As String = String.Format("__wpm = new&lt;BR&gt;&amp;nbsp;WebPartManager();{0}" &amp;amp; _&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "__wpm.overlayContainerElement =&lt;BR&gt;&amp;nbsp;document.getElementById('{2}___Drag');{0}" &amp;amp; _&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "__wpm.personalizationScopeShared = {1};{0}" &amp;amp; _&lt;BR&gt;"var zoneElement;{0}var zoneObject;{0}", &lt;BR&gt;ControlChars.CrLf, Me.Personalization.CanEnterSharedScope.ToString.ToLower, Me.ClientID)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each z As WebPartZone In Me.Zones……&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return _clientScript&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Get&lt;BR&gt;&amp;nbsp;&amp;nbsp;&lt;FONT color=#800080&gt;&amp;nbsp; End Property&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&lt;STRONG&gt;Você deve estar se perguntando como é possível saber que código escrever&amp;nbsp; para se chegar a este resultado ...&lt;/STRONG&gt; Aqui Tb &lt;STRONG&gt;não existe nenhuma lenda nem nenhum “super guru” ..rs.rs,&lt;/STRONG&gt; quem acompanha meu blog em&amp;nbsp; &lt;/FONT&gt;&lt;A HREF="/cs2/blogs/fcerqueira" target=_blank&gt;&lt;FONT face=Verdana size=2&gt;http://linhadecodigo.com.br/cs2/blogs/fcerqueira&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt; deve se lembra de uma dica que dei da nova versão do : &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;“Refletor 5.0 - Uma ferramenta indispensável” (&lt;/FONT&gt;&lt;A HREF="/cs2/blogs/fcerqueira/comments/588.aspx" target=_blank&gt;&lt;FONT face=Verdana size=2&gt;http://linhadecodigo.com.br/cs2/blogs/fcerqueira/comments/588.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt;)&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;No blog disse &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&lt;EM&gt;“Embora muitos achem que a intenção é descompilar e ver o código fonte, estas ferramentas tem uma tarefa mais nobre :&amp;nbsp; Faciliar o entendimento do .NET framework.&amp;nbsp; Ajudar a melhorar a performance e reduzir os cast Uma grande fonte de aprendizado”&amp;nbsp; &lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;&lt;STRONG&gt;E ai esta a outra parte da mágica, aprender&amp;nbsp; mais sobre o funcionamento vendo como é realizado as rotinas.&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#ff0000 size=2&gt;&lt;STRONG&gt;Uma pergunta final que pode ser feita : Esta solução é crossbrowser ?&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&lt;STRONG&gt;Infelizmente não é&lt;/STRONG&gt;, por enquanto esta solução esta compatível apenas com o &lt;STRONG&gt;Internet Explorer&lt;/STRONG&gt; , porem mostra&amp;nbsp; que com um pouco de conhecimento pode-se se chegar a uma solução.&amp;nbsp;&lt;STRONG&gt;O &amp;nbsp;legal de compartilhar conhecimento é poder mostrar os avanços, os caminhos . Compartilhando estes caminhos e códigos outros desenvolvedores aprendem melhor o funcionamento e pode evoluir a solução até chegar a uma maturidade de código que permita o uso em usa plenitude &lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#ff0000 size=2&gt;&lt;STRONG&gt;Onde posso pegar todo o código fonte ? &lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Esta em um thread no fórum&amp;nbsp; &lt;/FONT&gt;&lt;A href="http://www.asp.net/" target=_blank&gt;&lt;FONT face=Verdana size=2&gt;www.asp.net&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp; : &lt;/FONT&gt;&lt;A href="http://forums.asp.net/thread/1621227.aspx" target=_blank&gt;&lt;FONT face=Verdana size=2&gt;http://forums.asp.net/thread/1621227.aspx&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;&lt;BR&gt;&lt;BR&gt;&lt;FONT face=Verdana size=2&gt;&lt;EM&gt;Quem inica a thead e o propio autor da classe, a ele que devemos dar o grande parabens . De minha parte estou apenas ajudando a divulgar e compartilhar com vocês.&lt;/EM&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face=Verdana size=2&gt;A todos um grande abraço&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;STRONG&gt;&lt;FONT face=Verdana color=#ff0000 size=2&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;img src="http://linhadecodigo.com.br/CS2/aggbug.aspx?PostID=659" width="1" height="1"&gt;</description></item><item><title>ASP.NET AJAX / AJAX Control Toolkit - WebCast! </title><link>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/2007/03/26/656.aspx</link><pubDate>Mon, 26 Mar 2007 14:39:00 GMT</pubDate><guid isPermaLink="false">60018a49-732a-46c4-9207-13bc44cc8285:656</guid><dc:creator>FCerqueira</dc:creator><slash:comments>0</slash:comments><comments>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/comments/656.aspx</comments><wfw:commentRss>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/commentrss.aspx?PostID=656</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Realizamos neste sábado (24/03) o Webcast "Saturday Night Code - Desvendando segredos do ASP.NET AJAX e do AJAX Control Toolkit".&lt;BR&gt;&lt;BR&gt;Este evento contou com a participação de 3 MVP'S&amp;nbsp; : Diego Neufert&amp;nbsp;, Marcelo D'Avila de Pauli e Fernando Cerqueira. Foram 4 horas de muitas informações&amp;nbsp;dicas e muitos códigos.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;FONT face=Verdana&gt;O evento tem tudo para entrar na historia como o maior evento do MSDN vejam os números :&lt;BR&gt;&lt;BR&gt;* &amp;nbsp;+ de 2.000 incrições&lt;BR&gt;*&amp;nbsp;Aproximadamente 700 logins distisntos&lt;BR&gt;* as 02:00 da manhã! tinhamos + de 120&amp;nbsp; logins no chat tirando dúvidas &lt;BR&gt;&lt;BR&gt;Uma coisa legal de se falar que Eu e o Diego precisavamos fazer uma demo&amp;nbsp;de criação de um controle usando&amp;nbsp;o AJAX toolkit&amp;nbsp;&amp;nbsp;que deveria ser simples porem demonstrando de forma clara todos os aspectos das modalidades possíveis de uso do AJAX , desde usando apenas o modelo Server-Centric ate o Modelo Client-Centric. Isso foi feito&amp;nbsp; em apenas 30 minutos desde o Zero, demostrando que a ferramenta realemente é muito produtiva. &lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;A todos que participaram do Webcast nosso muito obrigado! &lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;img src="http://linhadecodigo.com.br/CS2/aggbug.aspx?PostID=656" width="1" height="1"&gt;</description><category domain="http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/category/1002.aspx">ATLAS / AJAX</category><category domain="http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/category/1004.aspx">Anuncios/Eventos</category></item><item><title>MS Ajax Vers&amp;#227;o Final - O que realmente mudou Quando e Porque</title><link>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/2007/03/19/639.aspx</link><pubDate>Mon, 19 Mar 2007 14:51:00 GMT</pubDate><guid isPermaLink="false">60018a49-732a-46c4-9207-13bc44cc8285:639</guid><dc:creator>FCerqueira</dc:creator><slash:comments>4</slash:comments><comments>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/comments/639.aspx</comments><wfw:commentRss>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/commentrss.aspx?PostID=639</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Fico sempre feliz em ver novos artigos&amp;nbsp;e assuntos sobre AJAX.NET&amp;nbsp;em nossa língua. Algumas das vezes ocorrem alguns &lt;EM&gt;"deslizes"&lt;/EM&gt; e a informação passada nestes artigos não é correta ou imprecisa. Sempre que escrevemos um artigo corremos o risco de errar, seja por descuido, seja pelo fato de não conhecer os detalhes da implementação...., Claro que isso não desmerece o artigo nem seu autor, em 90% dos casos os artigos são ótimos e atingem seu objetivo.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Como &lt;STRONG&gt;MVP&lt;/STRONG&gt;,&amp;nbsp; acabo tendo a preocupação de estar compartilhando corretamente a informação para uma perfeita compreensão do desenvolvedor e por conseqüência a melhor utilização dos recursos e das tecnologias envolvidas e discutidas. &lt;BR&gt;&lt;BR&gt;Este fim de semana me deparei com alguns destes artigos (em diversos sites) com&amp;nbsp;pequenos “deslizes” que podem dificultar ou ainda se tirar conclusões erradas de como utilizar o AJAX.NET. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Como já tinha prometido em várias palestras falar um pouco mais em detalhes do AJAX,&amp;nbsp; resolvi então compartilhar neste blog &lt;STRONG&gt;alguns&amp;nbsp;dos detalhes que&amp;nbsp; saíram na versão final do AJAX.NET&lt;/STRONG&gt; que eventualmente são passados com alguns “enganos”. &lt;BR&gt;&lt;BR&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;A estrutura do AJAX.NET :&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;o Ajax.Net possui apenas &lt;U&gt;uma única biblioteca e não várias&lt;/U&gt;. Por se tratar de um framework que interage tanto com o lado cliente como o lado servidor da aplicação sua estrutura é divida&amp;nbsp; assim:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&lt;STRONG&gt;Ajax Extensions&lt;/STRONG&gt; - Núcleo do lado servidor onde se encontra os Server-Controls. São estes controles que permitem tornar as aplicações "AJAX Enabled" pelo modelo de programaçãp Server-Centric.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;A dll do &lt;U&gt;AJAX Extension já possuem as bibliotecas do AJAX Library&lt;/U&gt; (Elas estão embeding na DLL System.Web.Extensions). &lt;BR&gt;&lt;BR&gt;&lt;IMG src="http://www.fci.com.br/PublicImages/image001.jpg"&gt;&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;Ajax Library&lt;/STRONG&gt; – Núcleo do lado cliente onde se encontra as bibliotecas em Javascript. Por se tratar de um conjunto de funcionalidades escritas em Javascript&amp;nbsp; sem dependências direta do AJAX Extensions pode ser usada em ambientes e linguagens que suportam javascript tais como PHP. Esta biblioteca é a mesma que se encontra no AJAXExtension . É pelo uso desta biblioteca que tornamos as aplicações "AJAX Enabled “ pelo modelo de programação Client-Centric.&lt;BR&gt;&lt;BR&gt;&lt;EM&gt;&lt;FONT color=#000080&gt;Um “mix” de ambos os recursos normalmente é o desejado quando queremos tirar o máximo de proveito da produtividade obtida no modelo Server-Centric e o máximo de flexibilidade e controle encontrados no modelo Client-Centric.&amp;nbsp; &lt;/FONT&gt;&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Alem da versão RTM do Ajax.Net&amp;nbsp; a MS vem disponibilizando para comunidade uma versão chamada &lt;STRONG&gt;“AJAX Future XXX CTP”&lt;/STRONG&gt; onde XXX é referente ao mês que foi lançado. Esta versão possui a mesma estrutura da versão RTM, porem é incluída alguns controles e funcionalidades que poderão fazer parte do produto em versão futuras. &lt;U&gt;O objetivo desta versão é que a comunidade possa testar e dar feedbacks em relação aos novos recursos, sendo assim, algumas destas funcionalidades podem não estar completas nem são suportadas oficialmente.&lt;/U&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#ff0000 size=2&gt;&lt;STRONG&gt;O AJAXTOOLKIT&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;O AJAXToolkit embora esteja diretamente ligado ao produto AJAX.NET não faz parte do produto e pode ser “baixado” posteriormente.&amp;nbsp; &lt;U&gt;O AJAXTOOLKIT é um conjunto de controles que faz uso do núcleo do AJAX.NET.&lt;/U&gt; &lt;BR&gt;&lt;IMG src="http://www.fci.com.br/PublicImages/image002.jpg"&gt;&lt;BR&gt;&lt;U&gt;Seu objetivo é ser uma caixa de ferramenta de controles que facilitam o desenvolvimento de interfaces ricas com o uso de AJAX&lt;/U&gt;. &lt;BR&gt;&lt;BR&gt;Atualmente existem mais de 30 controles criados para as mais diversas finalidades, e entres eles, um de nossa autoria, e dentro em breve, teremos mais outros 2 controles que estamos trabalhando.&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;De um modo geral os controles &lt;STRONG&gt;são do tipo Extender&lt;/STRONG&gt;, ou seja, &lt;U&gt;eles expandem as funcionalidades de um controle já existente&lt;/U&gt; fornecendo novas funcionalidades e comportamentos. &lt;BR&gt;&lt;BR&gt;Em seu útimo release foi incluído o suporte a globalização de mensagens, aplicação de themes e consolidado o uso de CSS resource (uma fantástica feature). &lt;BR&gt;&lt;BR&gt;Atualmente todo o team esta focado e garantir uma melhor estabilidade de todos os controles já publciados, para depois podemos avançamos com novos controles, mas posso adiantar&amp;nbsp; que existem pelo menos 2 grandes controles sendo desenvolvidos : &lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;a) MenuContext&amp;nbsp;&lt;BR&gt;b) AJAX WYSIWYG Editor &lt;BR&gt;&lt;/STRONG&gt;&lt;BR&gt;alem dos 2 controles que estamos criando :&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;c) TextCount Multiline&amp;nbsp;&lt;BR&gt;d) Calulator Control.&lt;BR&gt;&lt;/STRONG&gt;&lt;BR&gt;Um dos grandes atrativos do AJAXTOOLKIT que ele esta hospedado no site Codeplex (&lt;/FONT&gt;&lt;A href="http://www.codeplex.com/AtlasControlToolkit"&gt;&lt;FONT face=Verdana size=2&gt;http://www.codeplex.com/AtlasControlToolkit&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt;), tendo seu código aberto e comentado. Isso permite que a &lt;U&gt;comunidade possa interagir com o Team de desenvolvimento apontando bugs e melhorias, alem claro de ser uma fonte muito rica de exemplos de código usando o modelo Client-Centric&lt;/U&gt;. O Ajax Toolkit também possui um template para ser instalado no VS que facilita muito a criação de novos controles já criando uma estrutura padrão. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;WebParts em AJAX.NET&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;O suporte para WebParts no AJAX.NET &lt;U&gt;não esta disponível em sua versão RTM&amp;nbsp; 1.0&lt;/U&gt; . Durante o desenvolvimento até a entrada da versão beta fazia parta da versão CTP. &lt;U&gt;Nas versões betas já houve a separação&lt;/U&gt;, pois ainda teremos muitas mudanças nestes cenários (provavelmente em função do “Orcas” que já promete grandes novidades). Sendo assim,&amp;nbsp; esta &lt;U&gt;funcionalidade ficou na versão “Future” e a exemplo de outros recursos como DragAndDrop&lt;/U&gt; . O núcleo dos controles de Webparts será substituído quando ela fizer parte da versão final (como esta sendo feito com os controles Validators – Ver a seguir). &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;&lt;EM&gt;Uma dica para quem for testar a versão “Future January CTP” é que se torna necessário fazer o mapeamento das tags para que funcione de forma correta uma vez que os controles de webparts que vem por default no asp.net não estão preparados para interagir com o AJAX. Isso é necessário porque os controles webparts estão reescritos em outro namespaces (Veja figura abaixo).&amp;nbsp; &lt;BR&gt;&lt;/EM&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;IMG src="http://www.fci.com.br/PublicImages/image003.jpg"&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT face=Verdana size=2&gt;O mapeamento pode ser visto no arquivo web.config que&amp;nbsp; esta no mesmo diretório da versão “Future”.&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Verdana color=#ff0000 size=2&gt;&lt;BR&gt;&lt;FONT color=#000000&gt;A thread abaixo mostra um resumo ,porem muito claro do que podemos fazer com WebPats usando a versão "Future January CTP"&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Verdana color=#ff0000 size=2&gt;&lt;A href="http://forums.asp.net/thread/1545256.aspx"&gt;http://forums.asp.net/thread/1545256.aspx&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#ff0000 size=2&gt;&lt;STRONG&gt;Validators em AJAX.NET&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;O suporte para validator no AJAX.NET não foi retirado propriamente dito, na maioria dos cenários usuais o núcleo do AJAX.NET da o suporte adequado. &lt;BR&gt;&lt;BR&gt;Um dos problemas de compatiblidade é quando os validator estão dentro de UpdatePanel em determinadas situações ele não é capaz de resolver o render e localização do controle (normalmente durante o processo de partial render).&amp;nbsp; &lt;U&gt;Isso ocorre porque ele não acha o elemento DOM referente ao validator, pois o “parent” do controle esta sobre o updatePanel e o script do asp.net faz a busca pelo array “Page_Validators“ que tem seu “parent” para nothing ou outro elemento acima.&lt;/U&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Uma forma de resolver isso foi criação de&amp;nbsp; uma biblioteca de compatibilidade (&lt;U&gt;aconteceu na versão beta1&lt;/U&gt;)&amp;nbsp; e incluir o suporte ao validator&amp;nbsp; dentro do AJAX.NET mapeando as tags originais para os novos controles. Infelizmente esta abordagem trouxe problemas uma vez que controles criados pelos desenvolvedores que herdavam da classe &lt;U&gt;System.Web.UI.WebControls.BaseValidator&lt;/U&gt;&amp;nbsp; precisariam ser alterados para herdar da classe de compatibilidade o que gera diversos problemas com legados e confusão de qual classe será usada como herança.&amp;nbsp; &lt;BR&gt;&lt;BR&gt;Sendo assim &lt;U&gt;já&amp;nbsp;na versão BETA2 do AJAX.NET&amp;nbsp; esta classe de compatibilidade&amp;nbsp; foi&amp;nbsp; retirada e passamos&amp;nbsp; novamente utilizar as classes originais &lt;/U&gt;(Sofri com isso pois precisei rever um de meus controles do já estava em fase de publicação no AJAX Toolkit) . &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&lt;U&gt;Na versão final este conceito foi mantido, e será feito uma atualização no núcleo do Framework (via Windows Update) para atualizar as classes originais&lt;/U&gt;.&amp;nbsp; Enquanto esta atualização não chega uma saída é utilizar estas classes de compatibilidade quando necessário. Para isso você devera baixar o código fonte das classes, referenciar em seu projeto a DLL que contem estas classes e alterar o web.config para mapear os validator para esta classe. Todos estes detalhes podem ser visto neste blog: &lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/mattgi/archive/2007/01/23/asp-net-ajax-validators.aspx"&gt;&lt;FONT face=Verdana size=2&gt;http://blogs.msdn.com/mattgi/archive/2007/01/23/asp-net-ajax-validators.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;FONT face=Verdana size=2&gt;&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;UpdateProgress&amp;nbsp; com mais de um UpdatePanel&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Quando passamos a usar AJAX.NET , por não haver refresh de tela,&amp;nbsp; quando são executadas as chamada assíncronas torna-se necessário darmos um feeedback para o usuário&amp;nbsp;avisando que sua requisição esta sendo processada. Para atender este necessidade foi criado o UpdateProgress presentes desde as versões antigas dos CTPS.&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Umas das &lt;U&gt;muitas solicitações feita pela comunidade durante o desenvolvimento do produto era poder associar o Updateprogress a um updatePanel específico&lt;/U&gt;. Estas solicitação foi atendida na &lt;U&gt;beta 2 e na versão final&lt;/U&gt;, e passamos a ter a opção de pode &lt;STRONG&gt;ou não&lt;/STRONG&gt; associar um updateprogress a um updatepanel especifico através da propriedade &lt;EM&gt;&lt;FONT color=#006400&gt;AssociatedUpdatePanelID&lt;/FONT&gt;&lt;/EM&gt;.&amp;nbsp; &lt;U&gt;Demostramos isso em detalhes em nossa palestra durate o &lt;STRONG&gt;TechED2006.&lt;/STRONG&gt;&lt;/U&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&lt;FONT color=#000080&gt;&lt;EM&gt;&lt;STRONG&gt;DICA&lt;/STRONG&gt;: se a propriedade AssociatedUpdatePanelID ficar vazia , o updateprogress será ativado para qualquer updatepanel presente no formulário, inclusive os que estiverem com a proriedade preenchida, ou seja, Mesmo que tivermos vários updatepanels em uma pagina não precisamos criar um updateprogress para cada um, esta sera uma decisão de usabilidade e não uma restrição do controle como da a enteder em alguns artigos.&lt;BR&gt;&lt;BR&gt;&lt;/EM&gt;&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;O uso do UpdatePanel&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Este é o principal componente do lado Server. O updatepanel é um componente que faz a herança do conhecido componente Panel, ou seja, ele é um Container (Componente que permite que seja colocado outros componentes em seu interior).&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Seu objetivo é bastante simples: Tudo que for colocado “dentro” do UpdatePanel passará a interagir com o servidor de forma assíncrona fazendo chamadas pelo objeto &lt;STRONG&gt;XMLHTTP Request&lt;/STRONG&gt; sendo controlado pelo controle &lt;STRONG&gt;ScriptMananger&lt;/STRONG&gt;.&amp;nbsp; &lt;U&gt;Assim quando é feito uma requisição de página esta é feita pelo função Javascript e não mais pela página usando o método Onsubmit.&lt;BR&gt;&lt;/U&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#000080&gt;&lt;EM&gt;Um engano comum é achamos que com isso o processo no lado servidor é modificado, Não é!. Continuamos a ter o postback e o disparo e seqüência de todos os eventos normais de uma requisição de página no servidor. O que muda não é o processamento no lado do servidor e sim o controle e gerencia do que será trafegada entre o servidor e a função/classe chamadora no lado cliente (leia-se o código Javascript que foi o responsável pela chamada).&lt;/EM&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Como existem diversos cenários para as aplicação no mundo real passou a existir a necessidade de&amp;nbsp; prover algumas funcionalidades extras ao controle updatepanel com o objetivo otimizar as chamadas&amp;nbsp; evitando roundtrips desnecessárias ao servidor(Quando isso fosse possível).&amp;nbsp; Esta necessidade levou as mudanças presentes na versão final, &lt;U&gt;que passou a ter uma melhoria significativa sobre o&amp;nbsp; controle de envio e também quando e como eles são disparados&lt;/U&gt;.&amp;nbsp; As propriedades que dão esta flexibilidade são:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&lt;STRONG&gt;ChildrenAsTriggers&lt;/STRONG&gt; : Usado para alterar o comportamento padrão do updatepanel (Que assume que todos os controles em seu interior farão chamadas assíncronas).&amp;nbsp; Quando esta propriedade é&amp;nbsp; alterada para “false” , o updatepanel passa e verificar a forma de envio através das propriedades &lt;EM&gt;AsyncPostBackTrigger&lt;/EM&gt; e &lt;EM&gt;PostBackTrigger&lt;/EM&gt;.&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&lt;STRONG&gt;AsyncPostBackTrigger&lt;/STRONG&gt; : Usando para informar quais controles farão chamadas assíncronas. Podem ser informados controles dentro do UpdatePanel ou fora dele. Em ambos os casos o evento postkback gerado pelo controle informado será capturado e tratado pelo scriptMananger evitando-se assim uma chamada ao servidor pela forma tradicional.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&lt;STRONG&gt;PostBackTrigger&lt;/STRONG&gt; : Uma vez que podemos alterar o comportamento default do updatepanel para não executar postbaks assíncronos para todos os controles dentro do updatepanel podemos com esta propriedade&amp;nbsp; informar quais os controles dentro do updatepanel que farão as chamadas ao servidor executando um postback tradicional.&lt;BR&gt;&lt;BR&gt;As combinações possíveis com estas três propriedades proporcionam ao desenvolvedor, um leque de opção para criar os mais diversos e complexos cenários, tornado o updatepanel bastante flexível no seu uso e na sua aplicabilidade.&lt;BR&gt;&lt;BR&gt;&lt;EM&gt;&lt;FONT color=#000080&gt;O uso adequado destes recursos possibilita ganhos significativos de desempenho e tráfego, sendo um dos itens que sempre devem ser analisados durante o projeto ou migração para o uso do AJAX.&lt;BR&gt;&lt;/FONT&gt;&lt;/EM&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;ScriptMananger&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Finalmente chegamos ao ScriptMananger. Este controle, que só aparece em tempo de Design, é o responsável por todas as chamadas e retornos que são feita de forma assíncrona. &lt;BR&gt;&lt;BR&gt;É graças a ele que podemos fazer o render parcial da página, localizar quais os controles que serão alterados e como serão alterados. Não houve mudanças significativas durante a passagem da versão Beta para a versão RTM, porem alguns cuidados são necessários &lt;U&gt;em especial quando manipulamos tipos de dados sensíveis a localização&lt;/U&gt;.&lt;BR&gt;&lt;BR&gt;O AJAX funciona dividindo parte do processamento entre o servidor e o cliente, preferencialmente entregando apenas os dados e deixando para o lado cliente transforma os dados na melhor forma de apresentação, isso todos já sabem. &lt;BR&gt;&lt;BR&gt;Todo este processo de divisão se faz serializando os dados de forma que possam ser trafegados entre o servidor e o cliente pelo protocolo Http, isso&amp;nbsp; nem todos sabem . &lt;BR&gt;&lt;BR&gt;É justamente devido ao processo de serialização e “deserialização“ que precisamos ficar atentos quando tivemos manipulando dados do tipo Data (por exemplo) que é sensível a localização. Nestes cenários precisamos de alguma forma avisar, caso seja necessário, ao lado cliente escrito em&amp;nbsp; javascript , que desejamos que o dado enviado, &lt;U&gt;sofra uma transformação de conversão para a cultura corrente&lt;/U&gt;, que pode ou não ser necessário. Justamente neste cenário é que precisamos ativar uma das propriedades do ScriptMananger : &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&lt;STRONG&gt;EnableScriptGlobalization&lt;/STRONG&gt; :&amp;nbsp; Seu default é false, ou seja não é feito nenhum tratamento de conversão dos dados serializados. Lembra-se que dissemos que o envio não era mais feito pela página e sim pelo XMLHTTP, por isso precisamos informar como desejamos fazer.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#000080 size=2&gt;&lt;EM&gt;Alguem já teve problemas com acentuação ? Provavelmente sim. Mas sabem porque ? Justamente pro causa deste efeito, uam forma de solucionar e termos uma cultura para UI e outra para os dados que são trafegados, issso claro quando não precisamos manipular os dados pelo javascrit, que é o caso que estamos tratando aqui.&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Mais detalhes sobre este assunto pode ser visto em :&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&lt;STRONG&gt;Sobre a proriedade EnableScriptGlobalization :&lt;BR&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;A href="http://ajax.asp.net/docs/mref/P_System_Web_UI_ScriptManager_EnableScriptGlobalization.aspx"&gt;&lt;FONT face=Verdana size=2&gt;http://ajax.asp.net/docs/mref/P_System_Web_UI_ScriptManager_EnableScriptGlobalization.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT face=Verdana size=2&gt;&lt;STRONG&gt;Sobre como serialziar pelo lado Servidor:&lt;BR&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;A href="http://ajax.asp.net/docs/mref/N_System_Web_Script_Serialization.aspx"&gt;&lt;FONT face=Verdana size=2&gt;http://ajax.asp.net/docs/mref/N_System_Web_Script_Serialization.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT face=Verdana size=2&gt;&lt;STRONG&gt;Sobre como serialziar pelo lado Cliente:&lt;/STRONG&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;A href="http://ajax.asp.net/docs/ClientReference/Sys.Serialization/JavascriptSerializerClass/default.aspx"&gt;&lt;FONT face=Verdana size=2&gt;http://ajax.asp.net/docs/ClientReference/Sys.Serialization/JavascriptSerializerClass/default.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&lt;STRONG&gt;Um efeito e necessidade prática pode ser vista quando usamos o controle Calendar (presente no AJAXTOOLKIT) :&lt;BR&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;A href="http://www.u2u.info/Blogs/Kevin/Lists/Posts/Post.aspx?List=6f246d9a%2De4e7%2D4846%2Db776%2Df9a62112ffb7&amp;amp;ID=6"&gt;&lt;FONT face=Verdana size=2&gt;http://www.u2u.info/Blogs/Kevin/Lists/Posts/Post.aspx?List=6f246d9a%2De4e7%2D4846%2Db776%2Df9a62112ffb7&amp;amp;ID=6&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&lt;STRONG&gt;E por fim outra explicação de um cara que sou Fã : o Dino Esposito&lt;/STRONG&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;A href="http://blogs.ugidotnet.org/dinoes/archive/2007/02/06/69915.aspx"&gt;&lt;FONT face=Verdana size=2&gt;http://blogs.ugidotnet.org/dinoes/archive/2007/02/06/69915.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT face=Verdana size=2&gt;&lt;FONT color=#000080&gt;&lt;EM&gt;Como pode ser observado os motivos de utilziação do&amp;nbsp; EnableScriptGlobalization são muto bem conhecidos, e sua compreenção é fundamental para que o desenvolvedor sabia quando e porque fazer uso deste recurso.&lt;BR&gt;&lt;BR&gt;&lt;/EM&gt;&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Considerações sobre Deployment&lt;BR&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR&gt;Desde a &lt;U&gt;versão BETA2&amp;nbsp;&lt;/U&gt; houve mudanças significativas no core de Ajax que passou a fazer uso de reflexão. Devido a esta nescessidade a &lt;U&gt;DLL precisa ter permissão&amp;nbsp; de &lt;STRONG&gt;FULL TRUST&lt;/STRONG&gt;&lt;/U&gt;. Existem 2 formas que conheço e uma terceira que &lt;U&gt;não tenho certeza&lt;/U&gt; de como implementar para termos esta permissão :&amp;nbsp; &lt;BR&gt;&lt;BR&gt;a) Dar permissão FULL TRUST a aplicação do servidor web&amp;nbsp;&lt;BR&gt;b) registrar a DLL no CAG do servidor que tem permissão FULL TRUST. &lt;BR&gt;&lt;BR&gt;Por motivos de segurança a maioria dos servidores de hospedagem compartilhada rodam com permissão &lt;STRONG&gt;MEDIUM TRUST&lt;/STRONG&gt; (&lt;U&gt;Que não permitem por default as operações de reflexão&lt;/U&gt;) nas aplicações.&amp;nbsp; &lt;BR&gt;&lt;BR&gt;A terceira opção (&lt;U&gt;que não posso afirmar&lt;/U&gt;) é apenas dar permissão FULL TRUST para as operações de reflexão (vi isso em um grande host que roda em MEDIUM TRUST porem foi possível trabalhar com a versão BETA2 apenas colocando as DLL’s do AJAX na pasta bin, daí acredidar que isso seja possível... mas novamente posso estar enganado)&lt;BR&gt;&lt;BR&gt;Abaixo alguns links interessantes para se aprofundar sobre Code Access Security in ASP.NET 2.0&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/ms998326.aspx"&gt;&lt;FONT face=Verdana size=2&gt;http://msdn2.microsoft.com/en-us/library/ms998326.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/ms998341.aspx"&gt;&lt;FONT face=Verdana size=2&gt;http://msdn2.microsoft.com/en-us/library/ms998341.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT face=Verdana size=2&gt;Esta mudança não preciso dizer causou uma série de transtornos até a entrega da versão final, uma vez que a grande maioria dos hosts de hospedagem tem resistência de&amp;nbsp; registrar DLL no gac em versão beta ainda (eu particularmente senti&amp;nbsp; isso na pele ao ter que esperar a versão Final para publicar 100% de meu site dentro do meu Host).&amp;nbsp; &lt;BR&gt;&lt;BR&gt;Com o lançamento da Versão final praticamente os problemas deixaram de existir e a grande maioria dos hosts sérios passaram a suportar o AJAX.NET registrando as DLLS no GAC e mantendo suas políticas de Code Access Security em MEDIUM TRUST. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&lt;FONT color=#000080&gt;&lt;EM&gt;Uma observação interessante é que esta forma de deployment sinaliza que provavelmente nas versões futuras do framework não será necessário baixar em separado as dlls do AJAX.NET&amp;nbsp; uma vez que será instalado junto com o framework e colocado as dlls no GAC (como deverá ser Tb a atualização dos validators controls já citados).&lt;BR&gt;&lt;/EM&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;O que temos pela frente&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;O AJAX.NET com certeza é uma fantástica ferramenta para tornar nossas aplicações mais ricas , com maior usabilidade&amp;nbsp; e interatividade e são percebidas de imediato pelo usuário final.&lt;BR&gt;&lt;BR&gt;Podemos esperar muito mais coisa pela frente.&amp;nbsp; Já estamos trabalhando com uma &lt;STRONG&gt;versão do AJAX TOOLKIT para o novo visual Studio codename: ORCAS&lt;/STRONG&gt;, que vira com uma infinidade de recursos. &lt;BR&gt;&lt;BR&gt;Alem do “Orcas” teremos também o &lt;STRONG&gt;WPF/E (ainda vou falar muito sobre ele) &lt;/STRONG&gt;que vai elevar as experiência no uso de imagens e sons na web a níveis imagináveis. &lt;BR&gt;&lt;BR&gt;&lt;FONT color=#000080&gt;&lt;EM&gt;Assisti uma demonstração que não é pública (infelizmente) que em dado momento não sabia mais se estava vendo uma aplicação sobre a web ou se a mesma estava rodando com o aero do Vista , algo realmente impressionante.&lt;BR&gt;&lt;/EM&gt;&lt;/FONT&gt;&lt;BR&gt;A esta altura você já deve estar se perguntando se o que estará fazendo com AJAX será perdido com a chegada do WPF/E.&amp;nbsp; O que posso dizer é que não será perdido, pelo contrario você estará mais familiarizado com uma nova forma&amp;nbsp; usabilidade proporcionada&amp;nbsp; hoje pelo AJAX e será muito mais fácil entender e aplicar o WPF/E, que não substitui o Ajax,&amp;nbsp; pelo contrário ira fazer bastante uso dos conceitos e de seus recursos.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Conclusão&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Espero que com este post possa ter ajudado o leitor a entender melhor alguns dos conceitos novos que foram criados e implementados na versão final do AJAX.NET e o mais importante, &lt;STRONG&gt;&lt;FONT color=#000080&gt;não apenas saber dos do conceitos mas o porque de sua necessidade e/ou aplicabilidade&lt;/FONT&gt;&lt;/STRONG&gt;.&lt;BR&gt;&lt;BR&gt;Costumo finalizar minhas apresentações de AJAXcom uma frase : &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#006400 size=2&gt;&lt;STRONG&gt;“Um problema pode ser visto de vários ângulos. Descobrir novas visões do mesmo problema é a arte de saber encontrar a melhor solução.”&lt;/STRONG&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Tenha sempre isso em mente quando for aplicar Ajax em sistemas já existentes, &lt;EM&gt;&lt;FONT color=#000080&gt;lembre-se que toda as interfaces e a usabilidade foi pensada sem o uso de AJAX. Apenas aplicar updatepanels nas interfaces sem uma analise melhor de usabilidade pode resultar em uma interface mais “pobre” que a original.&lt;/FONT&gt;&lt;/EM&gt; &lt;STRONG&gt;Todas as interfaces devem ser repensadas de forma a se tirar o máximo de proveito dos novos recursos com o mínimo de tráfego entre o cliente e o servidor.&lt;BR&gt;&lt;BR&gt;&lt;/STRONG&gt;A todos que chegaram ate aqui, uma ótima semana!&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://linhadecodigo.com.br/CS2/aggbug.aspx?PostID=639" width="1" height="1"&gt;</description><category domain="http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/category/1001.aspx">ASP.NET</category><category domain="http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/category/1002.aspx">ATLAS / AJAX</category><category domain="http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/category/1003.aspx">Novidades</category></item><item><title>Refletor 5.0 - Uma ferramenta indispens&amp;#225;vel</title><link>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/2007/02/22/588.aspx</link><pubDate>Thu, 22 Feb 2007 23:06:00 GMT</pubDate><guid isPermaLink="false">60018a49-732a-46c4-9207-13bc44cc8285:588</guid><dc:creator>FCerqueira</dc:creator><slash:comments>1</slash:comments><comments>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/comments/588.aspx</comments><wfw:commentRss>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/commentrss.aspx?PostID=588</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Uma ferramenta indispensável para o desenvolverdor é um&amp;nbsp;aplicativo de reflexão. &lt;BR&gt;&lt;BR&gt;Embora muitos achem que a intenção é descompilar e ver o código fonte, estas ferramentas tem uma tarefa mais nobre :&amp;nbsp;&amp;nbsp;&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Verdana color=#ff0000 size=2&gt;&lt;STRONG&gt;Faciliar o entendimento do .NET framework. &lt;BR&gt;Ajudar a melhorar a performance e reduzir os cast&lt;BR&gt;Uma grande fonte de aprendizado&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#ff0000&gt;&lt;FONT face=Verdana color=#000000&gt;Já esta disponível&amp;nbsp;uma destas ferramentas que gosto muito : &lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;FONT face=Verdana&gt;Lutz Roeder's Reflector 5.0 &lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.aisto.com/roeder/dotnet"&gt;&lt;FONT face=Verdana size=2&gt;.NET Reflector 5.0&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;
&lt;LI&gt;&lt;A href="http://www.codeplex.com/reflectoraddins"&gt;&lt;FONT face=Verdana size=2&gt;.NET Reflector 5.0 Add-Ins&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;
&lt;LI&gt;&lt;A href="http://www.aisto.com/roeder/paper/reflector5.ppt"&gt;&lt;FONT face=Verdana size=2&gt;.NET Reflector 5.0&amp;nbsp;new feature overview&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt; (PowerPoint)&lt;BR&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;&lt;EM&gt;&lt;STRONG&gt;Uma coisa bem interesante é a &amp;nbsp;versão Add-Ins que esta hospedada no Codeplex!, e esta repleta de "features" muito&amp;nbsp;legais ,&amp;nbsp;vale apena conferir.&amp;nbsp;&lt;BR&gt;&lt;/STRONG&gt;&lt;/EM&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=4&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;img src="http://linhadecodigo.com.br/CS2/aggbug.aspx?PostID=588" width="1" height="1"&gt;</description><category domain="http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/category/1003.aspx">Novidades</category><category domain="http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/category/1004.aspx">Anuncios/Eventos</category></item><item><title>Grupo de Usu&amp;#225;rios  Rio de Janeiro - Um Novo Grupo,  Um grande trabalho</title><link>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/2007/02/16/579.aspx</link><pubDate>Fri, 16 Feb 2007 16:58:00 GMT</pubDate><guid isPermaLink="false">60018a49-732a-46c4-9207-13bc44cc8285:579</guid><dc:creator>FCerqueira</dc:creator><slash:comments>1</slash:comments><comments>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/comments/579.aspx</comments><wfw:commentRss>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/commentrss.aspx?PostID=579</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;O grupo &lt;STRONG&gt;Code4All&lt;/STRONG&gt; vem fazendo um grande trabalho&amp;nbsp; no Rio de Janeiro.&amp;nbsp;É um grupo recente , porem seus integrantes já atuam na comundiade a bastante tempo , e recentemente fomos convidados a fazer parte&amp;nbsp;. Temos muito orgulho em aceitar.&lt;BR&gt;&lt;BR&gt;&lt;EM&gt;&lt;STRONG&gt;O grupo é o único no Rio de Janeiro a fazer seu trabalho de forma aberta, sem restrições a pessoas e idéais, apoia&amp;nbsp;o programa MVP e Todos os MVP&lt;/STRONG&gt;&lt;/EM&gt;&lt;/FONT&gt;&lt;FONT face=Verdana size=2&gt;&lt;EM&gt;&lt;STRONG&gt;'S&amp;nbsp;&amp;nbsp;e deixa aberto&amp;nbsp;para divulgação! Uma grande inciativa que não&amp;nbsp;encontramos em outros grupos existentes aqui no RJ. &lt;BR&gt;&lt;BR&gt;&lt;/STRONG&gt;&lt;/EM&gt;Estava faltando mesmo um grupo que não tivesse "censura"&amp;nbsp;. Quem sai ganhando com isso é &lt;U&gt;toda comunidade de desenvolvedores do Rio de Janeiro&lt;/U&gt; que poderão contar um um &lt;STRONG&gt;grupo aberto feito pela e para comunidade! Parabens!&lt;/STRONG&gt;&lt;BR&gt;&lt;BR&gt;Em entrevista com um de seus representantes&amp;nbsp; Ricardo Guerra&amp;nbsp; , descobrimos que esta previso muitas atividades muito em breve, é so aguardar! Ricardo resume o&amp;nbsp; grupo assim :&lt;BR&gt;&lt;BR&gt;"O grupo Code4All tem trabalhado intensamente no Rio de Janeiro para promover a tecnologia .NET em todas as áreas!&amp;nbsp; Discutimos tecnologias recentes (Microsoft AJAX.NET, WPF, entre outras) e buscamos maior integração entre várias comunidades Microsoft do Rio de Janeiro e de todo país!&amp;nbsp; Junte-se a nós"&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Verdana color=#ff0000 size=2&gt;&lt;STRONG&gt;O que esta esperando para fazer parte ? &lt;BR&gt;&lt;BR&gt;URL : &lt;FONT color=#ff0000&gt;http://www.code4all.net &lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://linhadecodigo.com.br/CS2/aggbug.aspx?PostID=579" width="1" height="1"&gt;</description><category domain="http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/category/1000.aspx">Pessoal</category><category domain="http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/category/1003.aspx">Novidades</category><category domain="http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/category/1004.aspx">Anuncios/Eventos</category></item><item><title>AJAX : MARQUEE CONTROL  e  BALLOON TOOPTIP EXTENDER (COM  VERS&amp;#195;O FREE!)</title><link>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/2007/02/07/561.aspx</link><pubDate>Wed, 07 Feb 2007 23:08:00 GMT</pubDate><guid isPermaLink="false">60018a49-732a-46c4-9207-13bc44cc8285:561</guid><dc:creator>FCerqueira</dc:creator><slash:comments>0</slash:comments><comments>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/comments/561.aspx</comments><wfw:commentRss>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/commentrss.aspx?PostID=561</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Acabamos de publicar em nosso site (&lt;/FONT&gt;&lt;A href="http://www.fci.com.br/" target=_blank&gt;&lt;FONT face=Verdana color=#ff0000 size=2&gt;&lt;STRONG&gt;www.fci.com.br&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt;)&amp;nbsp; mais 2 controles com recursos de&amp;nbsp; &lt;/FONT&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;AJAX&amp;nbsp;&lt;BR&gt;&lt;BR&gt;Compatibilidade de Browser :&lt;BR&gt;&lt;BR&gt;&lt;IMG src="http://www.inetabr.org/appfc/IE.gif"&gt; &lt;IMG src="http://www.inetabr.org/appfc/FF.gif"&gt; &lt;IMG src="http://www.inetabr.org/appfc/NE.gif"&gt; &lt;IMG src="http://www.inetabr.org/appfc/OP.gif"&gt; &lt;BR&gt;&lt;BR&gt;As imagens abaixo foram feitas usando o Opera! &lt;img src="/cs2/emoticons/emotion-2.gif" alt="Big Smile [:D]" /&gt;&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;MARQUEE CONTROL &lt;/FONT&gt;&lt;/STRONG&gt;Versão 1.0.0.0 Demo Professional&lt;BR&gt;O controle Marquee possui a característica de fazer scrool do texto com a mesma funcionalidade da TAG "marquee" e adicionada várias funcionaldiades extras.&lt;BR&gt;&lt;IMG src="http://www.inetabr.org/appfc/MarqueeDemo.gif"&gt;&lt;BR&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;BALLOON TOOPTIP EXTENDER &lt;/FONT&gt;&lt;/STRONG&gt;Versão 1.0.0.0 Demo Professional&lt;BR&gt;O controle Balloon Tooltip apresenta um tooltip na forma de balão, com opções de Scroll tipo "Marquee", Eventos pelo mouse-hover e onclick , permite a abertura de outras páginas entre outras funcionalidades&amp;nbsp; &lt;BR&gt;&lt;IMG src="http://www.inetabr.org/appfc/BalllonDemo.gif"&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;Ambos os controles tem uma versão FREE para COMUNIDADE.&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;/STRONG&gt;Aguardamos sua visita e comentários!&lt;BR&gt;&lt;BR&gt;Grande Abraço&lt;BR&gt;&lt;BR&gt;Fernando Cerqueira&lt;BR&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;img src="http://linhadecodigo.com.br/CS2/aggbug.aspx?PostID=561" width="1" height="1"&gt;</description><category domain="http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/category/1001.aspx">ASP.NET</category><category domain="http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/category/1002.aspx">ATLAS / AJAX</category><category domain="http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/category/1003.aspx">Novidades</category></item><item><title>Novo Site no AR! 100% AJAX </title><link>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/2007/01/23/480.aspx</link><pubDate>Tue, 23 Jan 2007 21:07:00 GMT</pubDate><guid isPermaLink="false">60018a49-732a-46c4-9207-13bc44cc8285:480</guid><dc:creator>FCerqueira</dc:creator><slash:comments>2</slash:comments><comments>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/comments/480.aspx</comments><wfw:commentRss>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/commentrss.aspx?PostID=480</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Estavamos aguardando o lançamento oficial do AJAX.ASP.NET 1.0&amp;nbsp; para publicar o &lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;DIV&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000 size=4&gt;&lt;A href="http://www.fci.com.br/" target=_blank&gt;NOVO SITE&amp;nbsp; FCI&lt;BR&gt;&lt;BR&gt;TODO REFORMULADO&amp;nbsp; E USANDO 100% AJAX.&lt;/A&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt; 
&lt;DIV&gt;&lt;A href="http://www.fci.com.br/" target=_blank&gt;&lt;IMG src="http://www.fci.com.br/PublicImages/SITEFCI.jpg" border=0&gt;&lt;/A&gt;&lt;/DIV&gt;&lt;BR&gt;&lt;FONT face=Verdana size=2&gt;Agora a comunidade poderá&amp;nbsp; &lt;STRONG&gt;baixar novos controles , ler artigos&lt;/STRONG&gt; de uma forma bem mais organzida.&lt;STRONG&gt; &lt;/STRONG&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;Esperamos sua visita e comentários!&lt;BR&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;
&lt;P&gt;&lt;/P&gt;&lt;img src="http://linhadecodigo.com.br/CS2/aggbug.aspx?PostID=480" width="1" height="1"&gt;</description><category domain="http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/category/1000.aspx">Pessoal</category><category domain="http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/category/1001.aspx">ASP.NET</category><category domain="http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/category/1002.aspx">ATLAS / AJAX</category><category domain="http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/category/1003.aspx">Novidades</category><category domain="http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/category/1004.aspx">Anuncios/Eventos</category></item><item><title>Microsoft lan&amp;#231;a oficialmente o AJAX 1.0</title><link>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/2007/01/23/479.aspx</link><pubDate>Tue, 23 Jan 2007 20:58:00 GMT</pubDate><guid isPermaLink="false">60018a49-732a-46c4-9207-13bc44cc8285:479</guid><dc:creator>FCerqueira</dc:creator><slash:comments>0</slash:comments><comments>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/comments/479.aspx</comments><wfw:commentRss>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/commentrss.aspx?PostID=479</wfw:commentRss><description>&lt;FONT face=Verdana size=2&gt;Acaba de ser lançado hoje, &lt;STRONG&gt;23/01/2007&lt;/STRONG&gt; a versão oficial e final do &lt;STRONG&gt;AJAX.ASP.NET 1.0&lt;/STRONG&gt;. Juntamete com o a versão oficial esta sendo lançado + 4 controles no&amp;nbsp; &lt;STRONG&gt;AJAXTOOLKIT&lt;/STRONG&gt; :&amp;lt;ajaxToolkit:CalendarExtender&amp;gt;, &lt;STRONG&gt;&amp;lt;ajaxToolkit:MaskedEditExtender&lt;/STRONG&gt;&amp;gt; feito por nós , &amp;lt;ajaxToolkit:TabContainer&amp;gt; e&amp;nbsp;&amp;lt;ajaxToolkit:AutoCompleteExtender&amp;gt;.&lt;/FONT&gt;&amp;nbsp; &lt;BR&gt;&lt;FONT face=Arial&gt;&lt;BR&gt;&lt;A href="http://ajax.asp.net/downloads/default.aspx?tabid=47" target=_blank&gt;&lt;IMG height=27 alt="" src="http://ajax.asp.net/images/go-download.gif" width=260 border=0&gt;&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;A href="http://ajax.asp.net/ajaxtoolkit/" target=_blank&gt;&lt;IMG height=23 alt="" src="http://ajax.asp.net/images/go-toolkit.gif" width=163 border=0&gt;&lt;/A&gt;&amp;nbsp;&lt;BR&gt;&lt;BR&gt;&lt;A href="http://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=AtlasControlToolkit" target=_blank&gt;&lt;IMG height=23 alt="" src="http://ajax.asp.net/images/get2-toolkit.gif" width=216 border=0&gt;&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;MaskedEdit em Ação &lt;BR&gt;&lt;BR&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;IMG alt="" src="http://blogs.msdn.com/delay/attachment/1518364.ashx" border=0&gt;&lt;img src="http://linhadecodigo.com.br/CS2/aggbug.aspx?PostID=479" width="1" height="1"&gt;</description><category domain="http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/category/1001.aspx">ASP.NET</category><category domain="http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/category/1002.aspx">ATLAS / AJAX</category></item><item><title>AJAX RELEASE CANDIDATE +  OUTRO RELEASE DO TOOLKIT PROGRAMADO!</title><link>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/2006/12/14/367.aspx</link><pubDate>Fri, 15 Dec 2006 01:33:00 GMT</pubDate><guid isPermaLink="false">60018a49-732a-46c4-9207-13bc44cc8285:367</guid><dc:creator>FCerqueira</dc:creator><slash:comments>0</slash:comments><comments>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/comments/367.aspx</comments><wfw:commentRss>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/commentrss.aspx?PostID=367</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Recebemos hoje a notificação que esta sendo publicado no site o &lt;BR&gt;&lt;BR&gt;&lt;FONT size=3&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;RELEASE CANDIDATE DO AJAX.&lt;/STRONG&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;BR&gt;Juntamente com ele como é de costume vem também um novo release do &lt;STRONG&gt;AJAXTOOLKIT&lt;/STRONG&gt; já funcionando no RC.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#ff0000 size=2&gt;&lt;STRONG&gt;Passei agora no site E&amp;nbsp;já esta como download público.&lt;BR&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face=Verdana size=2&gt;(http ://ajax.asp.net)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;A nova versão do Toolkit teve como foco resolver uma série de bug's dos controles e várias melhorias em quase todos os controles.&lt;BR&gt;&lt;BR&gt;Um novo release ainda vair!....hehehehe, &lt;BR&gt;&lt;STRONG&gt;Ainda este mês de dezembro&lt;/STRONG&gt; deverá sair um RELEASE DO TOOLKIT &lt;BR&gt;com pelo menos + 4 controles&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&lt;STRONG&gt;&lt;FONT color=#008000&gt;MASKEDEDIT, TABCONTROL, DATEPICK , CALENDAR&lt;/FONT&gt;&lt;/STRONG&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;Aguardem mais novidades em breve !&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;&lt;BR&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;img src="http://linhadecodigo.com.br/CS2/aggbug.aspx?PostID=367" width="1" height="1"&gt;</description></item><item><title>BETA2 DO ASP.NET AJAX</title><link>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/2006/11/07/320.aspx</link><pubDate>Tue, 07 Nov 2006 14:53:00 GMT</pubDate><guid isPermaLink="false">60018a49-732a-46c4-9207-13bc44cc8285:320</guid><dc:creator>FCerqueira</dc:creator><slash:comments>0</slash:comments><comments>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/comments/320.aspx</comments><wfw:commentRss>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/commentrss.aspx?PostID=320</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Desta vez foi muito curto o intervalo entre os releases :-)&lt;BR&gt;&lt;BR&gt;Ontem&amp;nbsp; foi liberado o &lt;STRONG&gt;&lt;U&gt;BETA2 DO&amp;nbsp;ASP.NET AJAX&lt;/U&gt;&lt;/STRONG&gt;&amp;nbsp;e tb um update do ToolKit para este release!.&amp;nbsp;&lt;BR&gt;&lt;BR&gt;Veja os Detalhes no site oficial em&amp;nbsp;: &lt;/FONT&gt;&lt;A href="http://ajax.asp.net/" target=_blank&gt;&lt;FONT face=Verdana size=2&gt;http://ajax.asp.net&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Como o intervalo foi bem curto não tive tempo de postar as alterações que foram muitas , entre o "ATLAS" -&amp;gt; AJAX ASP.NET.&lt;BR&gt;&lt;BR&gt;Agora, com a proximidade do&amp;nbsp;&lt;STRONG&gt;TechEd2006&amp;nbsp;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;A href="http://www.teched.com.br/" target=_blank&gt;&lt;FONT face=Verdana size=2&gt;&lt;STRONG&gt;http://www.teched.com.br/&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt;&amp;nbsp;( 28 a 30/11) estaremos revisando nossa palestra .&amp;nbsp;Quem estiver presente vale apena agendar para assitir a apresentação, &lt;FONT color=#ff0000&gt;&lt;U&gt;&lt;STRONG&gt;Estaremos mostrando&amp;nbsp;em &amp;nbsp;detalhes&amp;nbsp;este Framework :&lt;/STRONG&gt;&lt;/U&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Verdana size=2&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;&lt;FONT color=#000080 size=4&gt;&lt;FONT face="Times New Roman" color=#000000 size=3&gt;&lt;BR&gt;&lt;/FONT&gt;WEB307 - Mergulhando a Fundo no ASP.NET AJAX&lt;/FONT&gt;&amp;nbsp;&lt;BR&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR&gt;Grande abraços a todos e até o Teched!&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;EM&gt;Fernando Cerqueira&lt;BR&gt;&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;img src="http://linhadecodigo.com.br/CS2/aggbug.aspx?PostID=320" width="1" height="1"&gt;</description><category domain="http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/category/1002.aspx">ATLAS / AJAX</category><category domain="http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/category/1004.aspx">Anuncios/Eventos</category></item><item><title>Atlas TOOLTIP Extender - Novo Controle!</title><link>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/2006/09/26/237.aspx</link><pubDate>Tue, 26 Sep 2006 21:03:00 GMT</pubDate><guid isPermaLink="false">60018a49-732a-46c4-9207-13bc44cc8285:237</guid><dc:creator>FCerqueira</dc:creator><slash:comments>0</slash:comments><comments>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/comments/237.aspx</comments><wfw:commentRss>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/commentrss.aspx?PostID=237</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Submetemos&amp;nbsp;hoje um novo para integrar o AtlasToolkit :&amp;nbsp;&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;Tooltip Extender&lt;/STRONG&gt; :&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;O webcontrol &lt;B&gt;Tooltip &lt;/B&gt;serve para você prover uma apresentação de dicas e/ou help estático ou dinâmico para sua aplicação. O título (opcional) e o texto podem ser carregados do servidor durante a inicialização ou durante o eveto do mouse usando web-service ou page method. Recursos de temporização, cores e velocidade dos textos foram incluídos.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Uma demostração de seu funcionamento pode ser visto&amp;nbsp;no link abaixo&amp;nbsp;:&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;A href="http://www.fci.com.br/maskedit/" target=_blank&gt;&lt;STRONG&gt;&lt;FONT face=Verdana color=#ff0000 size=2&gt;Clique aqui para ver a demostração e escolha a opção a esquerda ToolTip&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT face=Verdana size=2&gt;Bom início de semana a todos.&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;STRONG&gt;&lt;EM&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;Fernando Cerqueira&lt;BR&gt;&lt;SPAN&gt;Atlas: Your code. Our passion.&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://linhadecodigo.com.br/CS2/aggbug.aspx?PostID=237" width="1" height="1"&gt;</description><category domain="http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/category/1002.aspx">ATLAS / AJAX</category><category domain="http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/category/1003.aspx">Novidades</category></item><item><title>Ajax - Imagens Animadas</title><link>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/2006/09/21/217.aspx</link><pubDate>Thu, 21 Sep 2006 21:35:00 GMT</pubDate><guid isPermaLink="false">60018a49-732a-46c4-9207-13bc44cc8285:217</guid><dc:creator>FCerqueira</dc:creator><slash:comments>0</slash:comments><comments>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/comments/217.aspx</comments><wfw:commentRss>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/commentrss.aspx?PostID=217</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Quando estamos utilizando AJAX normalmente precisamos de imagens animadas para dar uma aparência mais profissional para nossa aplicação enquanto é executado o processo no servidor.&lt;BR&gt;&lt;BR&gt;Para facilitar a escolha destas imagens já existe alguns site bem interessantes....&lt;BR&gt;&lt;BR&gt;Um bem simpático que permite você escolher cores e formatos esta em :&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;A href="http://www.ajaxload.info/"&gt;&lt;FONT face=Verdana size=2&gt;http://www.ajaxload.info/&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp; v&lt;FONT face=Verdana size=2&gt;ale Apena dar um conferida.&lt;BR&gt;&lt;BR&gt;Se você deseja algo pronto pode dar uma olhada também&amp;nbsp;em :&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;A href="http://www.napyfab.com/ajax-indicators/"&gt;&lt;FONT face=Verdana size=2&gt;http://www.napyfab.com/ajax-indicators/&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp; e&lt;FONT face=Verdana size=2&gt; escolher sua Imagem.&lt;BR&gt;&lt;BR&gt;Grande Abraço&lt;BR&gt;Fernando Cerqueira&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://linhadecodigo.com.br/CS2/aggbug.aspx?PostID=217" width="1" height="1"&gt;</description><category domain="http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/category/1002.aspx">ATLAS / AJAX</category><category domain="http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/category/1003.aspx">Novidades</category></item><item><title>Atlas ToolKits - New Release 14/09</title><link>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/2006/09/20/210.aspx</link><pubDate>Wed, 20 Sep 2006 03:30:00 GMT</pubDate><guid isPermaLink="false">60018a49-732a-46c4-9207-13bc44cc8285:210</guid><dc:creator>FCerqueira</dc:creator><slash:comments>0</slash:comments><comments>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/comments/210.aspx</comments><wfw:commentRss>http://linhadecodigo.com.br/CS2/blogs/fcerqueira/commentrss.aspx?PostID=210</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Nesta segunda foi publicado um &lt;STRONG&gt;novo release do Atlas Toolkit&lt;/STRONG&gt;. &lt;BR&gt;&lt;BR&gt;Nesta versão Release &lt;STRONG&gt;60914 Production&amp;nbsp; temos 3 novos controles&lt;/STRONG&gt; que passaram para produção :&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Animation&lt;/FONT&gt;&lt;/STRONG&gt; -&amp;nbsp;Um Extender super completo controle para dar poder de animação e efeitos . A lista de possíveis efeitos é enorme e mereceu uma documentação completa e Walkthroughs.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;NoBot&lt;/STRONG&gt;&lt;/FONT&gt; -&amp;nbsp; Um controle do tipo captacha Like, ele evita que sucessivos post-backs sejam processados sem que seja avisado de uma possível intenção de ataque por robot.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;Slider&lt;/STRONG&gt;&lt;/FONT&gt; -&amp;nbsp; Um simpático controle deliszante de graduação para as mais diversas utilidades.&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;U&gt;A nossa equipe esta trabalhando firme para ter novos controles!,&lt;/U&gt; Foi feito uma reestruturação da arvore de pastas do projeto, tornando mais fácil o controle da qualidade e&amp;nbsp;testes dos novos controles.&lt;BR&gt;&lt;BR&gt;Uma coisa legal é que&lt;STRONG&gt; usamos o Team System para tudo&lt;/STRONG&gt; , sendo uma demonstração clara de como podemos ter equipes distribuídas por todo o mundo e os coordenadores estarem controlando e sabendo de tudo que esta acontecendo no projeto!&lt;BR&gt;&lt;BR&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;A versão de 14/09 Release 60914 Production pode ser baixada em :&lt;BR&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;A href="http://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=AtlasControlToolkit"&gt;&lt;FONT face=Verdana size=2&gt;http://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=AtlasControlToolkit&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face=Verdana&gt;Uma boa semana a todos,&lt;BR&gt;&lt;BR&gt;&lt;SPAN&gt;&lt;STRONG&gt;&lt;EM&gt;Fernando Cerqueira &lt;/EM&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;STRONG&gt;&lt;SPAN&gt;&lt;EM&gt;&lt;BR&gt;&lt;FONT face=Verdana size=2&gt;Atlas: Your code. Our passion.&lt;/FONT&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN&gt;&lt;FONT face=Verdana&gt; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://linhadecodigo.com.br/CS2/aggbug.aspx?PostID=210" width="1" height="1"&gt;</description><category domain="http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/category/1002.aspx">ATLAS / AJAX</category><category domain="http://linhadecodigo.com.br/CS2/blogs/fcerqueira/archive/category/1003.aspx">Novidades</category></item></channel></rss>