Artigo sobre Master Pages - partes 2 e 3

Dando continuidade ao artigo Desvendando as Master Pages - Parte 1, foram publicadas, no site do BrDevelopers, as partes 2 e 3 desta série de artigos. Na parte 2 é mostrado como podemos acessar controles de uma Master Page a partir de uma página de conteúdo e, na parte 3, como que se carrega uma Master Page em tempo de execução. Leiam e deixem suas opiniões!

Desvendando as Master Pages - Parte 2
Desvendando as Master Pages - Parte 3

Ricardo Oneda

Para refletir

Não costumo colocar aqui neste espaço assuntos não técnicos, mas abro exceção quando é alguma coisa que valha a pena compartilhar e que possa trazer benefícios a todos. O trecho abaixo é de uma entrevista de um economista chamado Eduardo Giannetti, dada à Folha de S. Paulo de hoje, dia 27/11/2005, e é basicamente sobre como características da sociedade brasileira influenciam no desenvolvimento econômico e social do país.

Destaco o seguinte trecho:

Folha - Você acha que essa linha de comportamento é uma característica difusa da sociedade brasileira ou há, digamos, picos de responsabilidade no governo, nas elites e em alguns setores sociais?
Giannetti - Meu ponto básico é que os governantes não são tão diferentes do resto da sociedade, como em muitas vezes nós gostamos de acreditar. Nós os elegemos e eles nos representam porque nós os elegemos. A idéia de que o problema no Brasil são os políticos é totalmente furada. Lembro-me da época do impeachment do Collor, eu dava curso na USP. Meus alunos foram às ruas com caras pintadas exigindo ética na política e o impeachment do presidente. Quando chegou a hora da prova, esses mesmos alunos começaram a colar desavergonhadamente. Será que as pessoas não ligam as pontas? A pessoa que está colando na prova da faculdade, quando tiver a chance em Brasília, vai meter a mão no Orçamento e vai encontrar alguma racionalização para justificar para si mesmo o que está fazendo sem se sentir muito mal.

Isso explica muita coisa...

A entrevista completa pode ser lida em (para assinantes do UOL): http://www1.folha.uol.com.br/fsp/dinheiro/fi2711200517.htm

Ricardo Oneda.

TechEd Brasil 2005

Na próxima semana, entre os dias 29 de novembro e 01 de dezembro, acontecerá, em São Paulo, o TechEd Brasil 2005, que é o maior evento de tecnologia Microsoft. Nesta edição, as principais atrações são os lançamentos do Visual Studio 2005 e SQL Server 2005, além, é claro, de inúmeras palestras distribuídas por 7 salas - o problema será escolher qual ver.

Além de tudo isso, haverá também uma área destinada às comunidades, onde alguns MVPs (entre os quais, este que vos escreve) estarão presentes para conversar com os participantes do evento. Será uma ótima oportunidade para rever os amigos e para conhecer pessoalmente aqueles com os quais só temos contato "virtual". Se você for ao TechEd, não deixe de nos visitar!

Ricardo Oneda.

Procedimentos de desinstalação de versões Beta do Visual Studio 2005

Para aqueles que vão instalar a versão final (ou RTM - Release To Manufacturing) do Visual Studio 2005 ou Express, mas possuem alguma versão Beta ou CTP (Community Technology Preview) instalada, é importante seguir uma ordem pré-determinada de desinstalação ou então executar um aplicativo disponibilizado pela Microsoft para esta tarefa, conforme explicado no artigo Uninstalling Previous Versions of Visual Studio 2005.

Mas e se você já desinstalou as versões anteriores em uma ordem diferente da necessária? Provavelmente está enfrentando problemas de instalação da versão final, ou então a instalação foi feita sem problemas, mas você não consegue executar o software. Para esses casos existem outras ferramentas que podem ajudá-lo no reparo do problema, sem ter a necessidade de reinstalar os Betas para depois desintalá-los na ordem correta. O link abaixo contém um material bem completo e irá ajudá-lo a corrigir o problema:

Uninstalling previous betas to prepare for VS 2005 and .NET Framework 2.0 RTM

Ricardo Oneda.

Google compra Amazon.com

O Google e a Amazon.com se fundiram. Combinando a tecnologia de buscas do Google e o mecanismo de recomendação social da Amazon, as duas companhias criaram o Googlezon, um serviço que permite a personalização total e automática de conteúdos, notícias e propagandas para os seus usuários. O Google pretende também combinar os recursos do Blogger, do GMail e do Google News - mais o sistema de recomendação da Amazon - para criar o Google Grid, uma plataforma universal que serve para os usuários armazenarem e compartilharem informações. Tudo isso faz parte do projeto EPIC - Evolving Personalized Information Construct, um sistema próprio de categorização que filtra e divulga as notícias. Usuários de todo o mundo poderão contribuir com novas notícias e dados, sendo recompensados com uma pequena fatia da receita de publicidade do Google, dependendo da popularidade da contribuição.

Não precisa ficar preocupado. Nada do que você leu no parágrafo anterior aconteceu. Ainda. Mas é o que pode acontecer em um futuro bem próximo, entre os anos de 2008 e 2014, pelo menos segundo um vídeo criado por dois jornalistas norte-americanos. Nesse vídeo, o Google se torna tão poderoso que a mídia e os veículos de comunicação como conhecemos hoje não existiem mais. É claro que tudo isso não passa de especulação (será?), na maioria das vezes sensacionalista, mas é interessante notar como uma empresa de tecnologia consegue atrair tanto a atenção. Além do mais, o vídeo é bem interessante e dá a sensação de que estamos fazendo uma viagem no tempo.

Ricardo Oneda.

Novidades do .NET 2.0: SQL Cache Dependency

No ASP.NET 1.X, era possível criar dependências para valores armazenados no objeto Cache do namespace System.Web.Caching. A invalidação do Cache poderia ficar associada a vários eventos, como após um determinado período de tempo, mudança em um ou mais arquivos e/ou diretórios ou mudança em um valor de outra chave de cache. Sempre que um desses eventos ocorresse, o cache seria inutilizado. Era possível até mesmo informar um delegate que deveria ser chamado quando o evento de invalidação do cache ocorresse.

Uma grande melhoria do ASP.NET 2.0 nesse campo foi a introdução da possibilidade de se criar uma dependência do Cache com o banco de dados SQL Server. Assim, sempre que algum dado for alterado no banco de dados, o cache é invalidado. Deste modo, é possível ter os benefícios de performance que o uso de cache propricia juntamente com dados sempre atualizados.

Referências
Improved Caching in ASP.NET 2.0
SqlCacheDependency Class (System.Web.Caching)
Walkthrough: Using ASP.NET Output Caching with SQL Server

Ricardo Oneda

Novidades do .NET 2.0: Cross-Page Postback


Na minha opinião, uma das grandes limitações do ASP.NET 1.X era a incapacidade de se fazer um post para outra página de forma simples. Existiam formas de se contornar tal limitação, como o uso de Response.Redirect() ou do Server.Transfer(), mas exigia um certo trabalho. No ASP.NET 2.0 essa limitação foi extinta graças a introdução da propriedade PostBackUrl. Basta configurar esta propriedade em algum controle que gera um post (como um botão) fornecendo o nome da página de destino e pronto. Caso ela não seja configurada, o post é feito para a própria página.

O conteúdo da página anterior pode ser acessado através da propriedade PreviousPage da classe Page, que também possui a nova propriedade IsCrossPagePostBack, que tem função semelhante à propriedade IsPostBack, velha conhecida do ASP.NET 1.X.

Referências:

Cross-Page Posting in ASP.NET Web Pages
Design Considerations for Cross Page Post Backs in ASP.NET 2.0

Ricardo Oneda

Novidades do .NET 2.0: mudanças na infra-estrutura do ASP.NET 2.0


Além de vários novos controles adicionados, as principais mudanças do ASP.NET  2.0 foram introduzidas em sua infra-estrutura. Mudanças drásticas foram feitas:

  • no modelo de codificação, no qual anteriormente havia uma relação de herança entre a página ASPX e o arquivo de código (code-behind), e agora faz uso de classes partial, ou seja, tanto a página ASPX quanto o código fazem parte da mesma classe, que são combinados em tempo de execução; isso também faz com que o arquivo code-behind fique mais claro e menor do que o modelo antigo;
  • na compilação: agora, o padrão do ASP.NET é compilar a aplicação em tempo execução. Isso implica em copiar os arquivos code-behind para o servidor. Entretanto, por questões de segurança e/ou privacidade, nem sempre podemos ou queremos enviar o código com toda nossa lógica para o servidor. Nestes casos, podemos utilizar o que foi chamado de Precompilation for Deployment, que consiste em pré-compilar o site em assemblies, que então serão copiados para o servidor. Este tipo de pré-compilação faz com que nem mesmo o código fonte de páginas ASPX fique disponível. Também foi desenvolvido um outro tipo de pré-compilação chamado In-Place Precompilation, cujo objetivo, é ganhar performance, já que não será necessária a compilação das página na primeira vez em que ela for solicitada, que é o que ocorre se não for feita a pré-compilação. Ambos os tipos de pré-compilação são feitos com o utilitário de linha de comando aspnet_compiler.exe;

Também vale citar as mudanças na estrutura do ViewState. O ViewState é uma técnica utilizada pelo ASP.NET para manter o estado de controles de uma página. Isso é feito através de um campo HIDDEN (oculto) da página chamado __VIEWSTATE e, dependendo de como fosse utilizado, poderia causar um sério problema de performance, pois seu tamanho poderia aumentar significantemente, o que aumentaria também o tamanho da página. Foram feitas alterações no formato de serialização deste campo, o que proporcionou a redução do seu tamanho em quase 50%, em um dos testes feitos.

Referências:

ASP.NET 2.0 Internals
ASP.NET Web Site Precompilation Overview
ASP.NET Page Class Overview
Speed Up Your Site with the Improved View State in ASP.NET 2.0

Ricardo Oneda

Novidades do .NET 2.0: Classes Partial


No .NET 2.0, foi introduzido o conceito de classes parciais (partial). Isso significa que a definição de uma classe pode ser dividida em vários arquivos distintos. Esta característica pode ser útil em projetos grandes, onde vários desenvolvedores trabalham sobre a mesma classe, ou então na alteração de código gerado automaticamente - por exemplo, nos proxys gerados para acesso a Web Services - pois assim o código pode ser gerado novamente e não se tem que fazer as alterações outra vez, já que as customizações estarão em outro arquivo. Isso sem falar que todo novo modelo de código do ASP.NET 2.0 utiliza classes partial.

Referências:

Create Elegant Code with Anonymous Methods, Iterators, and Partial Classes
Partial Class Definitions

Ricardo Oneda