Pergunta

Minha empresa tem toneladas de legados aplicações que são escritas em VB6.

são em transições de se mover para aplicações VB6 NET (3,5 especificamente).

Qual seria a melhor estratégia para mover formulário VB6 para .NET?



NOTA :. Abaixo atualização deve ir para "Gestão de Projetos" e não tem nada a ver com a questão principal

[UPDATE] : Obrigado por seu feedback tão longe
Agora, existem mais perguntas que surgem são

  1. como você desenvolvedores atribuir a desenvolver novas aplicações?
  2. Deve haver uma divisão de atualização de um tempo especial que irá converter aplicativos legados para novos? ou deveria cada desenvolvedor participar processo de conversão?
  3. só deve desenvolvedores seniores participar na conversão? Júnior desenvolvedores? ou misto?

Parece que, quanto mais eu penso sobre este problema, mais perguntas apenas mostrar -se.

Foi útil?

Solução

É evidente que esta é uma empresa importante que vai envolver muito trabalho.
O meu aconselhar seria tratá-lo como um projeto de muito longo prazo.

Tenha um objetivo claro em mente, quais os endereços principais questões como a segurança, resiliência, capacidade de manutenção eo futuro de suas aplicações.

Uma vez que este tenha sido acordada pelas partes interessadas, desenvolver um sistema protótipo para testar suas suposições com, onde você pode experimentar C # vrs VB.net ou MVC vrs Webforms. Eu iria ceder seus melhores desenvolvedores para isso.

Em seguida, começar com um seus pequenos sistemas legados, e construir os principais componentes que você vai re-utilização em outras áreas.
Nesta fase, comece com seus desenvolvedores mais experientes, mas todos devem se envolver e estar familiarizado com o novo quadro.
Isso irá garantir que todos estão treinados ao mesmo tempo, e ninguém é deixado para trás.
Dependendo de quantos aplicativos você tem que eu iria rodar desenvolvedores, por isso, todos os sistemas podem se beneficiar.

Além disso tudo novo trabalho deve ser feito em seu idioma .net não em VB6.

Gradualmente converter cada um dos seus aplicativos legados. (Eu só iria convertê-los se eles estão mudando ou se há um benefício claro para atualizá-los.)

Isso deve lhe dar uma estrutura sólida para usar daqui para frente, e ainda garantir aos usuários a funcionalidade não seja dificultado pela sua migração.

Por exemplo:
Eu trabalhei em uma empresa que tinha cerca de 40 ou mais aplicações de VB.
Com o tempo, migraram toda a estes para C # e agora (5 anos mais tarde), temos cerca de 150 aplicações C # (todos em .net 2.).

Estes todos compartilham um quadro comum, tornando-os fáceis de manter e estender quando necessário.

Outras dicas

Tente substituir funcionalidade central com COM habilitado NET bibliotecas. "Fora oco" seus aplicativos VB6 existentes movendo funcionalidade para .NET pouco a pouco.

Cuidado com regravações completos. Embora eles são tentadores "porque é um corte limpo" - geralmente loucura está à frente! Leia "trabalhar efetivamente com Legacy Code", de penas Michael como uma preparação. Embora o livro não especificamente ir em "passar de uma língua para outra" Ele mostra um monte de armadilhas do mundo real que você vai encontrar.

Eu acho que todo desenvolvedor deve ter definido intervalos de tempo em que eles fazem a migração trabalho nas aplicações legadas que desenvolveram antes. Uma vez que eles já têm conhecimento de domínio e conhecer o espaço do problema que deve ser o mais produtivo.

Aqui é uma adaptação da minha resposta href="https://stackoverflow.com/questions/638152/best-development-tools-for-upgrading-from-vb6-0/638994#638994"> a uma pergunta similar.

A conversão de grandes programas automaticamente é uma escolha melhor do que reescrever. É uma armadilha comum para começar a sair com otimismo reescrever um grande pedaço de software, fazer bom progresso inicial fixação algumas das falhas conhecidas na arquitetura antiga, e depois se atolar na funcionalidade que você acaba tomando para concedido para anos. Neste ponto o seu gerenciamento começam a ficar inquieto e tudo pode ficar muito desconfortável.

... e aqui está um post no blog de um Microsofty que concorda comigo :

Muitas empresas com quem trabalhei nos primeiros dias de .NET olhou primeiro para reescrita impulsionado em parte por um forte desejo de melhorar a arquitetura e código estruturas subjacentes ao mesmo tempo em que se mudou para .NET. Infelizmente, muitos desses projetos entrou em dificuldades e vários não foram concluídas. O problema que eles estavam tentando resolver era muito grande

Este excelente Microsoft página recomenda duas ferramentas de terceiros de migração partido como melhor do que a fraca potência built-in VB.NET atualizar assistente - ArtinSoft e CodeArchitects VBMigration . ArtinSoft escreveu o construído em VB.NET atualizar assistente, esta é a sua versão melhorada. E CodeArchitects foi fundada por Francesco Balena, que escreveu alguns dos livros clássicos em VB6 e VB.NET.

A mesma página Microsoft também diz:

Executar uma reescrita completa para .NET é muito mais caro e difícil de fazer bem [de conversão] ... nós só recomendo esta abordagem para um pequeno número de situações.


EDIT: Sung diz nos comentários: "Eu não sou um grande fã de geração automática de código, pois é mais difícil de debug inicialmente e pode demorar apenas contanto que é preciso para reescrever coisa toda". Eu tenho que discordo fortemente. Em I geral também não sou fã de geração de código, mas neste caso o código resultante será estruturada de forma idêntica ao seu VB6 original e deve ser quase totalmente funcional. Eu não tentei realmente estas ferramentas me ainda, mas a partir de seu cliente depoimentos esta promessa seja cumprida.

E repito o conselho Microsoft logo acima, com base em sua experiência de ajudar muitas migrações - "uma reescrita completa é muito mais caro e difícil do que converter [grifo meu]" - uma contradição de a suposição de que isso pode levar ao mesmo tempo. Se você quer melhorar a estrutura do VB6, a migração em seguida, refatoração gradual é provável que seja muito mais rentável do que uma reescrita.

Veja este:
https://stackoverflow.com/ perguntas / 507291 / deve-nós-select-vb-net-ou-c-quando-upgrade nossa-legacy-aplicativos

Claro, C # vs VB.Net é apenas uma parte dela.

Por exemplo, outra coisa a considerar é se você quiser usar esta oportunidade para mover esses aplicativos para uma intranet, se você não tiver já. Ou como fazer profundo você quer mergulhar em pilha da Microsoft. É WinForms suficiente ou quer usar o WPF, por exemplo.

Gostaria de começar com as ferramentas da Microsoft:

http://msdn.microsoft.com/en-us/library /aa480541.aspx

Você pode achar o seguinte artigo útil: http://www.vsj.co.uk/articles/display. asp? id = 756

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top