Hoje dei por algo que considero uma falha no asp .NET 2.0. Imagine-se que se tem uma master page muito simples parecida com o seguinte:
< div >
< asp:contentplaceholder id="place1" runat="server" / >
< asp:contentplaceholder id="place2" runat="server" / >
< /div >
...
E agora tem-se uma página que usa esta master page também muito simples:
<%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="~/MasterPage.master" CodeFile="Default.aspx.cs" Inherits="_Default" %>
< asp:content contentplaceholderid="place1" runat="server" id="p1" / >
< asp:content contentplaceholderid="place2" runat="server" id="p2"/ >
A falha é a seguinte todos os controlos em aspx desde que sejam runat="server" podem ser acedidos no code behind através do seu ID, porque raio os controlos do tipo asp:Content são diferentes de todos os outros e não podem ser acedidos? É necessário fazer algo do género:
< asp:content contentplaceholderid="place1" runat="server" id="p1" >
< asp:placeholder runat="server" id="este_e_visto" / >
< /asp:Content >
E pode-se agora aceder ao objecto "este_e_visto", para chegar ao simples objectivo de colocar conteúdo dentro do objecto asp:Content.
quinta-feira, maio 31, 2007
quarta-feira, maio 30, 2007
How To Design A Good API and Why it Matters
Já tinha este vídeo em queue à uma data de tempo mas só este fim-de-semana tive tempo para o ver http://video.google.com/videoplay?docid=-3733345136856180693. Apesar dos assuntos abordados devessem estar entranhado na pele de todos os programadores, aconselho vivamente todos a verem o vídeo, pois por um motivo ou outro acabamos por não seguir algumas destas regras, que a meu ver são bem úteis.
quinta-feira, maio 24, 2007
Drama na rotunda
Comecei esta semana a trabalhar num projecto novo que está a ser desenvolvido em Almada. Além do imenso trânsito que apanho e da distância que tenho de percorrer, mesmo à chegada do trabalho ainda tenho de enfrentar a pior rotunda que já vi. A dita cuja, uma rotunda com não mais de 2 metros de raio, bastante pequena, tem a porcaria de semáforos em todas as entradas e saídas. Bolas como é possível que algum visionário tenha visto utilidade em semáforos numa rotunda tão pequena e ainda por cima em todas as entradas e saídas, fechando os semáforos constantemente e todos ao mesmo tempo, qual a utilidade...criar ainda mais trânsito?
terça-feira, maio 15, 2007
Outputs dos web methods
Imaginemos que se tem um web method com a seguinte assinatura:
[WebMethod]
public void TestWS(out int va1, out double va2);
Ao criar uma web reference para esta classe (o nome da classe poderá ser ClassWS) como acham que é feita a chamada ao método apresentado? Provavelmente algo do género:
ClassWS ws = new ClassWS();
int var1;
double var2;
ws.TestWS(out var1, out var 2);
Pois é quem apostou nesta versão sinto muito mas não é um dos vencedores. Ao gerar a classe que faz wrapping, ao web service o método que é gerado para acesso a este método tem a seguinte assinatura:
public int TestWS(out double va2);
Desconhecia esta optimização, mas como é facil de verificar faz todo o sentido. Logo a chamada será algo do género:
ClassWS ws = new ClassWS();
int var1;
double var2;
var1 = ws.TestWS(out var 2);
[WebMethod]
public void TestWS(out int va1, out double va2);
Ao criar uma web reference para esta classe (o nome da classe poderá ser ClassWS) como acham que é feita a chamada ao método apresentado? Provavelmente algo do género:
ClassWS ws = new ClassWS();
int var1;
double var2;
ws.TestWS(out var1, out var 2);
Pois é quem apostou nesta versão sinto muito mas não é um dos vencedores. Ao gerar a classe que faz wrapping, ao web service o método que é gerado para acesso a este método tem a seguinte assinatura:
public int TestWS(out double va2);
Desconhecia esta optimização, mas como é facil de verificar faz todo o sentido. Logo a chamada será algo do género:
ClassWS ws = new ClassWS();
int var1;
double var2;
var1 = ws.TestWS(out var 2);
sexta-feira, maio 04, 2007
A prisão
Parece que a vai haver uma nova temporada de Prison Break, só que desta vez o Michael Scofield vai ser substituído por mim e a prisão vai ser a sede da caixa geral de depósitos.
Comecemos pela estrutura da prisão, um edifício em forma de cubo em que todos os andares são iguais e com todos os corredores iguais, independentemente do lado do cubo em que se esteja, ou seja, torna a fuga complicada. Passemos à cela, vulgo "local de trabalho", uma secretária com as dimensões aproximadas de 80cm x 100cm com caixa do computador, monitor, teclado, rato e ainda tem de sobrar um espacinho para as minhas folhas. Ao lado da minha cela está outra igualzinha à minha em que o monitor está separado do meu uns 4 dedos.
A minha pena era de 15 dias, aparentemente tão contentes com o meu comportamento logo...não não vou sair mais cedo como era espectável...vou ter ainda que fazer mais umas coisas o que leva a que tenha de estar cá mais tempo que espero que não seja muito mais porque a fuga está em preparação se assim for. Contudo hoje depois de andar aqui a amotinar as hostes parece que para a semana estão a pensar em mudar-nos para uma cela com melhores condições, assim espero.
Comecemos pela estrutura da prisão, um edifício em forma de cubo em que todos os andares são iguais e com todos os corredores iguais, independentemente do lado do cubo em que se esteja, ou seja, torna a fuga complicada. Passemos à cela, vulgo "local de trabalho", uma secretária com as dimensões aproximadas de 80cm x 100cm com caixa do computador, monitor, teclado, rato e ainda tem de sobrar um espacinho para as minhas folhas. Ao lado da minha cela está outra igualzinha à minha em que o monitor está separado do meu uns 4 dedos.
A minha pena era de 15 dias, aparentemente tão contentes com o meu comportamento logo...não não vou sair mais cedo como era espectável...vou ter ainda que fazer mais umas coisas o que leva a que tenha de estar cá mais tempo que espero que não seja muito mais porque a fuga está em preparação se assim for. Contudo hoje depois de andar aqui a amotinar as hostes parece que para a semana estão a pensar em mudar-nos para uma cela com melhores condições, assim espero.
Subscrever:
Mensagens (Atom)