Article de reference

IronPython

[[File:Ironpython-logo.png|200px]]"},"logo alt":{"wt":""},"logo caption":{"wt":""},"author":{"wt":"[[Jim Hugunin]], [[Microsoft]]"},"developer":{"wt":"Dino Viehland, [[.NET Foun...

langage de programmation Python ciblant les frameworks .NET et Mono . Le projet est actuellement maintenu par un groupe de bénévoles sur GitHub . C'est un logiciel libre et open source, et il peut être implémenté avec Python Tools for Visual Studio, une extension libre et open source pour l'environnement de développement intégré (IDE) Visual Studio de Microsoft .

IronPython est entièrement écrit en C# , bien qu'une partie de son code soit générée automatiquement par un générateur de code écrit en Python.

IronPython est implémenté sur le Dynamic Language Runtime (DLR), une bibliothèque s'exécutant sur la Common Language Infrastructure (CLI) et fournissant, entre autres, le typage dynamique et la répartition dynamique des méthodes pour les langages dynamiques. Le DLR fait partie du .NET Framework 4.0 et de Mono depuis la version 2.4 de 2009. Le DLR peut également être utilisé comme bibliothèque dans les anciennes implémentations de l'interface en ligne de commande (CLI).

Jim Hugunin a créé le projet et y a activement contribué jusqu'à la version 1.0, sortie le 5 septembre 2006. IronPython 2.0 est sorti le 10 décembre 2008. Après la version 1.0, le projet a été maintenu par une petite équipe chez Microsoft jusqu'à la sortie de la version bêta 1 de 2.7. Microsoft a abandonné IronPython (et son projet frère IronRuby ) fin 2010, après quoi Hugunin a rejoint Google. Le projet est actuellement maintenu par un groupe de bénévoles sur GitHub .

  • La version 2.0, sortie le 10 décembre 2008 et mise à jour en tant que 2.0.3 le 23 octobre 2009, cible CPython 2.5. IronPython 2.0.3 est compatible jusqu'à .NET Framework 3.5.
  • La version 2.6, publiée le 11 décembre 2009 et mise à jour le 12 avril 2010, cible CPython 2.6. Les versions IronPython 2.6.1 sont compatibles uniquement avec .NET Framework 4.0. IronPython 2.6.1 doit être compilé à partir des sources pour fonctionner sur .NET Framework 3.5. IronPython 2.6.2, publié le 21 octobre 2010, est compatible avec .NET Framework 4.0 et .NET Framework 3.5.
  • La version 2.7 a été publiée le 12 mars 2011 et elle cible CPython 2.7.
  • La version 2.7.1 a été publiée le 21 octobre 2011 et elle cible CPython 2.7.
  • La version 2.7.2.1 a été publiée le 13 mars 2012. Elle permet la prise en charge des bibliothèques de format de fichier ZIP , de SQLite et des exécutables compilés.
  • La version 2.7.4 a été publiée le 7 septembre 2013.
  • La version 2.7.5 a été publiée le 6 décembre 2014 et consiste principalement en des corrections de bogues.
  • La version 2.7.6 a été publiée le 21 août 2016 et ne contient que des corrections de bogues.
  • La version 2.7.7 a été publiée le 7 décembre 2016 et ne contient que des corrections de bogues.
  • La version 2.7.8 a été publiée le 16 février 2018 et comprend des corrections de bogues, un code réorganisé et une infrastructure de test mise à jour (incluant des tests approfondis sous Linux avec Mono ). Il s'agit également de la première version prenant en charge .NET Core .
  • La version 2.7.9 a été publiée le 9 octobre 2018 et comprend des corrections de bogues et une réorganisation du code. Elle est conçue comme la dernière version avant IronPython 3.
  • La version 2.7.10 a été publiée le 27 avril 2020 et ajoute la prise en charge de .NET Core 3.1.
  • La version 2.7.11 a été publiée le 17 novembre 2020 et résout les problèmes lors de l'exécution sur .NET 5 .
  • La version 2.7.12 a été publiée le 21 janvier 2022 et résout les problèmes liés à .NET 6 et supprime la prise en charge de .NET Core 2.1
  • La version 3.4.0 a été publiée le 12 décembre 2022 et est la première version à prendre en charge Python 3.x.
  • La version 3.4.1 a été publiée le 12 juillet 2023 et comprend un mode UTF-8 , la prise en charge du module de typage dans la bibliothèque standard et diverses corrections de bogues.
  • La version 3.4.2 a été publiée le 20 décembre 2024 et comprend des corrections de bogues, notamment un problème empêchant l'utilisation sur .NET 9.

Différences avec CPython

CPython , et IronPython. Certains projets construits sur IronPython ne fonctionnent pas sous CPython. Inversement, les applications CPython qui dépendent d'extensions du langage implémentées en C ne sont pas compatibles avec IronPython, sauf si elles sont implémentées dans une interopérabilité .NET. Par exemple, NumPy a été intégré par Microsoft en 2011, permettant ainsi d'exécuter directement le code et les bibliothèques qui en dépendent depuis le framework .NET.

Silverlight

IronPython est compatible avec Silverlight (une technologie obsolète de Microsoft et déjà abandonnée par la plupart des navigateurs web ). Il peut être utilisé comme moteur de script côté client, au même titre que JavaScript . Les scripts IronPython sont transmis comme de simples scripts JavaScript côté client, via <script>des balises `<script>`. Il est alors possible de modifier le balisage XAML intégré .

La technologie sous-jacente est appelée Gestalt.

type = "text/javascript" > </script><!-- Script côté client transmis à IronPython et Silverlight. --> < script type = " text / python" > window.Alert ( " Bonjour depuis Python " ) </script>

Le même principe s'applique à IronRuby .

Licence

Jusqu'à la version 0.6, IronPython était distribué sous les termes de la Common Public License . Suite au recrutement du chef de projet en août 2004, IronPython a été intégré à l' initiative Shared Source de Microsoft . Bien que cette licence ne soit pas approuvée par l'OSI , ses auteurs affirment qu'elle répond à la définition de l'open source . Avec la version alpha 2.0, la licence a été modifiée pour adopter la Microsoft Public License , approuvée par l'OSI. Les versions les plus récentes sont distribuées sous les termes de l' Apache License 2.0 .

extensibilité de l'interface

L'un des principaux avantages d'IronPython réside dans sa fonction de couche d'extensibilité pour les frameworks d'applications écrits en .NET. Il est relativement simple d'intégrer un interpréteur IronPython à un framework d'application .NET existant. Une fois cette intégration réalisée, les développeurs en aval peuvent utiliser des scripts écrits en IronPython qui interagissent avec les objets .NET du framework, étendant ainsi les fonctionnalités de l'interface de ce dernier, sans avoir à modifier le code source.

IronPython utilise largement la réflexion . Lorsqu'une référence à un objet .NET lui est transmise, il importe automatiquement les types et les méthodes disponibles pour cet objet. Il en résulte une expérience utilisateur très intuitive lors de la manipulation d'objets .NET depuis un script IronPython.

Exemples

Le script IronPython suivant manipule des objets du .NET Framework. Ce script peut être fourni par un développeur d'application cliente tiers et transmis au framework côté serveur via une interface. Veuillez noter que ni l'interface, ni le code côté serveur ne sont modifiés pour prendre en charge les analyses requises par l'application cliente.

dans livre . Auteur . PrixMajeurs ]

Dans ce cas, supposons que le .NET Framework implémente une classe, BookDictionary , dans un module appelé BookService , et publie une interface dans laquelle des scripts IronPython peuvent être envoyés et exécutés.

Ce script, lorsqu'il sera envoyé à cette interface, parcourra la liste complète des livres gérés par le framework et sélectionnera ceux écrits par des auteurs lauréats du prix Booker.

Ce qui est intéressant, c'est que la responsabilité de la création des analyses incombe au développeur côté client. Les exigences envers le développeur côté serveur sont minimales : il se contente essentiellement de fournir l'accès aux données gérées par le serveur. Ce modèle de conception simplifie considérablement le déploiement et la maintenance des frameworks applicatifs complexes.

Le script suivant utilise le framework .NET pour créer un simple message « Hello World ».

System.Windows.Forms " )from System.Windows.Forms import MessageBox MessageBox . Show ( "Hello World" )

Performance

Les performances d'IronPython par rapport à CPython , l'implémentation de référence de Python, dépendent du test de performance utilisé. IronPython est moins performant que CPython sur la plupart des tests effectués avec le script PyStone, mais meilleur sur d'autres. IronPython peut être plus performant dans les programmes Python utilisant des threads ou plusieurs cœurs, grâce à son compilateur JIT et à l'absence de verrou global d'interprétation (GIL) .

Présentation et principales caractéristiques

  1. Intégration avec .NET : IronPython vous permet d’utiliser directement

    Plus d articles de Worldlex Wiki

    Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

    Explorer l index