Agosto 2004 - Posts

Descanso finalmente!
30-8-2004 12:13
Bom, hoje vou (finalmente) de férias! Bem, na verdade não me vou ausentar da ilha, mas vou aproveitar para descansar aqui até ao fim da semana, pelo que não me voltarão a ver aqui até ao próximo sábado! Até sábado!
por Luis Abreu | 7 comment(s)
Filed under:
C++ compiler refresher
29-8-2004 18:49

oh yeah baby!!!! Aqui podem encontrar a última versão do compilador de C++. Ao que parece já suporta as últimas alterações da especificação (como por exemplo value type reference semantics)...portanto, convém obtê-lo o mais rápido possível e começar já a escrever Managed C++ :)

por Luis Abreu | with no comments
Filed under: ,
C# e Generics
29-8-2004 10:42
Este fim de semana tive a oportunidade de utilizar pela primeira vez os Generics utilizando o C#. O resultado destas experiências foi um novo artigo que já foi adicionado ao site.
por Luis Abreu | 4 comment(s)
Filed under: ,
Guia de migração para Managed C++ V2
25-8-2004 23:04

O Stanley B. Lippman publicou o guia de migração para a nova versão de Managed C++. Um documento muito interessante e completo.

por Luis Abreu | with no comments
Filed under: ,
Novo artigo
23-8-2004 0:05

Devo admitir que a chegada às férias deixa-me com mais tempo para fazer as coisas que gosto. Uma dessas coisas é escrever sobre programação. Então resolvi adicionar mais um artigo da saga Programação COM em .Net ao site. Ele está aqui. Este artigo apenas efectua a introdução à construção de classes .Net para serem consumidas por objectos COM. Num próximo artigo irei abordar e aprofundar este tópico.

Posso afirmar que a escrita destes artigos simples para o site tem-me dado bastante gozo. O que eu queria saber era:

  • o que acham dos artigos?
  • quais as áreas que preferiam ver referidas nestes artigos?

Bom, agora, vou ter mesmo de ir de férias :)

por Luis Abreu | 5 comment(s)
Filed under:
Artigo interessante sobre algumas modificações existentes no novo asp.net
20-8-2004 13:05
Hoje, enquanto libertava o stress decorrente de mais uma sessão de debugging relativa à utilização de código Interop, estive a ler este artigo sobre algumas das novidades existentes na nova versão da plataforma. Agora está na hora de voltar ao stress :)
por Luis Abreu | with no comments
Filed under: ,
Novo artigo e férias à vista!!!
19-8-2004 23:52

Acabei de adicionar um novo artigo ao site. Desta vez apresento algumas ideias relativas à utilização do novo mecanismo de callback inserido na nova framework. Como sempre, o código encontra-se a aguardar autorização na secção de downloads. A grande novidade desta vez é que (finalmente) consegui acertar no html final! Pois é Ricardo, desta vez não vais ter de andar a corrigir o layout final :)

Gostava que a Microsoft tivesse uma documentação melhor nos seus produtos beta...é uma grande seca estar à procura de informação e não encontrar nada de decente...enfim, bem sei que ainda é beta, mas...

A grande verdade é que estou desejoso de chegar à próxima semana. Isto deve-se apenas a um facto muito importante: férias!!!

por Luis Abreu | 3 comment(s)
Filed under: , ,
STL.Net
17-8-2004 13:22
Pois é: parece que o STL vai ser modificado de forma a poder ser utilizado em .Net (através do Managed C++, claro). O Stanley Lippman começa  uma série sobre o STL.Net que irá estar disponível na versão 2005 do Visual Studio.
por Luis Abreu | with no comments
Filed under: ,
Novo artigo: Programação COM em .Net – parte III
16-8-2004 23:00

A saga da programação COM continua: desta vez é apresentada a interacção entre managed e unmanaged code através da linguagem de programação Managed C++. Esta é talvez a melhor linguagem para efectuar a interacção entre managed e unmanaged code. O artigo encontra-se aqui e o sample que acompanha o artigo encontra-se à espera de aprovação na secção de downloads.

Infelizmente o espaçamento ficou completamente trocado devido à utilização do Dreamweaver (tenho de arranjar um editor decente para contruir estes artigos...). Engraçado que o preview mostrava tudo de forma correcta; contudo a publicação destruiu por completo o layout (parece-me que algo de mau ocorre entre o preview e o retorno à vista de edição...)

por Luis Abreu | 8 comment(s)
Filed under: ,
GOT C# 7
14-8-2004 17:10

Parece que último item desta coluna ninguém participou :( Contudo, fica aqui a resposta desse item. Infelizmente o excerto de código apresentado não compila.Isto deve-se a uma particularidade da linguagem C#. Sempre que uma propriedade de uma estrutura é utilizada como destino  numa operação de atribuição, então a expressão associada à propriedade tem de resultar numa variável; se o resultado dessa espressão for considerado um valor, então ocorre um erro de compilação.

Esta semana vou aproveitar para colocar uma questão que apareceu na página do Brad Abrams e em seguida na página do Ian Griffith. Sugere-se a tentativa de uma resposta antes da consulta da solução :)

Ora bem, qual o resultado esperado a partir da execução do seguinte código:

		public class Base 
		{ 
			public virtual void DoCleanUp() 
			{ 
				Console.WriteLine("Do Base's Cleanup"); 
			} 
			
			~Base() 
			{ 
				DoCleanUp(); 
			} 
		}
		
		public class Derived : Base 
		{ 
			public override void DoCleanUp() 
			{ 
				Console.WriteLine("Do Derived Cleanup"); 
			} 
		
			~Derived() 
			{ 
				DoCleanUp(); 
			} 
		} 
		
		class Program { 
			static void Main(string[] args) { 
				Derived d = new Derived(); 
				d = null; 
				GC.Collect(); 
				Console.Read(); 
			} 
		} 
		
por Luis Abreu | with no comments
Perspectivas de mercado
4-8-2004 18:32

Hoje dei comigo a pensar sobre  a criação de uma empresa. Contudo, não sei se actualmente existem grandes hipóteses para as pequenas empresas. Especialmente se tivermos em conta o ramo (desenvolvimento). Na vossa opinião, como é que está o mercado (a nível de programação)? Será que existem projectos para serem executados através de teletrabalho? E já agora, quanto é que um programador recebe em média para desenvolver aplicações?

Como podem verificar, o meu trabalho actual já não me está a satisfazer muito (quer a nível de desafios - que, na minha opinião, são muito importantes - quer a nível de ordenado)...

por Luis Abreu | 20 comment(s)
Filed under:
The .NET Developer's Guide to Windows Security online
4-8-2004 18:24

Não sei se já conhecem o link...de qualquer forma, cá fica:

http://pluralsight.com/wiki/default.aspx/Keith.GuideBook.HomePage

Ainda por cima de graça e sem prejudicar ninguém! (ou seja, podem ler à vontade que é legal :) ). Bem, tendo em atenção o nome do escritor, deve ser muito bom!

por Luis Abreu | with no comments
Filed under:
Novidades e investigação
4-8-2004 14:09

Nos últimos dias tenho estado a ler vários artigos sobre managed C++. Apesar de ainda estar a desenvolver em C#, não posso esconder que sinto-me tentado "largar tudo" e dedicar-me apenas ao C++. Actualmente estou a tentar encontrar o máximo de informação possível sobre Interop com COM. A novidade aqui reside no facto de, segundo todos os artigos que encontrei até agora, o Interop efectuado a partir de C++ ser mais eficiente do que o que é utilizado noutras linguagens. Claro que podemos utilizar o tlbimp à mesma e gerar wrappers à volta de obejctos COM como fazemos noutras linguagens; contudo, a vantagem do C++ reside no facto de podermos utilizar directamente no nosso código instâncias desses objectos COM (claro que o compilador tem de efectuar a transição entre managed e unmanaged code; só que, ao que consta, esta transição é muito mais fácil/rápida). O único problema que detectei até agora reside no facto de não podermos declarar uma instância do tipo smart pointer (gerados através do #import)  numa classe managed...podemos apenas declará-los no interior de um método. Por outras palavras, se quisermos utilizar instâncias de objectos COM no interior de uma classe managed temos de utilizar mesmo apontadores! (nada de mais; apenas um pouco mais de trabalho a criar o apontador e construir um destructor em que libertamos o elemento- que, se não me engano, é automaticamente transformado no método Dispose do interface IDisposable).

Mesmo a nível de código managed, esta nova versão do C++ tem alguns pormenores que me chamaram a atenção. Actualmente ainda continuo na minha fase de estudo. Espero escrever (num futuro próximo) um artigo sobre as novidades do managed C++.

 

por Luis Abreu | with no comments
Filed under: ,
Novo artigo sobre COM - parte II
2-8-2004 23:29

Acabei de colocar online um novo artigo da série de programação COM em .Net. Desta vez abordo alguns aspectos que relacionados com a utilização de objectos COM (interfaces VTBL vs IDispatch), com a libertação explicita de recursos e com a utilização de apartments. Espero que gostem.

por Luis Abreu | 12 comment(s)
Filed under: ,
GOT C# 6
1-8-2004 22:21

Na sequência do que tem sido feito nos números anteriores, vamos começar por fornecer as respostas às questões do item anterior. Relativamente ao primeiro exemplo, não há qualquer problema com o código pois em C# o acesso é definido a nível da classe e não ao nível do objecto. Devido a isto, é possível termos um objecto a aceder aos campos privados de outro objecto (se bem que esta não seja uma estratégia muito boa!).

Por outro lado, o segundo programa contém um erro relacionado com o facto de estarmos a aceder a um membro protegido da classe Class1. Isto deve-se a uma regra que diz (mais ou menos) o seguinte: o acesso a um membro protegido (protected)  fora do texto da classe deve ser sempre feito através de uma classe derivada.

Para esta semana, interessa saber qual o resultado proveniente do seguinte código:

struct Point
{
private int _x;
private int _y;
public int X
{
get{ return _x; }
set{ _x = value;}
}
public int Y
{
get{ return _y; }
set{_y = value; }
}
}
struct
Rectangle

{
private Point _p1;
private Point _p2;
public Point P1
{
get { return _p1; }
set { _p1 = value; }
}
public Point P2
{
get { return _p2; }
set { _p2 = value; }
}
}
class Program{
static void Main( string[] args )
{
Point p1; p1.X = p1.Y = 1;
Rectangle rect;

rect.P1 = p1;
rect.P2.X = 2;
rect.P2.Y = 2;
}
}

Até para a semana!

por Luis Abreu | with no comments
Filed under: ,