Hoje gostaria de comentar com vocês sobre a experiência que passei estes dias na empresa onde eu 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 o novo “framework”.

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 analisa ficava colocando dificuldades inexistentes para esta migração.

Ontem depois do almoço, comecei 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” criado pela própria empresa para facilitar a vida do analisa / 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, abriu o Visual Studio 2010 pedindo para converter. Como a maioria dos arquivos são .CS (C# CSharp) ou .VB (VB .NET), fiquei tranquilo.

Foi um NEXT, NEXT, 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 ao clicar Ctrl + Shift + B (para compilar), foi compilado sem qualquer erro.

Sabe o que pode impactar continuar usando o 1.1 da Microsoft? Problemas de “performance”, manter versão antiga do servidor 2003, não ter novos componentes para refatorar o código, não usar Ajax Toolkit, não migrar para o Windows 7 a ferramenta de desenvolvimento e muito mais.

O servidor 2003 com IIS estava sendo mantido devido esse sistema, único sistema. Todos os outros poderiam usar o servidor 2008 com o IIS novo. 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.

Perder tempo

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 projeto 6 e só um com 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”. No 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 integrado esse tipo de ferramenta, 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), fiquei também com medo de não 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 escolhe o projeto no diretório, uma solução foi criada “sem nome”.

Fui acrescentando um por um até completar todos. Depois que completou, cliquei no menu FILE e escolher salvar a solução como. Salvei a solução em uma pasta separada ou anterior dos projetos.

Salvar a solução em pasta separada do projeto principal é importante porque qualquer outro desenvolvedor que pegar o projeto vai entender que a solução em 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 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 falado anteriormente que usava uma dll do COM+, o 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.

Compilou tudo e agora cliquei F5 para iniciar. Como esperava, 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 te assegurar que a conversão do 2010 funciona sem erro e direto do 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. Tentarei ajudar, pode postar também no fórum.