Tornando um aplicativo C #/Winform multiplataforma - devo usar AIR, Mono ou algo mais?

StackOverflow https://stackoverflow.com/questions/72580

  •  09-06-2019
  •  | 
  •  

Pergunta

Eu tenho um aplicativo que escrevi em C#/WinForms (meu pequeno aplicativo).Para torná-lo multiplataforma, estou pensando em refazê-lo no Adobe AIR.Há algum argumento a favor do WinForms como um aplicativo multiplataforma?Existe um futuro multiplataforma para Winforms (por exemplo, Mono, etc.)?Sugestões para desenvolvimento de UI multiplataforma?

Por plataforma cruzada quero dizer, atualmente, Mac OSX, Windows e Linux.

Esta pergunta foi perguntou novamente e respondeu com melhor sucesso.

Foi útil?

Solução

Estou pensando em refazer no Adobe AIR

Não tendo passado muito tempo com o AIR, minha opinião pessoal é que é melhor trazer um webapp para a área de trabalho e fornecer um shell para ela ou executar seu projeto flash/flex existente na área de trabalho.

A propósito, se você não conhece o ActionScript, quero dizer, seus detalhes, peculiaridades, etc., não se esqueça de levar em consideração o tempo que levará para pesquisar respostas no Google.

Há algum argumento a favor do WinForms como um aplicativo multiplataforma?Existe um futuro multiplataforma para Winforms (por exemplo, Mono, etc.)?

É sempre difícil prever o que vai acontecer, mas há pelo menos um projeto (Plastic SCM) que eu conheço que usa Mono Winforms no Win, Mac e Linux, então é certamente factível.No entanto, eles dizem que construíram a maioria de seus controles do zero (e afirmam que querem lançá-los como código aberto, mas não têm certeza se ou quando), então você precisará trabalhar um pouco para fazer as coisas parecerem "bonitas" .

Joguei com Winforms em plataformas não Windows e, infelizmente, não é exatamente "maduro" (especialmente no Mac).Portanto, o que você tira da caixa pode ou não ser suficiente para suas necessidades.

Se você decidir que um aplicativo de desktop não é a melhor maneira de fornecer uma solução multiplataforma, você sempre pode pegar sua lógica de negócios escrita em C# e criar um aplicativo web completo com ASP.NET ou usar Silverlight, tantas outras opções existe com C#.

Outras dicas

No que diz respeito à minha experiência em actionscripting Flex/AIR/Flash, o ambiente de desenvolvimento Adobe AIR e os conjuntos de ferramentas de codificação/depuração são muito inferiores ao Visual Studio e ao .NET SDK no momento.Os conjuntos de ferramentas da UI são superiores.

Mas como você já tem um código C# funcional, portá-lo para ActionScript pode exigir um redesenho devido ao ActionScript ter uma maneira diferente de pensar/programar, eles usam diferentes tipos de dados primitivos, por exemplo, eles usam apenas um Number em vez de int float double etc.e as ferramentas de depuração estão faltando em comparação com o VS IMO.

E eu ouvi isso GtkSharp do Mono é silenciosamente uma plataforma decente.

Mas se você não se importa com os problemas de ferramentas de codificação/depuração, o AIR é uma ótima plataforma.Gosto de como a Adobe integra a experiência Flash, por exemplo.você pode iniciar a instalação do aplicativo AIR clicando em um botão em um movieclip em flash, esse tipo de integração.

WinForms são totalmente suportados pelo Mono, portanto são multiplataforma.

Por que você escolheria o Air?

Usar GTK#, e você tem um mecanismo de formulários de plataforma cruzada e pode manter seu código C#.

Bem, acho que a única maneira de ser multiplataforma confiável com C# é Microsoft Silverlight, mas não é realmente WinForms e é baseado em navegador.Fora isso, sim, Mono é uma chance.

Se você quiser usar o .net Framework, o Microsoft Silverlight é uma boa (a única?) escolha.O navegador faz um bom trabalho como shell, mas você também pode escrever seu próprio shell de aplicativo para ele.Por exemplo, Scott Handelman menciona o NY Times Reader escrito em Silverlight e hostet em Cocoa em um Mac.

Não acho que haja futuro para o WinForms.Uma vez que parece ter sido uma solução provisória mesmo no mundo MSFT (um invólucro muito fino em torno do Win32).E praticamente nenhuma alteração parece ter sido feita em System.Windows.Forms no .NET 3.0 e 3.5

</speculation>

Eu usaria Java ou Air.

Acho que contanto que você tenha certeza de que o código de lógica de negócios que você escreve é ​​multiplataforma (ou seja,usar barras invertidas em caminhos só funciona no Windows - barras funcionam em todos os sistemas operacionais), então o Mono não deve ter grandes problemas ao executar um programa WinForms não modificado.Apenas certifique-se de testar falhas gráficas.

Fiz uma pergunta semelhante na semana passada.Tenho usado o Mono o tempo todo e não tive problemas ao executar os aplicativos que compilei no IL para rodar no SuSE linux (geralmente executo o KDE) ou no Windows, no entanto, ainda não saí e comprei um Mac para testar ligado.Estarei em breve, provavelmente dentro de algumas semanas.Mas todo e qualquer desenvolvimento em Mono tem sido muito bom na criação de aplicativos que serão executados em múltiplas plataformas.

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