Desenvolvimento - C#

Explorando o suporte Multi-Targeting do Visual Studio 2008

Uma das mais aguardadas novidades oferecidas pelo Visual Studio 2008 é o seu suporte "Multi-Targeting".

por Cláudio Ralha



Uma das mais aguardadas novidades oferecidas pelo Visual Studio 2008 é o seu suporte "Multi-Targeting". Para entender do que se trata e a sua importância para os desenvolvedores, basta lembrar o que ocorria no passado. Sempre que um novo release do Visual Studio era lançado, éramos obrigados a migrar várias aplicações para a nova versão da ferramenta e do framework, especialmente devido ao upgrade de versão que era feito permanentemente pelas grandes empresas. Foi assim na passagem do Visual Studio 2002 para o 2003 e deste para o 2005.

Apesar de garantir o “pão nosso de cada dia”, essa necessidade de constante atualização do código provocava algumas situações desagradáveis e de pouca produtividade para os desenvolvedores, tais como:

a) Manter distintos releases do Visual Studio instalados simultaneamente na máquina como, por exemplo, os releases 2003 e 2005, para ser capaz de editar projetos ASP.NET criados para o framework .NET 1.1 e 2.0.

b) Ter que fazer downgrade dos arquivos de projetos e de solution, para rodar projetos criados no Visual Studio 2003 em máquinas que só tinham o Visual Studio 2002. Nesse caso, éramos obrigados a recorrer a ferramentas de terceiros que não ofereciam garantias de que executariam seu trabalho de forma 100% satisfatória...

c) Lidar com assistentes de migração que faziam muito trabalho braçal de forma automática, mas também enchiam o nosso código de comentários indesejáveis e com a qualidade da conversão questionável em certos pontos.

Problemas como os relatados ocorriam porque cada versão do Visual Studio havia sido preparada para trabalhar com uma versão específica do framework .NET e havia sempre pressa das gerências em estar usando a versão mais recente do Visual Studio. É interessante notar que, ao contrário de suítes de desenvolvimento como Office, onde podemos utilizar o Word 2007 para salvar arquivos no formato do Word 97, o Visual Studio jamais ofereceu este recurso, pelo menos até agora.

Com a chegada oficial do Visual Studio 2008 no final do ano, teremos pela primeira uma IDE capaz de suportar múltiplas versões do Framework .NET, o que significa que você poderá usá-la simultaneamente para criar novas aplicações usando as extensões mais recentes do framework .NET (3.0 e 3.5) e editar as aplicações legadas escritas em .NET 2.0. Nesse ponto, você talvez esteja se perguntando sobre o suporte as versões mais antigas do Framework .Net, certo? Infelizmente, para as versões 1.0 e 1.1 ele não existirá, pois a CLR sofreu mudanças significativas ao longo dos últimos anos e seria bastante prejudical para o Visual Studio manter essa compatibilidade. Por este motivo, a Microsoft decidiu tomar como marco zero o framework .NET 2.0.

Dentre as vozes de resistência que sempre se erguem nesses momentos de mudanças, haverá por certo aqueles que dirão: “vivo feliz e contente com o Visual Studio 2005...por que iria desejar editar meus projetos que rodam redondinhos nesta versão dentro do Visual Studio 2008? É melhor esperar até que seja uma exigência da empresa começar a usar o Visual Studio 2008”... Se este for o seu caso, vou citar só algumas melhorias em termos de ASP.NET para você julgar se são suficientes para convencê-lo:

  • Split-view designer que suporta visualização de source e design da página ao mesmo tempo.
  • Page Designer otimizado, que apresenta melhor performance ao trocarmos entre os modos design e source.
  • Intellisense para javascript.
  • Suporte mais completo para depuração em Javascript.
  • Documentação de código automática em Javascript, tal qual temos no C# e no VB.NET.
  • Suporte a edição de Master Pages Aninhadas em tempo de design.
  • Conjunto mais completo de code snippets.

Pare e pense em quanto tempo esses recursos são capazes de lhe poupar. E tenha em mente que a lista completa de novidades é bem extensa, aqui só citamos algumas.

Escolhendo a versão ao criar o projeto

Ao criarmos um novo projeto, veremos na janela New Project uma combobox onde podemos escolher qual a versão do Framework .NET desejamos utilizar. Confira na imagem a seguir:

Isto fará com que a IDE selecione os compiladores corretos e desligue as features que não são suportadas, removendo templates de projetos e de itens das caixas de diálogo, controles da toolbox e assemblies que não irão funcionar com a versão selecionada. Compare a imagem anterior com a próxima, onde apresentamos os templates de projeto para a Web compatíveis com a versão 3.5 do Framework .NET.

Esse controle na própria IDE irá nos garantir que a aplicação que estamos construindo em uma máquina rodando Visual Studio 2008 com todas as versões finais do framework .NET já lançadas instaladas, irá funcionar em outra que possui como versão mais recente, a versão selecionada do framework. Já pensou em quanta dor de cabeça isso vai evitar? Afinal, quem nunca ouviu o gerente reclamar coisas do tipo “mas você me garantiu que estava funcionado!”. Bem, reza a lenda que em máquina de desenvolvedor tudo funciona...Para comprovar, veja quantas versões existem instaladas na sua máquina, examinando a seguinte pasta:

C:\WINDOWS\Microsoft.NET\Framework

Na máquina rodando Windows XP sp2 que estou usando para escrever este artigo, temos:

Ao criarmos uma aplicação Web ASP.NET para .NET 2.0, por exemplo, será gerado um esqueleto de projeto onde temos as configurações de compilação, referências de assemblies e configurações no Web.config preparadas para trabalhar com os servidores ASP.NET 2.0. Veja:

Inspecione a toolbox (tecle Ctrl+Alt+X para exibí-la) e observe que apenas controles do Framework .NET 2.0 estão sendo exibidos. Para saber a versão de um controle, basta parar com o mouse sobre o mesmo. A versão será exibida em uma tooltip:

Experimente a seguir, clicar com o botão direito do mouse sobre a Solution Explorer e selecionar Add Reference. Confira na próxima imagem que os assemblies que não podem ser usados com a versão escolhida do framework são exibidos em cinza e não podem ser selecionados.

Desse modo o desenvolvedor sabe que os assemblies existem e estão instalados, mas que não podem ser incluídos no projeto em construção.

Conclusão

A partir de agora, o anúncio de que sua empresa irá migrar em breve para uma nova versão do Visual Studio não irá mais impactar de forma tão nociva na hora de calcular cronogramas e qualificar o pessoal. Será possível tranquilamente instalar a nova versão da suíte de desenvolvimento e continuar a desenvolver os projetos já em andamento voltados para a plataforma .NET 2.0.

Toda essa flexibilidade trazida pelo Visual Studio 2008 irá ajudar a diminuir a pressão que existe em cima do desenvolvedor na hora de migrar uma aplicação, o que, via de regra, tende a resultar em um trabalho mais bem feito.

Abraços e até a próxima!

Cláudio Ralha

Cláudio Ralha - http://linhadecodigo.com.br/cs2/blogs/ClaudioRalha/default.aspx
Autor dos livros Dominando o Second Life e Segredos do Visual Studio.NET, profissional certificado Microsoft (MCP,MCAD,MCTS e MCPD) e palestrante Microsoft Brasil e Culminis. Já atuou como colunista do Informática etc do Jornal O GLOBO, editor da Revista Infomania e colaborador de várias revistas e sites. No mercado corporativo já desenvolveu para grandes clientes como Petrobras, Shell, Esso, Rede Globo, Furnas, Brascan, ONS, Unibanco e Bolsa de Valores pelas consultorias Accenture, Stefanini, Arcon, ATT/PS, Informaker, Relacional, Value Team e Softtek.