2011-03-21 6 views
0

J'ai développé une application utilisant VB .NET sur un système d'exploitation Windows. Si je veux activer cette application pour un client qui utilise Linux, comment puis-je le faire? Ont-ils besoin d'acheter VB .NET? Je suis totalement perdu sur la façon dont cela fonctionne. Je n'ai jamais travaillé sur linux quelqu'un peut-il aider.Portage application .net de windows à linux

+0

Quelle structure graphique utilisez-vous? Mono ne supporte pas WPF. WinForms fonctionne habituellement, mais semblera étranger. Et si vous utilisez une API native p/invoke, vous aurez aussi des problèmes. – CodesInChaos

+2

Avez-vous envisagé de passer d'une application de bureau à une application Web? – MarkJ

Répondre

2

Il y a deux options:

  1. Lancez l'application avec Mono
  2. Exécutez l'application à l'aide Wine

Pas besoin de recompiler. Je voudrais d'abord tester l'application avec les deux et décider lequel prendrait moins d'efforts pour résoudre les problèmes qui en résultent.

+0

Est-ce que Wine fonctionne avec WPF ou .NET4? – mbx

+1

Non, la prise en charge de .NET4 est inégale. –

0

Il y a quelques pièges: Les mono-developpés et compilateurs emballés peuvent être plus anciens et les compiler soi-même n'est pas facile pour la première fois. Habituellement, vous obtenez au moins le support de .NET 2.0.

Sur ubuntu vous pouvez installer IDE et compilateur en tant que root avec:

apt-get install monodevelop mono-vbnc 

le reste devrait être tiré en tant que dépendances.

0

Vous n'avez pas besoin d'acheter VB.NET. Ce que vous devez faire est de savoir si votre application .NET est compatible avec le mono. Vous pouvez vérifier votre compatibilité avec MoMA et/ou essayer de compiler/exécuter votre application sur Linux avec mono.

1

Dans votre application VB.Net si vous n'avez utilisé aucune propriété propriétaire de Windows (Dllimport, composants COM, bibliothèques natives etc.), vous pouvez essayer de copier l'application telle quelle sur une machine Linux avec Mono et exécuter il. Certaines de mes applications ont fonctionné comme ça par le passé. Si cela fonctionne hors de la boîte, vous n'avez pas besoin de vous embêter à compiler votre application dans l'environnement Linux.

6

Mono prend entièrement en charge Windows.System.Forms, mais pas pour WPF. Ce qui signifie que votre application fonctionnera très probablement sur Linux tant que Mono est installé.

Il y a cependant certaines choses que vous devez savoir. Par exemple, si vous créez manuellement des chemins de fichier, vous devez le modifier. Vous avez Path.Combine et Path.PathSeparator pour créer des chemins.

Vous devez également faire attention quand il s'agit de nouvelles lignes car Windows utilise \r\n tandis que Linux utilise \n. Utilisez Environment.NewLine au lieu de coder en dur \r\n.

Vous avez un mono pour les développeurs Page ici: http://www.mono-project.com/Mono_For_.Net_Developers

Le meilleur de tous est l'analyseur de migration: http://www.mono-project.com/MoMA qui vérifie pour toutes les questions de compability.

Questions connexes