Para quem odeia escrever código VB como eu aqui ficam dois links onde podem escrever código C# e converter para VB. Apesar de tudo o Mundo não é perfeito e algumas coisas dão erros de conversão, como por exemplo listas tipadas, contudo não deixam de dar imenso jeito.
http://www.developerfusion.co.uk/utilities/convertvbtocsharp.aspx
http://www.kamalpatel.net/ConvertCSharp2VB.aspx
sexta-feira, março 16, 2007
terça-feira, março 13, 2007
const VS static readonly
Qual será a diferença entre uma variável constante e uma variável só de leitura...aparentemente não há diferença? Pois é mas há diferença, uma variável const fica com o seu valor definido em compile time e uma variável static readonly fica com o seu valor definido em run time. O que isto provoca? As variáveis const são mais optimizadas enquanto que as variáveis static readonly são mais flexíveis. Imagine-se o cenário da figura seguinte:

No caso de se ter de alterar a variável 'a' é necessário recompilar tanto o Assembly 1 como o Assembly 2, no caso de se alterar a variável 'b' apenas é necessário recompilar o Assembly 1 e não o Assembly 2 que referência o Assembly 1.

No caso de se ter de alterar a variável 'a' é necessário recompilar tanto o Assembly 1 como o Assembly 2, no caso de se alterar a variável 'b' apenas é necessário recompilar o Assembly 1 e não o Assembly 2 que referência o Assembly 1.
domingo, março 11, 2007
O bom português
quarta-feira, março 07, 2007
Apresentação na semana informática do ISEL
Apesar de ter começado de forma conturbada, como não poderia deixar de ser...( o portátil tinha de deixar de funcionar exactamente na altura da apresentação) acho que contudo fizemos uma apresentação bastante interessante. Infelizmente o Pedro não pôde ir logo a responsabilidade da apresentação passou para mim e para o Nuno.
No final, e apesar do avançar da hora, conseguimos que ninguém saísse do auditório durante a apresentação e que ainda tivessem vontade de pôr as suas questões relativamente ao tema exposto. O link para consultar informação do evento é: http://www.deetc.isel.ipl.pt/sinfo07/
No final, e apesar do avançar da hora, conseguimos que ninguém saísse do auditório durante a apresentação e que ainda tivessem vontade de pôr as suas questões relativamente ao tema exposto. O link para consultar informação do evento é: http://www.deetc.isel.ipl.pt/sinfo07/
domingo, março 04, 2007
Exemplos XSLT
Apesar de já conhecer o conceito/tecnologia à algum tempo, só de à pouco tempo para cá o comecei a estudar com mais cuidado. Quanto mais aprendo mais fico surpreendido com a utilidade destas transformações, simplificam-nos bastante a vida em algumas tarefas, que de outra maneira seriam bastante demoradas e a manutenção seria muito mais complicada. O site seguinte tem alguns exemplos interessantes http://www.xmlpitstop.com/StyleSheetCentral/SSC_Main.aspx.
sábado, fevereiro 24, 2007
Corrida nocturna
Depois de mais um dia de trabalho mentalmente cansativo o que me apetecia mesmo era dar umas braçadas para relaxar, mas quando chego à natação espanto o meu, a piscina estava fechada porque ía haver um meeting.
Vou para casa e como não tinha descarregado as energias, decidi ir fazer uma pequena corrida, 20:40 saiu de casa e vou em direcção ao paredão. Ao chegar ao paredão o ar tornou-se dificilmente respirável para quem estava em esforço físico, a humidade era imensa. Mas esta é a melhor parte, porque estava tanta humidade? Apesar de estar maré baixa, as ondas elevavam-se a uma altura incrível e em quase todos os sítios cobriam o paredão de água, é algo realmente notável e espetacular a força que o mar demonstra.
Quase uma hora depois chego a casa, cansado e pronto a tomar um merecido banho relaxante.
Vou para casa e como não tinha descarregado as energias, decidi ir fazer uma pequena corrida, 20:40 saiu de casa e vou em direcção ao paredão. Ao chegar ao paredão o ar tornou-se dificilmente respirável para quem estava em esforço físico, a humidade era imensa. Mas esta é a melhor parte, porque estava tanta humidade? Apesar de estar maré baixa, as ondas elevavam-se a uma altura incrível e em quase todos os sítios cobriam o paredão de água, é algo realmente notável e espetacular a força que o mar demonstra.
Quase uma hora depois chego a casa, cansado e pronto a tomar um merecido banho relaxante.
sexta-feira, fevereiro 23, 2007
Cast dentro do where em SQL
Este problema foi descoberto por um colega meu (obrigado Sérgio), mas como achei interessante vou aproveitar o mail que ele me enviou para explicar o problema.
Ao fazer um SELECT em que seja usado um CAST no WHERE, separar em dois selects: um primeiro que faz todas as outras validações e guarda o resultado numa variável do tipo tabela, e outro que pega nesses resultados e aplica a condição com o CAST. Ou seja, em vez de:
SELECT A.ID, A.Tipo, A.Valor
FROM A
WHERE A.Tipo = 'TipoDeValorSeguroParaFazerCast'
AND CAST(A.Valor AS FLOAT) > 0
passar a:
DECLARE @TABELA_TEMP table (ID bigint, Tipo varchar(30), Valor varchar(50));
INSERT INTO @TABELA_TEMP
SELECT A.ID, A.Tipo, A.Valor
FROM A
WHERE A.Tipo = 'TipoDeValorSeguroParaFazerCast'
SELECT ID, Tipo, Valor
FROM @TABELA_TEMP
WHERE CAST(A.Valor AS FLOAT) > 0
Assim evitam-se erros obscuros de CAST em algumas situações, em que se fazia CAST a tudo, inclusive entradas que não obedeciam a 'TipoDeValorSeguroParaFazerCast'... Claro que isto não é assim tão simples, e provavelmente só acontece em combinações específicas de índices e joins entre tabelas, etc., mas como regra geral é preferível prevenir.
terça-feira, fevereiro 20, 2007
Quem paga é o mexilhão
Segunda-feira, véspera de feriado, vou ter um dia calmo pensava eu...não podia estar mais enganado! Chego ao trabalho e tinha um mail da chefia onde quase era chamado de incompetente, onde entre outras coisas se dizia que já tinha dado um bug por corrigido 2 ou 3 vezes e o chato do bug não era exterminado.
"OK acalma-te, hoje nem direito a café tens". Começo a fazer uma análise detalhada dos problemas expostos e cheguei a duas conclusões. Para quem sabe alguma coisa de base de dados facilmente percebe os problemas:
"OK acalma-te, hoje nem direito a café tens". Começo a fazer uma análise detalhada dos problemas expostos e cheguei a duas conclusões. Para quem sabe alguma coisa de base de dados facilmente percebe os problemas:
- Uma unique key significa que um dado campo não pode ter valores repetidos, se tentarmos inserir valores repetidos dá erro;
- Não se pode modificar ou remover algo que já não existe, se o tentarmos fazer nenhuma alteração obtemos.
quinta-feira, fevereiro 08, 2007
C# Lambda expressions
As Lambda expressions são uma nova adição disponível no C# 3.0. Após ler vários artigos espalhados pela internet, vejo que a maior parte deles incara as lambda expressions como simples syntactic sugar, sendo os próprios exemplos bastante redutores. Deixo aqui um link para um artigo que eu acho que se destaca, e que tem de ser lido com algum cuidado para se conseguir "digerir" toda a informação inerente. http://blogs.msdn.com/ericlippert/archive/2007/01/10/lambda-expressions-vs-anonymous-methods-part-one.aspx Este é o primeiro artigo de um conjunto de 3, nos quais se vão introduzindo progressivamente as potencialidades das lambda expressions.
terça-feira, fevereiro 06, 2007
Até breve a mais um
Parece que os meus amigos, por um ou outro motivo, começaram com a febre de emigrar. Primeiro o Gonçalo que foi trabalhar para os paquetes, depois a Anocas que foi trabalhar para a World Disney e agora finalmente o Ricardo foi para o Brasil para se casar. A este ritmo daqui a 2-3 anos fico sem amigos...
Boa sorte para todos vocês!
Boa sorte para todos vocês!
Subscrever:
Mensagens (Atom)
