Question

J'ai toujours rêvé de créer un "véritable exe" à partir d'un langage de script. Avec les implémentations Python et Ruby basées sur DLR, est-ce que cela se rapproche de la réalité?

J'aimerais créer une "application réelle":

  • Une application Windows Forms
  • Une application console
  • Un service Windows

Et que l'unité de distribution soit un exe compilé.

Est-ce possible? Ou MS vient-il de créer des interpréteurs de fichiers de script basés sur .NET?

Si vous faites cela, comment structurez-vous vos applications / projets? Utilisez-vous un hybride de code C # et DLR?

Était-ce utile?

La solution

Un projet IronPython ou IronRuby peut être compilé dans une dll ou un exécutable très bien et sera de "vrais" exécutables dans tous les sens, à condition que la personne qui les exécute ait le framework .Net approprié et des dépendances installées (des dépendances peuvent être présent dans le même répertoire par défaut mais le framework doit être installé). L'intégration avec Visual Studio n'est toujours pas là, mais des projets tels que IronPythonStudio utilisent à bon escient le logiciel gratuit VS Shell. L’existence du DLR en tant que dépendance de c # dynamic dans VS 2010 devrait signifier que l’intégration avec VS des groupes Iron * devient un objectif plus facile et une priorité plus élevée.

Le résultat n’est nullement interprété (le CIL est jeté dans le code machine au moment de l’exécution ou via ngen si désiré) et certains aspects du DLR impliquent que certaines actions sont différées de la même manière que les dernières liaisons, mais plus puissantes et plus cruciales pour certains. mécanismes de mise en cache sophistiqués pour permettre que cela soit relativement rapide par rapport aux interpréteurs naïfs.

De nombreux langages de script interprétés de manière traditionnelle créent leurs propres stratégies de compilation basées sur les ordinateurs virtuels ou exploitent celles qui existent déjà (comme la JVM, le .Net CLR ou ouverts, comme le LLVM ), car cela entraîne une augmentation significative des performances dans de nombreux cas courants.

Dans le cas des langues Iron *, l’avantage du MS CLR est que les exécutables résultants «Just Work» résultent de la grande majorité des installations de la famille de systèmes d’exploitation les plus courantes. Contrastez avec Java lorsqu'un fichier JAR n'est pas "exécutable" en cliquant directement / ou en "exécutant" via le shell dans de nombreux systèmes d'exploitation. Le revers de la médaille, c’est que cela réduit l’interopérabilité par rapport à une solution basée sur JVM ou LLVM où le support de la plate-forme est plus large mais, inévitablement, plus diversifié dans l’intégration des systèmes d’exploitation.

Autres conseils

Vous pouvez créer des fichiers EXE à partir de python standard à l'aide de Py2Exe . Cependant, rien ne devrait vous empêcher de créer des ex avec IronPython à l'aide de Visual Studio ou de SharpDevelop .

bien que n'étant pas directement lié à iron * question, il peut être intéressant pour quelqu'un qui souhaite des fichiers binaires à partir de scripts python: pyinstaller

fonctionne sous Windows (32 bits et 64 bits), Linux (32 bits et 64 bits) et Mac OS X (32 bits uniquement)

fonctionne sous n’importe quelle version de Python de 1.5 à 2.7

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top