sábado, 7 de fevereiro de 2009

Triste - Até mais amigo


Em uma grande fatalidade, Solon Henrique, o Cavacava, é mais um amigo que se vai. Descanse em paz meu brother. Você está nos nossos corações.

quarta-feira, 4 de fevereiro de 2009

Registrar script em páginas com UpdatePanel

No ASP.Net podemos registrar scripts facilmente em um Postback atráves do método RegisterClientScriptBlock da classe Page no pacote System.Web.UI, ex.:

Page.RegisterClientScriptBlock("clientscript", "alert('Teste');");

Porém quando trabalhamos com UpdatePanel esse recurso "deixa" de funcionar, pois a página não é carregada totalmente.

Para resolver esse problema foi criado o método RegisterClientScriptBlock na classe ScriptManager, que assim como a classe Page está no pacote System.Web.UI.

Veja um exemplo:

ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "clientscript", "alert('Teste');", true);

terça-feira, 3 de fevereiro de 2009

C# - Inner Class

Assim como o Java, o C# também nos permite trabalhar com o conceito de Classes Internas (Inner Class).

Inner Class são vantajosas vistas pelo lado de sua "relação especial" com a classe externa. Para traçarmos tal relação imagine que esteja criando uma classe e identifique no meio do percurso funcionalidades/eventos únicos e exclusivos dessa classe. Existem formas simples e rápidas de resolvermos esse problema (como por exemplo criar uma nova classe no projeto), porém uma forma "orientadamente" correta de se fazer seria utilizando as classes internas, organizando de forma mais clara a classe externa e o projeto em si.

Na prática vamos imaginar a seguinte situação: você está construindo a classe Aluno. Uma série de eventos são acionados por essa classe tendo em vista o período em que o aluno está na Faculdade. Esses eventos estão intimamente ligados a classe Aluno, podendo assim ser caracterizado como uma nova classe somente para tratamentos desses eventos. Mas, contudo, todavia, no entanto, entretanto... (hehe) esta classe de eventos não é uma entidade no contexto do projeto e sim apenas para o Aluno.

Vamos ao código: (Clique na imagem abaixo para ampliar)


Viu só como é simples? parece confuso no começo, mas depois tudo fica mais claro.

Para finalizar é notório que a classe de eventos não existe por sí só, ela é totalmente dependente da classe Aluno, podendo ser definida como um membro da classe externa.