Hoje vou falar um pouco sobre uma experiência que tive na empresa onde trabalho. Como a empresa trabalha com a tecnologia .NET desde o inicio — ou seja, Framework 1.0 e Framework 1.1 —, existem alguns projetos grandes desenvolvidos que ainda não foram migrados para a nova versão.
O framework .NET atual é o 4.0 e beta 4.5. Há mais ou menos três anos eu falo para o analista do projeto migrar o framework, projetos e dlls para a versão nova. Não sei se por preguiça ou falta de tempo, o projeto nunca foi migrado. Principalmente porque o mesmo analista colocava dificuldades inexistentes para esta migração.
Comecei, então, a baixar o projeto do Visual Source Safe (antigo). Para quem não sabe, uma solução pode ter vários tipos de projetos e um projeto ser de apenas um tipo de plataforma.
A solução possui 10 projetos vinculados e cada um com sua referência particular. O projeto é realmente grande. Além do framework da Microsoft ser 1.1, existem outros frameworks criados pela própria empresa para facilitar a vida do analista/desenvolvedor. Preciso passar todos estes para a nova plataforma.
Depois de baixar toda solução, todos os projetos e seus respectivos arquivos vinculados, comecei a pensar como transformar tudo isso e compilar sem qualquer problema. Por sorte minha e saber que a ferramenta Visual Studio 2010 é uma ótima amiga, comecei por baixo.
Comecei pelo projeto framework da empresa. Cliquei duas vezes em cima do projeto e o Visual Studio 2010 abriu pedindo para converter. Como a maioria dos arquivos são .CS (C# CSharp) ou .VB (VB .NET), fiquei tranquilo.
Apenas usei os botões “next”, “next” e “finish”. A própria ferramenta gera um a pasta com todo o backup do projeto antigo antes de converter. O framework foi todo convertido e compilado sem qualquer erro.
Comecei bem!
Sabe o que pode impactar e continuar usando o 1.1 da Microsoft? Problemas de desempenho, manter versão antiga do servidor 2003, não possuir novos componentes para refatorar o código, não usar Ajax Toolkit, não migrar a ferramenta de desenvolvimento para o Windows 7 e muito mais.
O servidor 2003 com IIS estava sendo mantido devido a esse único sistema. Todos os outros poderiam usar o servidor 2008 com o IIS mais recente.
Como pensei que o trabalho iria demorar pelo menos 3 dias inteiros, lancei no sistema de tarefas da empresa que o trabalho demoraria 24 horas contando apenas 8 por dia.
Foi um engano porque não demorei a metade disso. Depois de converter o “mini-framework” da empresa, passei para os 10 projetos dentro da solução. Lembre-se, não comece da solução, faça projeto a projeto e depois a solução.
A cada projeto convertido, precisava saber se estava compilando. O próximo projeto que peguei foi um que tinha como referência uma dll do COM PLUS (COM+). Todo o código foi migrado, mas dava erro especificamente nessa .dll que não existia na minha máquina.
Como não queria perder tempo com esse tipo de coisa, solicitei por e-mail a .dll ao analista e passei para outro projeto. Um ponto importante para a produtividade é saber o momento de perder maior tempo em pequenas coisas, como esse não era o meu objetivo, passei para o próximo projeto e marquei o anterior para rever no final.
Ainda não tinha uma solução específica, escolhi não ter ainda uma solução contendo todos os projetos convertidos, o melhor é fazer isso no final. Chegando no sexto projeto e apenas um problema devido falta de dll, percebi que o Crystal Report 7 ou 8 era usado.
Ao mesmo tempo que cliquei para converter, fiquei com medo de ter problemas com esse tal Crystal Report.
Em meu ponto de vista, é uma ferramenta bem antiga para gerar relatórios e que existem ferramentas novas para essa geração. O Visual Studio 2010 já possui esse tipo de ferramenta integrada — bem mais robusta e simples de desenvolver.
Paciencia e determinação
Para a minha surpresa, tudo foi convertido sem qualquer problema. Como escolhi deixar o projeto maior para o final, o do tipo “web” com suas 50 páginas .aspx, 10 .ascx e nenhuma master page (não existia na época), também fiquei com medo algum problema ao converter.
O projeto do tipo web demorou um pouco mais, em torno de 10 minutos, enquanto os outros demoravam 50 segundos na média para converter. Nessas horas é bom ter paciência e determinação no que está fazendo.
Depois de 10 minutos, o projeto foi convertido com sucesso. Lógico que faltavam as referências dos outros projetos. Dessa forma, a compilação sempre dava erro.
Criando Solução
Neste momento escolhi criar a solução colocando todos os projetos convertidos. Cliquei com o botão direito em cima do projeto e escolhi adicionar um projeto existente. Ao escolher o projeto no diretório, uma solução “sem nome” foi criada.
Fui acrescentando um por um até completar todos. Ao final, cliquei no menu file e escolher salvar a solução como. Salvei a solução em uma pasta separada ou anterior dos projetos.
É importante salvar a solução em uma pasta separada do projeto principal porque qualquer outro desenvolvedor que pegar o projeto vai entender que a solução da pasta anterior abre todos os projetos existentes.
O que falta agora depois de converter todos os projetos e salvar uma solução? Falta referenciar os arquivos, dlls e depois compilar tudo. Lógico, ainda não testei nada e nem devo testar para não ocorrer qualquer outro tipo de erro.
Na pasta references, adicionei em todos os projetos as referências que faltavam ou que o projeto pedia.
Sabe aquele mencionado anteriormente que usava uma dll do COM+, ao analisar me mandou de forma separada.
Fechei toda a solução, gerei um projeto no COM+, registrei a .dll e depois abrir a solução. Automaticamente apareceu a referência no projeto funcionando. Isso é ótimo, o Visual Studio 2010 é muito bom com isso.
As referências adicionadas, código compilando sem qualquer tipo de erro a não ser uma referência do “Cristal Report” dentro do arquivo “Web.Config”. Como não tenho a ferramenta cliente instalado na minha máquina, apenas comentei as 3 linhas do arquivo de configuração.
Compilei tudo e teclei F5 para iniciar. Como esperado, apareceu perfeito o sistema, loguei com o meu usuário, acessei os menus carregados diretamente do banco de dados, acessei as páginas e pesquisei dados. Isso tudo em pouco mais de 3 horas, contando desde o começo.
Resolvi escrever tudo o que aconteceu para assegurar a você que a conversão do Visual Studio 2010 funciona sem erro e direto da versão 1.1 para o 4.0. Não precisa passar para o 2.0, depois 3.5 e 4.0.
Espero que tenha gostado e qualquer dúvida, pode entrar em contato pelos comentários.
Até a próxima!








