Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

appeler du code .Net en python?

+5 votes

Avez vous déjà été confronté à la problématique d'appeler des libs .Net en python ?

Utilisez-vous IronPython pour cela ?
Python for .NET (qui semble un peu à l'abandon) ? Autre?

demandé 5-Jun-2015 par Radagast (124 points)
edité 5-Jun-2015 par max

1 Réponse

+4 votes

Selon le wiki dedié à l'intégration d'autres langages dans python, tu n'as pas l'embarras du choix pour utiliser du code .net dans python, à savoir :

Python for .NET :

Python for .NET is a near-seamless integration of the CPython runtime with the .NET Common Language Runtime (CLR).

IronPython :

IronPython is an implementation of Python for .net, which allows you
to import .net class libraries seamlessly in Python.

Quant au choix pour l'un ou l'autre, je t'encourage à lire le post SO :

If you want to mainly base your code on the .NET framework, I'd highly
recommend IronPython vs Python.NET. IronPython is pretty much native
.NET - so it just works great when integrating with other .NET langauges.

Python.NET is good if you want to just integrate one or two components
from .NET into a standard python application.

There are notable differences when using IronPython - but most of them
are fairly subtle. Python.NET uses the standard CPython runtime, so
this Wiki page is a relevant discussion of the differences between the
two implementations. The largest differences occur in the cost of
exceptions - so some of the standard python libraries don't perform as
well in IronPython due to their implementation.

En gros, si tu comptes utiliser le framework .NET t'as tout intérêt à utiliser IronPython :

IronPython uses the Dynamic Language Runtime, a framework for writing
dynamic languages for .NET which originated in IronPython 1.

Il tient même tête à CPython en termes de performances :

Performance is comparable to CPython - much faster for some things

, tandis que si tu as juste besoin d'un bout de code .NET dans une application python, t'as tout intérêt à utiliser Python for .NET.

Ps : en lisant le wiki d'IronPython, on apprend qu'en fait :

IronPython is an open source implementation of Python for the .NET CLR
and Mono, originally created by Jim Hugunin.

répondu 6-Jun-2015 par boblinux (3,092 points)
edité 6-Jun-2015 par boblinux
...