Ein Beispiel, das perfekt zu IronPython passt, ist, wenn Sie die Skriptfähigkeit in Ihre Anwendung integrieren möchten. Ich habe an Systemen gearbeitet, auf denen der Benutzer mit dem gesamten Anwendungsklassenmodell direkt über die In-App-Python-Scripting-Ebene interagieren kann und den fortgeschrittenen Benutzern eine große Flexibilität bietet.
Ein konkretes Beispiel ist, wenn Sie "Hooks" in der Anwendung offenlegen wollen, wo der Benutzer die Geschäftsregeln anpassen kann (sagen Sie beispielsweise eine benutzerdefinierte Maklergebührenberechnung, wenn ein neuer Trade beispielsweise in einem Handelssystem erstellt wird) / p>
Bearbeiten pro Anfrage: Hier ist ein einfaches (verspottetes) Beispiel. Wenn ein Benutzer einen neuen Trade im System erstellt, prüft das System, ob die folgende Python-Funktion definiert ist. Falls vorhanden, erhält der Handel das Ergebnis der Funktion als Gebühr, bevor er in die Datenbank übernommen wird:
%Vor%Ich habe gerade meine IronPython-Point-of-Sales-Serviceanwendung zu Beginn dieses Monats bereitgestellt. Die Dienstanwendung ist eine RESTful HTTP-Server-Serving-Abfrage & amp; Transaktionsanforderung an .NET WinForms-Client. Mit Hilfe einer Remoting-Bibliothek wird die Dienstanwendung rein in IronPython implementiert.
Meiner Meinung nach ist Python zweifellos die beste Programmiersprache für komplexe Geschäftslogiken. Hier sind meine Gründe.
Die Sprache ist sehr ausdrucksstark. Ich könnte endlose Ideen für interne DSL entwickeln, die meine Geschäftslogik kürzer und einfacher zu verstehen machen.
Es ist interaktiv. Fehlersuche und Logiktests können interaktiv durchgeführt werden.
Es ist dynamisch. Es ist Freiheit. Keine XML-Konfiguration Keine Rohrleitungen. Keine Kompilierung.
Ich kann in meinem Lieblings-Editor arbeiten.
Die meisten Skeptiker erwähnen immer "Code-Vervollständigung" und "Debugger". Nun, ich vermisse sie manchmal. Ich bin mir jedoch bewusst, dass ich diese Annehmlichkeiten bewusst zugunsten eines wesentlich wichtigeren Faktors, der Verständlichkeit, aufgegeben habe. Mit dem richtigen Komponententest und der Protokollierung würde ich IronPython über alle Sprachen für meine Geschäftslogiken auswählen.
aktualisiert:
Manchmal experimentiere und protokolliere ich Benutzerprobleme mit Ironpython Script, die sich so verhalten, als wäre es ein Client wie folgt:
%Vor%Manchmal untersuche ich Fehler, indem ich ein Serverobjekt wie dieses scripte:
%Vor%Sie finden den Code vielleicht nicht zu elegant, da ich meine Arbeit lieber auf ADO.NET DataSet stütze. Es ist jedoch einfacher für den Windoows Forms-Client.
Im Tagesjob ist es meine Standardsprache für die kleinen Teile des Build-Prozesses, die zu viel für .bat-Dateien sind und nicht schwer genug, um eine separate ausführbare Datei zu verlangen; Dies schließt alles ein, was ein wenig XML-Verarbeitung oder Reflektion verwenden könnte - zum Beispiel die Erzeugung von Wix-Dateien mit systematischer Handhabung von 32- und 64-Bit-Installationen. Es übertrifft PowerShell in dieser Rolle, da IronPython eine XCOPY-Installation auf Build-Rechnern ist.
Es ist auch sehr nützlich für das Prototyping von Code-Fragmenten gegen unbekannte oder komplexe APIs (WMI und Active Directory sind die üblichen für mich), oder Diagnose von Problemen im Code mit diesen APIs (wie das Ausspüren der Seltsamkeiten, die passieren, wenn Sie sind) auf dem Domänencontroller statt anderswo).
Erstellt ein Ladewerkzeug für ein MS Group Chat Server Plugin. Die GC-API befindet sich in C #. Ich wickelte das in eine DLL und ließ FePy es laden. Die Hauptanwendung, Konfigurationsskripte usw. sind alle in FePy.
Ich verwende IronPython für einige verschiedene Zwecke:
Wir verwenden es sehr für kleine Verwaltungstools gegen SharePoint. Insbesondere ist es fantastisch, die API gegen reale Daten zu erforschen (mit all ihren realen Macken). Entwicklungsiterationen sind schneller und Sie können Visual Studio nicht immer auf Produktionsservern installieren.
Tags und Links python ironpython