Tuesday, September 19, 2006

VSTO 2005 SE Beta

Quem desenvolve para Office cliente, na versão 2003, conhece sem dúvida o VSTO 2005, as Visual Studio Tools for Office, que fazem com que o desenvolvimento para Office se pareça com desenvolvimento .Net. Este extra é interessante, uma vez que as interfaces e especificidades do COM em que a maior parte do Office cliente é baseado nem sempre são muito interessantes (como o facto de todos os add-ins partilharem o mesmo AppDomain).


Quem já começou a desenvolver para Office 2007, e quer beneficiar das potencialidades do VSTO e do novo interface utilizador do Office, usava até agora o VSTO "v3" - CTP de Junho. Estas tools têm agora uma nova versão, ainda em beta, a VSTO 2005 Special Edition (beta), que está sincronizada com o Office 2007 Beta 2 TR que acabou de sair. Esta versão desenvolve o que a v3 de Junho já incluía, como a programação para a Ribbon, desenvolvimento de (Managed) Add-in's e de Custom Task Panes.


Mais informações e download no site da MS ou no ServerSide.Net . É um admirável mundo novo. :-)


[Ps: o livro obrigatório para quem desenvolve com VSTO 2005 é o "Visual Studio Tools for Office: Using C# with Excel, Word, Outlook, and InfoPath", dos Eric's Carter & Lippert]


[Cross-Posted de http://www.arquitecturadesoftware.org/blogs/joaomartins]

Sunday, September 17, 2006

Quick Tip: Como desligar o BEEP em máquinas virtuais

Quando se usa quer o Virtual PC quer o Virtual Server,  e acontece um erro, o software gera um BEEP sonoro e desagradável, que tinha o hábito de desligar tirando o som do PC. Parece que afinal não sou só eu a ter esta queixa: existe um artigo da KB da Microsoft a dizer como desligar o som usando um de três métodos diferentes.

Aquele que produz resultados mais rapidamente é o seguinte:

C:\> net stop beep

[Cross-Posted de http://www.arquitecturadesoftware.org/blogs/joaomartins]

Saturday, September 16, 2006

WinImage

O WinImage é utilizado geralmente para extrair conteúdo de imagens ISO, sem obrigar a queimar um CD/DVD. A versão mais recente, 8.0, extende este tipo de funcionalidades a ficheiros VHD, ou seja, discos virtuais do Virtual PC ou Virtual Server: além de permitir extrair ficheiros de uma imagem (sem obrigar, portanto, a arrancar a máquina virtual), permite ainda injectar ficheiros numa VM.


Infelizmente, no entanto, esta última funcionalidade apenas é suportada para imagens FAT, e não para NTFS. :-(


Fica a meia recomendação.


[Cross-Posted de http://www.arquitecturadesoftware.org/blogs/joaomartins]

Quick Tip: Consolas Font

Nunca gostei de utilizar uma font como o Courier New para desenvolver, curiosamente uma font encomendada originalmente pela IBM na década de 50 para utilização em máquinas de escrever. Há talvez cerca de um ano troquei-a por uma Proggy Font, mas estas são pequenas demais para a resolução que utilizo.


Recentemente a Microsoft disponibilizou uma font mono-espaçada concebida para funcionar bem com ClearType em portáteis/LCD's, e especificamente para utilização em programação (até se autoinstala no Visual Studio). Um exemplo:

Consolas

O download está aqui.


[Cross-Posted de http://www.arquitecturadesoftware.org/blogs/joaomartins]

Thursday, September 14, 2006

TechEd Developers 2006 - Barcelona

Já faltam menos de dois meses para o TechEd, agora mesmo aqui ao lado em Barcelona. O ano passado foi a primeira vez que fui, e vi inúmeras sessões interessantes, desde BizTalk a Arquitectura, .Net 2.0, SQL 2005, etc. Este ano a agenda também promete, e vai ter apresentações de famosos como o Clemens Vasters, Scott "hanselminutes" Hanselman, Roy Osherove, David Chappell, Udi Dahan, Anders Hejlsberg, Ivar Jacobson, Beat Schwegler, Paul Andrew, Ted Pattison, Jan Tielens, Patrick Tisseghem, Ingo Rammer e Christian Weyer, Aaron Skonnard, Ron "Arccast" Jacobs ou Arvindra Sehmi.


Há uns 6 ou 7 anos atrás tive um professor que numa aula disse uma frase cara: "Nos dias de hoje, o ónus da empregabilidade está com a própria pessoa". É preciso dizer mais? :-)


No ano passado, muitos dos participantes tinham t-shirts alusivas à sua nacionalidade, e pessoalmente acharia piada se este ano fizessemos nós o mesmo. Se alguém estiver interessado em participar na ideia, diga-me qualquer coisa.


[Cross-Posted de http://www.arquitecturadesoftware.org/blogs/joaomartins]

Wednesday, September 13, 2006

BizTalk: novos whitepapers

Nos últimos dias têm saído alguns whitepapers muito interessantes sobre BizTalk, e que não posso deixar de referir:


BizTalk Server 2006 - Developer’s Troubleshooting Guide


133 páginas de informação, incluindo desde problemas genéricos, mapas, orquestrações, pipelines, schemas, profiling SQL, DTC, adaptadores, etc. Um clássico instantâneo, como se costuma dizer.


BizTalk Server 2004-2006 Comparative Adapter Study


Estudo a comparar o desempenho dos technology adapters do BizTalk, entre as versões 2004 e 2006. As melhorias na versão mais recente são claras, com destaque para o adaptador SMTP e nos adaptadores Ficheiro (UNC), HTTP, MQSeries e MSMQ para ficheiros de maiores dimensão.


Também foram disponibilizados dois documentos interessantes sobre BAM, talvez a funcionalidade mais sub-utilizada do BizTalk: BAM FAQ e Desenvolvimento com BAM (como fazer a instrumentação de aplicações nossas para o bus de eventos do BAM).


[Cross-Posted de http://www.arquitecturadesoftware.org/blogs/joaomartins]

Sunday, September 10, 2006

Usar XPath em Orquestrações

O Stephen Thomas tem um excelente post sobre a utilização de xpath para aceder a partes de mensagens em orquestrações, mas há questões que se levantam repetidamente e que talvez não fiquem explícitas naquele texto.

Supondo que temos uma mensagem com um determinado campo que promovemos como Distinguished Field:

- Se tentarmos aceder ao seu valor com "mensagem.campo", e o nó respectivo não existir na mensagem, o valor devolvido é null;

- Se usarmos uma expressão xpath com a função string (ex: xpath(mensagem,"string(/nome/@attribute)");), e o nó respectivo não existir, o valor devolvido é string.empty;

- Só podemos afectar o valor de Distinguished Fields dentro de Construct Shapes;

- Ao fazer a afectação de Distinguished Fields, o nó destino tem de existir na mensagem em causa, ou ocorre uma excepção. Isto sucede quer se se use a sintaxe mensagem.campo = valor;  quer usando o xpath().

Este último comportamento pode não ser o esperado, uma vez que a semelhança de sintaxe com o C# faz pensar numa simples afectação de um campo/propriedade de uma classe, mas pode acontecer sempre que o campo afectado não seja obrigatório no schema.

Um "truque" para contornar esta questão pode ser colocar nesses campos valores placeholder/dummy, para que depois as afectações funcionem, ou usando mapas ou aquando da própria instanciação da mensagem.

Nota final: caso não tenha já ficado claro, um Distinguished Field é apenas um alias para um xpath.

[Cross-Posted de http://www.arquitecturadesoftware.org/blogs/joaomartins]