Visual basic sur linux / Mac ?

Résolu
Kaiibatado -  
 Kaiibatado -
Bonjour, bonsoir,

Je suis un développeur amateur sous Visual studio 2013, en visual basic.

J'aimerais développer une application fonctionnant sous Windows, Mac, Linux etc en visual basic, existe-il des solution pour ?

Merci beaucoup.

1 réponse

  1. ElementW Messages postés 5690 Statut Contributeur 1 293
     
    'lut, le VB.NET utilise le runtime .NET, qui en principe est cross-platform. En l'occurrence, en installant Mono, tu pourras lancer des .EXE écrits en langages .NET (donc VB.NET, C#, ...), mais avec certaines restrictions: certaines fonctions spécifiques ne sont pas dispo dessus, comme par exemple les P/Invoke ou les forms WPF -- ce sont donc des choses à ne pas mettre dans ton appli.
    Mono dispose d'un outil nommé MoMa, qui t'indique si ton programme marchera comme il faut sous Mono (donc Linux/OSX) et dans le cas contraire, ce qu'il faut changer pour.
    0
    1. Kaiibatado
       
      Merci, grosso-modo, le type, il installe Mono, et prend mon programme et hop il peut l'utiliser ?

      Aucuns besoins que je modifie mon programme ?

      Et pour les variables d'environnement (car le programme doit télécharger un fichier, et les noms d'endroit ou il sera téléchargé changent entre plateforme non ?), comment ça ce passe à ce niveau ?
      0
      1. ElementW Messages postés 5690 Statut Contributeur 1 293 > Kaiibatado
         
        "Aucuns besoins que je modifie mon programme ? " Ouep, Mono fournit une compatibilité avec les binaires produits.

        Les variables d'environnement sont "compatibles" partout, par contre tu ne trouveras pas les mêmes selon les plate-formes: sous Windows tu dois télécharger dans un répertoire d'AppData par ex, sous Linux il faut suivre le standard XDG (XDG_RUNTIME_DIR si c'est très temporaire, XDG_CACHE_HOME si c'est considéré comme du cache, XDG_DATA_HOME si c'est supposé "permanent"), et pour OS X, cf cette réponse StackOverflow pour les chemins qui correspondent à ceux de XDG.
        Tu peux détecter la plate-forme utilisée grâce à
        Environment.OSVersion
        , plus particulièrement son membre
        Platform 
        qui est une énum PlatformID.
        Aussi, veille bien a ne jamais utiliser les antislash (
        \
        ) en tant que séparateur de chemin dans ton code: le standard c'est le slash
        /
        , qui marche même sous Windows. Mieux encore, sers toi de la classe System.IO.Path qui permet la manipulation de chemins indépendamment de la plate-forme.
        0
    2. Kaiibatado
       
      Merci beaucoup, tu m'aide beaucoup, je lock le sujet, merci, bonne journée.
      0