Qual tipo de projeto C# você usaria para desenvolver novamente um controle activex MFC C++?
-
09-06-2019 - |
Pergunta
Observando os modelos de projeto C# no VS2008 e as ofertas são WPF User Control Library, WPF Custom Control Library e Windows Forms Control Library.Qual destes você usaria se quisesse mover um controle ativo legado escrito em c++ para o mundo de C# e .NET?
Solução
Parece que você está tentando fazer várias coisas diferentes ao mesmo tempo:
- Migre seu código para construir em uma versão mais recente do visual studio.
- Migre seu uso de tecnologia para uma tecnologia mais recente (ActiveX para .net)
- Migre sua linguagem (c++ para c#).
Se você tiver uma base de código pequena, provavelmente será melhor começar do zero e portar a funcionalidade para a nova base de código, conforme necessário.
Para uma base de código maior, você precisa perceber que esta é uma tarefa cara, tanto em esforço quanto em taxa de defeitos.
Um pedido pode ser:
- Importe seu código para a versão mais recente do visual studio.Faça a compilação.Revise as configurações do projeto para cada projeto.
- Refatore seu código para isolar o código mfc e activex tanto quanto possível.Siga boas práticas de refatoração, especialmente se não tiver muitos testes de unidade antes de começar.
- Considere substituir sua camada ActiveX por .net.
- Considere qual kit de ferramentas GUI é melhor para substituir o MFC.
- Linguagem - considere migrar primeiro para c++ gerenciado.
- Considere mudar de c++ gerenciado para c#.
O mais importante é ser capaz de justificar todas as opções acima!
Outras dicas
Não existe um modelo de projeto que faça isso por você.Você também pode ler e começar com um controle de usuário.
Você teria que considerar o aplicativo de destino que hospedará o controle.Se for uma aplicação de linha de negócios, eu ouviu que o WPF não oferece grandes vantagens sobre o Forms.De acordo com esse entrada do blog, no entanto, o autor acredita que o WPF matador é um aplicativo LOB que aproveita o poder gráfico oferecido pelo WPF para visualização de dados.
No final, acho que é uma análise de custo/benefício.Você segue o caminho do WPF e paga o custo da curva de aprendizado para o benefício futuro da visualização gráfica de dados ou segue o método testado e comprovado e corre o risco de desenvolver um aplicativo desatualizado.