17/04/2012 | Autor: Igor Abade V. Leite | Categoria: Técnico | Comentários

Portable Class Library - a versão .NET do “Write Once, Run Anywhere”?

Esquema geral da Common Language RuntimeVocê sabia que com Portable Class Libraries é possível rodar o mesmo binário em diferentes CLRs? Bom, mas antes disso: Você sabia que há mais de uma CLR? Aliás, o que é CLR mesmo? Smile Common Language Runtime é a parte do .NET Framework onde seu código é executado. Os diversos serviços essenciais para uma aplicação .NET, tais como o compilador JIT e os gerenciadores de código e memória, são parte da CLR. Mal comparando, a CLR equivale à máquina virtual (JVM) do Java. Originalmente a Microsoft criou uma única máquina virtual / CLR, que vem evoluindo desde o .NET 1.0. Essa CLR presente no .NET é a versão de referência, baseada na especificação ECMA/ISO da Common Language Infrastructure. Entretanto, quando surgiu a necessidade de rodar código .NET em outros ambientes – tais como num smartphone ou mesmo num browser – percebeu-se que a enorme quantidade de recursos da CLR havia, de certa forma, se tornado um problema. A CLR era maior do que seria possível hospedar nesses ambientes restritos. Foi aí que começaram a surgir novas CLRs:

  • Silverlight (browser);
  • Silverlight (Windows Phone 7);
  • .NET Compact Framework;
  • .NET Micro Framework;
  • Xbox etc. Todas essas CLRs têm pontos em comum, o que significa que era possível escrever código “compartilhável” – ou seja, um mesmo código-fonte podia ser reaproveitado em diferentes projetos (exemplo comum: WPF, Silverlight Browser e Silverlight WP7). Ou seja, havia a compatibilidade de código, mas não a compatibilidade binária para que assemblies produzidos pelo Visual Studio pudessem ser diretamente referenciados por diferentes plataformas. É aqui que voltamos ao assunto deste post. Com as Portable Class Libraries é possível criar assemblies que podem ser diretamente compartilhados entre diferentes plataformas/CLRs. Finalmente a tão conveniente compatibilidade binária!

O que muda?

Quando você usa Portable Class Libraries, o Visual Studio garante que o código que você está escrevendo – e o binário resultante – serão compatíveis com todas as plataformas que você selecionar. A consequência natural disso é que você sempre estará nivelando pela plataforma com menos recursos. Todos os outros benefícios oferecidos pelo Visual Studio – testes de unidade, Intellisense, Intellitrace e outros – continuam funcionando exatamente da mesma forma com que estamos acostumados.

Como usar?

Portable Class Library é um novo modelo de projeto disponível no Visual Studio “11”. Basta usar esse novo modelo de projeto no lugar do antigo Class Library: Criando um novo projeto Portable Class Library no VS11 Se você ainda estiver usando o Visual Studio 2010, pode baixar o modelo de projeto a partir da Visual Studio Gallery: Extensão "Portable Library Tools" para criar Portable Class Libraries no VS2010 Depois disso é só criar seu projeto no Visual Studio 2010! Um abraço, Igor Para saber mais: