sexta-feira, 8 de maio de 2009

Mais sobre meta tag IE8: App_Themes

Após o meu post anterior sobre a tag X-UA-Compatible do IE8 comecei a verificar que em algumas páginas o comportamento era igual ao de uma página que não teria a tag. Vendo um pouco mais além, verifiquei que em algumas páginas o ASP.NET colocou duas tags antes da tag tag X-UA-Compatible. Elas são justamente as tags dos arquivos do App_Themes que são colocados antes do PreRenderComplete. Para contornar este problema é necessário que a tag tag X-UA-Compatible seja removida de onde está e colocado como primeira tag dentro do Head. Primeiro temos que criar em cada página o evento PreRenderComplete. Pra evitar de fazermos em cada uma das páginas manualmente podemos adicionar este evento a página no arquivo Global.asax conforme abaixo:

protected void Application_PreRequestHandlerExecute(object sender, EventArgs e)

{

 Page p = this.Context.Handler as Page;

 if (p != null)

 {

  p.PreRenderComplete += new EventHandler(p_PreRenderComplete);

 }

}

Após isto criamos este novo evento que buscará o header da página, tentará encontrar o tag que precisamos, removerá de onde estiver e colocará como primeiro elemento. Segue o código abaixo:

protected void p_PreRenderComplete(object sender, EventArgs e)

{

 Page page = sender as Page;

 if (page.Header != null)

 {

  var ctrl = page.Header.Controls.Cast<Control>().FirstOrDefault(

   c => c is HtmlMeta && ((HtmlMeta)c).HttpEquiv == "X-UA-Compatible");

 

  if (ctrl != null)

  {

   page.Header.Controls.Remove(ctrl);

   page.Header.Controls.AddAt(0, ctrl);

  }

 }  

}

Senão ficou bem formatado é porque usei a funcionalidade de postagem por e-mail do Blogger, que pode não ser 100% igual ao post normal. Enjoy

terça-feira, 5 de maio de 2009

Firebug no Silverlight?

Pois é, o título nos deixa um pouco curiosos, mas na verdade não é bem isso. É melhor que isso. O Holandes Koen Zwikstra criou uma aplicação muito interessante. O nome é Silverlight Spy. A aplicação é em parte um browser, a diferença é que com uma vasta gama de opções é possível fazer engenharia reversa nas aplicações carregadas. Isso mesmo, analizar o código fonte e tudo o mais que encontrasse dentro do pacote *.zap da aplicação. O Silverlight Spy tem opção para alterar on the fly as propriedades do aplicativo como se estivesse manipulando pelo Blend. Ainda é possível fazer rastreamento das requisições a internet que o aplicativo faz bem como navegar por toda a árvore de controles do Xaml. Ainda possui o recurso de fazer uso do .NET Reflector instalado na máquina do usuário para visualizar diretamente dentro da DLL do aplicativo. Esta ferramenta nos possibilita fazer uma grande análise de cada aplicação Silverlight sem necessitar propriamente baixar o código e executar em uma IDE. Melhor ainda que é compatível com Silverlight 3.

segunda-feira, 27 de abril de 2009

Silverlight 3 - Primeiro Demo

Acabo de publicar meu primeiro demo em Silverlight 3. Ele está publicado aqui. Nele eu utilizo grande parte das novidades do Silverlight 3 que ainda está por vir. Vale lembrar que ele ainda está em versão beta e muita coisa ainda pode mudar. Aconselho primeiro atualizar o plugin do seu browser aqui e reinicia-lo antes de executar o Demo. Foi utilizado o template padrão do Navigation Framework, utilizei a funcionalidade de UriMapping disponibilizando assim recursos de Deep Linking e SEO. Incluí dois simples Pixel Effects aplicados a uma imagem, o DropShadow e o BlurEffect. O vídeo utilizado nesta parte do demo pode ser visto aqui. Também pode ser visto aplicação de Out Of Browser, tratamento de Exception com ChildWindow e a integração do histórico do Browser.