quinta-feira, 15 de abril de 2010

En passant: referenciar assemblies .NET no Silverlight

Não é possível.

E a questão não é nem técnica, pois o formato dos assemblies e o bytecode é essencialmente é o mesmo.

Ocorre que, apesar da naturalidade com que desenvolvemos no Silverlight, esta é uma plataforma paralela ao .NET, possui seus próprios assemblies, mscorlib, System, etc. Compartilha linguagens, compiladores e outras ferramentas.

Como possui um conjunto de assemblies diferente, o Visual Studio 2010 RC não aceita e alerta o desenvolvedor quando este tenta referenciar um assembly da outra plataforma. Embora há quem tente burlar o mecanismo de detecção de plataforma (o VS faz isso pela versão do assembly), no SL não temos o assembly System.Data por exemplo, então não tem jeito de fazer um assembly com Self-Tracking Entities para ser usado no SL. E vice-versa, no .NET não se tem System.Windows.Browser por exemplo.

Uma solução então, é criar um assembly com target Silverlight, e incluir os arquivos como referência, opção Add existing item, Add as Link. Claro que isso não resolve quando estes arquivos precisam de um assembly não existente no SL.

Nenhum comentário:

Postar um comentário