Kann JScript.NET zum Schreiben einer .NET-Anwendung verwendet werden?

8

Seit MS scheint Managed gelöscht zu haben JavaScript im aktuellen DLR sowohl für Server-seitige (ASP.NET Futures) als auch für Client-seitige (Silverlight), hat jemand nicht-obsolete APIs erfolgreich verwendet, um Scripting ihrer Anwendungsobjekte mit JScript.NET und / oder zu ermöglichen kann erklären, wie es geht? Eine Mono / JScript-Lösung kann auch akzeptabel sein, wenn sie stabil ist und die unten aufgeführten Anforderungen erfüllt.

Wir sind daran interessiert, einen Skript-Host zu aktualisieren, der die Microsoft JScript-Engine und die ActiveScript-APIs zu etwas mit mehr Leistung und einfacherer Erweiterbarkeit verwendet. Wir haben über 16.000 serverseitige Skripte, die mehr als 42 MB an Quellcode haben, sodass ein Umschreiben in eine andere Skriptsprache nicht in Frage kommt.

Unsere spezifischen Anforderungen sind:

  • Bemerkenswert bessere Leistung als die Microsoft JScript (ActiveScript) -Engine
    • Bessere Laufzeitleistung und / oder
    • Aufbewahrung von vorparsierten oder kompilierten Skripten (nicht bei jedem Durchlauf analysieren)
    • Niedrigere oder gleiche Speicherbelegung
  • Volle ECMA-262-ECMAScript-Kompatibilität
    • ein wenig Portierung kann toleriert werden
  • Injektion von benutzerdefinierten Objekten in den Skriptnamespace
    • .NET Objekte (keine harte Anforderung)
    • COM-Objekte oder COM-Objekte, die in .NET eingebunden sind
  • Instanziierung von COM-Objekten aus Script
    • à la "neues ActiveXObject (progid)"
    • Niedrige Priorität aufgrund des vorhergehenden
  • Dateien einschließen
    • Vorladen von "Hilfsskripten" in einen Skriptausführungskontext
    • Eine "include" -Funktion oder Anweisung (einfach zu erstellen, in Anbetracht der oben genannten)
  • Unterstützung für Code im globalen Gültigkeitsbereich
    • Ausführung des Codes der globale Bereich
    • Aufbewahrung von Werten, die auf globaler Ebene initialisiert wurden
    • Extraktion von Werten aus dem globalen Gültigkeitsbereich
    • Injektion und Ersetzung von Werten im globalen Gültigkeitsbereich
  • Aufruf von skriptdefinierten Funktionen
    • mit Parametern
    • und mit Zugriff auf den zuvor initialisierten globalen Bereich
  • Debuggen auf Quellcodeebene
  • Kommerzieller oder Open Source-Support
  • Nicht veraltete APIs
James Hugard 01.06.2009, 23:53
quelle

7 Antworten

3

Ich habe eine ähnliche Frage hier . Werfen Sie einen Blick auf IronJS , eine Implementierung von JavaScript in F #, die auf dem DLR läuft.

    
user29439 08.04.2010 20:22
quelle
2

Früher oder später stelle ich mir vor, jemand würde ein DLR-Javascript schreiben. Ich weiß, dass das momentan nicht sehr praktisch für dich ist, aber vielleicht könntest du das Projekt starten. Ich vermute, es hätte eine bessere Kosten / Nutzen-Analyse für die Verwendung von JScript.NET.

    
Julian Birch 02.06.2009 17:08
quelle
1

Wenn Sie von .NET und Microsoft weggehen, sollten Sie Mozillas Rhino ausprobieren. Es ist eine Open-Source-Implementierung von vollständig in Java geschriebenem JavaScript. Viele moderne Server js Bibliotheken zielen auf diese Plattform.

    
thatismatt 16.06.2009 15:16
quelle
1

Ich habe CSScript.net verwendet, damit Sie C # als Skriptplattform ausführen können. Von der Seite:

  

CS-Script kombiniert die Kraft und   Reich an C # und FCL mit dem   Flexibilität eines Skriptsystems.   CS-Script kann für System und   Netzwerkadministratoren, Entwickler und   Tester. Für jeden, der einen braucht   Automatisierung zur Lösung von Vielfalt   Programmieraufgaben.

CS Script erfüllt alle Bedingungen, die Sie angelegt haben. Ich habe es in der Produktion als Ersatz für Boo verwendet, es hat wirklich gut funktioniert. Sie können es in Aktion hier sehen.

    
David Robbins 23.12.2009 00:38
quelle
0

Die Verwendung von Com interop bedeutet, dass Sie auf eine MS-Lösung beschränkt sind, die Java und Opensource so wenig wie möglich damit zu tun haben wollen.

Ich sehe keine Lösung, die alle Ihre Anforderungen unterstützt, entweder Sie werfen alle COM / .NET-Sachen und gehen Java (Rhino) / Linux / Open Source oder Sie fragen die Verwendung von Javascript als Ihre Server-Sprache auch in der Linux-Welt Wir verwenden PHP / Python / Ruby mehr auf dem Server, wenn wir Java nicht ausführen können. Sie werden keine großen Leistungssteigerungen mit Java-Skript sehen, da die Sprache die Hauptbarriere ist.

Ich würde nicht auf Leute zählen, die ein neues DLR schreiben, da das Server-Java-Skript schnell aussterben wird.

In Anbetracht der Tatsache, dass Sie Leistung wollen, was ist mit F #? Microsoft wird die Jscript-Engine mindestens 5 Jahre lang unterstützen, damit Sie Zeit haben, neue Sachen in F # zu erstellen, während Sie den Code langsam migrieren.

    
ben 01.12.2009 04:40
quelle
0

Hast du ROScript gesehen? Ссылка

Unterstützt sowohl PascalScript als auch ECMAScript (Javascript) -Syntax

    
George Birbilis 22.07.2013 12:59
quelle
0

Die Jurrassic -Engine ist am Leben und tritt.

Von ihrer Codeplex-Seite:

  • Unterstützt alle Funktionen von ECMAScript 3 und ECMAScript 5, einschließlich des strikten ES5-Modus
  • Gut getestet - geht über fünftausend Unit-Tests (mit über 30.000 bestätigt)
  • Einfache, aber leistungsstarke API
  • Kompiliert JavaScript in .NET-Bytecode (CIL); kein Dolmetscher
  • Wird als einzelne .NET-Assembly bereitgestellt (kein systemeigener Code)
  • Grundlegende Unterstützung für das integrierte Debugging in Visual Studio
  • Verwendet eine leichte Code-Generierung, so dass generierter Code vollständig in Garbage Collection gesammelt wird
  • Getestet auf .NET 3.5, .NET 4 und Silverlight
Sebastian 08.12.2013 23:29
quelle