Page 1 of 2 12 LastLast
Results 1 to 10 of 17

Thread: Änderung der Scripting-Syntax zu c#

  1. #1

    Änderung der Scripting-Syntax zu c#

    Hallo,
    es ist zwar noch nicht in Stein gemeißelt, aber mit großer Wahrscheinlichkeit wird es bald möglich sein, C# (.NET) als Scriptsprache zu verwenden. Eine Dual-Unterstützung (LarneScript+C#) wird zwar in Erwägung gezogen, wird es aber nur mit sehr geringer Wahrscheinlichkeit geben, da die C# Ausführung und die LarneScript Ausführung einen komplett anderen Weg gehen.

    Aus Entwicklersicht gibt es einige viele Vorteile:
    - Es kann ein Visual Studio (Express) 2010 gearbeitet werden, oder SharpDevelop(open source).
    - IDE-Nutzer können eine Api-Library nutzen.
    - Vollständiges Intellisense.
    - Nie mehr Laufzeitfehler durch "Syntaxfehler", welche vom LarneScript-Compiler nicht richtig behandelt wurden.
    - Das volle Funktionssprektrum von C#, dazu zählen:
    * Vererbung für eigene Klassen
    * Funktionsüberladung
    * Delegates
    * Events
    * Try-Cahtes
    * und vieles mehr

    Die API an sich wird nicht erweitert. Sie bleibt (fast) genau gleich. Technisch gesehen wird der vom Spieler hochgeladene Quelltext auf dem Server in Javascript konveriert und in einer Javascript-Engine auf dem Server ausgeführt. Die Konvertierung von C# in Javascript funktioniert sehr gut, die neue GUI von STNE z.B. wird auf dem selben Weg "generiert".

    Die Änderung an der ScriptEngine ist allein auch deshalb schon notwendig, weil nur so wäre es möglich in Zukunft Extensions auch für die neue GUI anzubieten. Direkten Javascript-Zugrif wird es jedoch nicht geben. Dies hat technische Hintergrunde (die after-compilation-js-Funktionen(nicht sichtbar in c#) heißen z.B. STNE.app.Callme$String$Integer$Integer$Type etc., also sehr unleserlich), als auch aus Sicherheitsgründen(es wird z.B. kein document, htmlelement-api etc. geben.). Natürlich kann sich jeder per firefox-extension sich beliebige scripts einfügen, aber offizelle STNE-extension sollten gefahrlos von anderen spielern ausgeführt werden wollen, ohne dass gleich die session-cookies "entführt" werden.

    Lieben Gruß,
    Arakis
    Betreiber vom Shopping-Portal www.edaro.de


    Unternehmensseite: www.tamani.de

  2. #2
    Senior Member
    Join Date
    Aug 2011
    Location
    Erde - Deutschland - Sachsen-Anhalt - Harz
    Posts
    180

    Re: Änderung der Scripting-Syntax zu c#

    Das heißt im Klartext, alle Scripte geben von jetzt auf gleich ihren Geist auf und müssen neu geschrieben werden?

    Die Syntaxunterschiede werden zwar nicht all zu groß sein, aber machen muss man es trotzdem erstmal.
    Dies ist meine Meinung. Sie kann nicht durch Beleidigung, Drohung oder Schmeicheleien geändert werden.

  3. #3

    Re: Änderung der Scripting-Syntax zu c#

    Quote Originally Posted by Sargraner
    Das heißt im Klartext, alle Scripte geben von jetzt auf gleich ihren Geist auf und müssen neu geschrieben werden?
    Das heisst es dann wohl - Ich denke aber mal langfristig ist es definitiv eine bessere Lösung, das auf C# umzustellen. Das Schreiben neuer Scripte wird dadurch ja deutlich einfacher... Und wohl auch die Wartung der Scriptengine.
    Offizieller Forenspammer seit 2003.

  4. #4
    Senior Member
    Join Date
    Nov 2011
    Posts
    150

    Re: Änderung der Scripting-Syntax zu c#

    Quote Originally Posted by Arakis
    offizelle STNE-extension sollten gefahrlos von anderen spielern ausgeführt werden wollen, ohne dass gleich die session-cookies "entführt" werden.
    Man könnte sich theorethisch über ein Callback versteckt JavaScript-Code holen, der dann in die Seite eingefügt wird (nur mal so nebenbei).
    Du meinst wohl, dass man mit Addons nicht auf interne Inhalte zugreifen kann.

    lg
    Elchi
    Gelb und grau - Proximo ist schlau,
    Proxi ist ein Held, gebt ihm euer Geld,
    Ihr seid alle dumm und meckert doch nur rum,
    seid nicht so unfair, sonst bekommt ihr keine Updates mehr

  5. #5

    Re: Änderung der Scripting-Syntax zu c#

    Elchi, es wird keine Möglichkeit geben, per callback etc. sich Javascripte dynamisch einzufügen, weil die client-js-api in c#(für die "neue" gui) nur aus einem kleinem subset der offiziellen javascript-api sein wird. Es gibt also kein xmlhttprequest, document, htmlelement, setattribute etc, es werden nur vordefinierte, stark "restriktive" controls geben, wie derzeit von den server-extenstions her bekannt. Das es die funktionen im "echten" javascript (und der client code den compilierten 1:1 ausführt), spielt keine rolle, denn was in der c#-api nicht definiert ist, kann niemals erfolgreich kompiliert werden(auf c# ebene), geschwiege denn erfolgreich in js ungewandelt werden. Und ob man dann manuell eigene js-dateien per firefox extension anhängt ist ja jedem seine sache, dann darf er sich a) mit komischen funktionsnamen herumschlagen(welche sich übrigens häufig ändern könnten, da autogeneriert) b) kann er die scripte nicht "mal eben" anderen spielern unterschieben.

    Mit den jetztigen Extensions hast du ja auch keine Möglichkeit, dem Spieler js unterzuschieben, jstoogle etc. sind stark restriktive, vordefinierte funktionen. Die Deviese der Script engine war schon von begin an: Nicht zu viele funktionen auf Kosten der Sicherheit. Denn schwarze Schafe wird es immer geben, Vertrauen darf man nicht setzen. Zwar kann man mit den jetztien Extension auch "mist" bauen, aber zumindest keine login-session entführen / unkontrollierten jscode auf dem client ausführen.

    Lieben Gruß,
    Arakis
    Betreiber vom Shopping-Portal www.edaro.de


    Unternehmensseite: www.tamani.de

  6. #6
    Senior Member
    Join Date
    Nov 2011
    Posts
    150

    Re: Änderung der Scripting-Syntax zu c#

    @arakis: gib mal ScriptContext.WriteApplog("<script>alert('Test');</script>"); in einer Extension ein.

    lg
    Elchi
    Gelb und grau - Proximo ist schlau,
    Proxi ist ein Held, gebt ihm euer Geld,
    Ihr seid alle dumm und meckert doch nur rum,
    seid nicht so unfair, sonst bekommt ihr keine Updates mehr

  7. #7

    Re: Änderung der Scripting-Syntax zu c#

    unnötig das in einer extension zu tun... das ist ein vollständiges script
    seltsam dass das noch keinem eingefallen ist seine grease-monkeys da einzubauen...
    dann funzen die von jedem browser aus ^^

    anyway zum topic...

    ich finde den umstieg zu c# auch spitze. ich denke das wird das entwickeln stark vereinfachen (ide, klar definierte sprache).
    die meisten scripts müssten doch auch automatisch konvertiert werden können... oder?

  8. #8

    Re: Änderung der Scripting-Syntax zu c#

    also generell find ichs auch scho toll. gerade wegen der ide. das im editor gerumsche is einfach ätzend. aber aus aktueller situation is das ganz schön abartig >< 2 scripte für die öffentlichkeit mit je über 2k loc fast fertig un dann sowas

  9. #9

    Re: Änderung der Scripting-Syntax zu c#

    Prinzipiell gut.
    Aber ich habe leider keine Zeit mich monatelang hinzusetzen und mein Allianz-Skript neu zu schreiben mit knapp 3000 Zeilen Code (inklusive dazugehöriger GUI-Extension).
    Ist es nicht möglich, eine Übergangsphase zu machen oder sowas? Ist ja sonst unmöglich für die arbeitende Bevölkerung.

  10. #10
    Senior Member
    Join Date
    Nov 2011
    Posts
    150

    Re: Änderung der Scripting-Syntax zu c#

    da kann ich wirklich nur zustimmen. Man könnte auch einfach 2 Typen an Scripten einführen

    lg
    Elchi
    Gelb und grau - Proximo ist schlau,
    Proxi ist ein Held, gebt ihm euer Geld,
    Ihr seid alle dumm und meckert doch nur rum,
    seid nicht so unfair, sonst bekommt ihr keine Updates mehr

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •