Ankündigung

Einklappen
Keine Ankündigung bisher.

.NET / Mono und PHP

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • .NET / Mono und PHP

    Hallo zusammen,

    aus verschiedenen Gründen möchte ich PHP mit .NET bzw Mono zusammenbringen. Ich habe auch gesehen, das es schon einige Ansätze zu dem Thema gibt, wobei bis jetzt nichts offizielles dabei ist oder die Umsetzung schon einige Jahre alt ist.
    Nutzt jemand die Kombination? Hat jemand Erfahrungen bzw. aktuelles zu dem Thema? Wenn ich in der Richtung etwas mache, möchte ich nicht auf etwas setzen was vielleicht in einem halben Jahr nicht mehr gepflegt wird.

    vg
    prodigy7

  • #2
    Ich dachte, PHP: COM and .Net (Windows) - Manual sei "offiziell". Wird das nicht mehr gepflegt?

    Kommentar


    • #3
      Das läuft aber nur unter Windows oder? Ich möchte ja .NET (also im Prinzip Mono) als Plattformunabhängige Möglichkeit nutzen (Okay, die Binarys fürs jeweilige OS, aber quasi unabhängig)

      Wie das hier: PECL :: Package :: mono - nur in Aktuell!

      Kommentar


      • #4
        Also eine Erweiterung, die die verschiedenen bindings für Microsoft-dotnet und Mono möglichst verbirgt und vereint? Ist mir leider noch nicht untergekommen.
        Nicht das, was Du suchst: core:start [Phalanger]
        Aber vielleicht kommst Du von da aus an weitere Informationen zum Thema.

        Kommentar


        • #5
          Okay... ich guck es mir mal an. Vielleicht zu den Hintergründen:

          Ich habe eine Serveranwendung, aufgeteilt in Backend und Frontend, beides in PHP geschrieben. Jetzt ist PHP in z.B. Sachen Speicherverbrauch nicht gerade das gelbe vom Ei. Ich möchte im Prinzip jetzt das komplette Backend mit allen Funktionen, die im Frontend aufgerufen werden, zu einer für Serveranwendungen optimaleren Programmiersprache portieren.
          Momentan läuft das Backend noch Queue gesteuert (also alle x Minuten), ich möchte das aber in einen Daemon überführen.
          .NET bzw. Mono kommt mir hier in den Sinn, weil das ganze relativ Plattformübergreifend ist und ich mir dadurch nicht den Weg verbauen würde.

          Kommentar


          • #6
            Zitat von prodigy7 Beitrag anzeigen
            Jetzt ist PHP in z.B. Sachen Speicherverbrauch nicht gerade das gelbe vom Ei.
            Ah, sicher? Als Argument für PHP wird doch gerade der relativ geringen footprint (und die geringen Starthürden) vorgebracht. Und wenn ich mir gerade mal die Speichernutzung von PHP im firmeninternen Apache ansehe, dann gehen da zwar schon 45MB drauf, aber das meiste davon ist als shared markiert.
            Oder geht es um spezielle Funktionalität, die zur Zeit bei PHP suboptimal und speicherhungrig umgesetzt wird.
            Ich weiss nicht, was für Aktionen in der Queue gespeichert werden. Aber kann man die nicht zum Beispiel per php in eine Datenbank schreiben und von .net daemon auslesen und verarbeiten lassen?

            Kommentar


            • #7
              Hi,

              Muss das Backend denn Plattformübergreifend sein? In der Regel reicht es doch beim Frontend übergreifend arbeiten zu können, was du ja durch die Verwendung eines Webfrontends machst.
              Im Background könntest du doch über ASP/.Net gehen?

              Gruß Thomas

              Kommentar


              • #8
                Zitat von Thomas Beitrag anzeigen
                Muss das Backend denn Plattformübergreifend sein? In der Regel reicht es doch beim Frontend übergreifend arbeiten zu können, was du ja durch die Verwendung eines Webfrontends machst.
                Im Background könntest du doch über ASP/.Net gehen?
                Jap - auch das Backend sollte Plattformübergreifend sein. Ich denke heutzutage wäre es Blöd, bei einer Entwicklung nicht auf die Portierbarkeit auf andere OS zu achten.

                Das Speicherproblem mit PHP ist, dass wenn man sich aufgrund von diversen Variablen, Objekten usw Speicher an sicht reißt und später durch unset bzw =NULL versucht den wieder frei zu geben, der Speicher nie wieder ganz freigegeben wird wie er vorher mal war. Wenn man dann kein Queue-Konzept hat (wie ich zu Anfang, bevor ich umgestellt habe), läuft der Speicher für die Cli-Anwendung irgendwann zu. Ich nutze für Datenbank-Zugriff z.B. auch EZPDO und bei ein paar komplexen Abfragen ist der Speicher einfach dicht (800MB in einem Fall). Solange man seine Anwendungen für den Webserver schreibt, ist das kein Problem - lässt man die auf der Kommandozeile laufen, ergibt sich mit der Zeit das Speicherproblem.

                Am Anfang fiel die Wahl auf PHP als Backend-Sprache einfach, weil es recht viele Funktionen (z.B. PDF) mitbringt und einfach zu nutzen ist. .NET / Mono wäre jetzt meine nächste Wahl, weil dafür auch entsprechend viele Bibliotheken verfügbar sind so dass ich die Funktionalität eigentlich problemlos nachbilden können sollte. In Sachen Performance gehe ich auch von aus, dass .NET / Mono ein gutes Stück flotter ist als wenn der Code jedes mal neu interpretiert wird.

                Kommentar


                • #9
                  Zu dem Thema auch noch ein interessanter Link: Optimize PHP memory usage: eliminate circular references | Alex @ Net

                  Kommentar


                  • #10
                    Hi,

                    Seit der Zusammenarbeit von Novell und Microsoft habe ich nichts mehr von Mono gehört. Arbeiten die da noch wirklich effektiv dran? Ansonsten würde ich eben deshalb von Mono abraten, da gibts dann bestimmt bessere Alternativen. Was ist denn mit Ruby on Rails, kann man das nicht einsetzen? Soll doch auch gut sein, weiß nicht wie es mit der Plattform da aussieht.

                    Gruß Thomas

                    Kommentar


                    • #11
                      Zitat von Thomas Beitrag anzeigen
                      Seit der Zusammenarbeit von Novell und Microsoft habe ich nichts mehr von Mono gehört. Arbeiten die da noch wirklich effektiv dran? Ansonsten würde ich eben deshalb von Mono abraten, da gibts dann bestimmt bessere Alternativen. Was ist denn mit Ruby on Rails, kann man das nicht einsetzen? Soll doch auch gut sein, weiß nicht wie es mit der Plattform da aussieht.
                      Also ein Kollege hat mir gerade heute erst erzählt, das MS wohl mit PHP zusammenarbeit (Artikel aus einer aktuellen Zeitschrift). Könnte also auch entsprechend bald Früchte tragen. Ich brauche halt eine Möglichkeit, möglichst einfach heraus aus dem PHP Frontend auf das Backend bzw dessen Funktionen zugreifen zu können. .NET hat halt auch den Vorteil, das es X Programmiersprachen vereint.

                      Kommentar


                      • #12
                        Wie sieht denn im Moment die Queue genau aus? Was passiert da, was für Daten werden da in welcher Form eingereiht?

                        Kommentar


                        • #13
                          Zitat von prodigy7 Beitrag anzeigen
                          Also ein Kollege hat mir gerade heute erst erzählt, das MS wohl mit PHP zusammenarbeit (Artikel aus einer aktuellen Zeitschrift). Könnte also auch entsprechend bald Früchte tragen. Ich brauche halt eine Möglichkeit, möglichst einfach heraus aus dem PHP Frontend auf das Backend bzw dessen Funktionen zugreifen zu können. .NET hat halt auch den Vorteil, das es X Programmiersprachen vereint.
                          Hi,

                          Die Programmiersprachen werden meines Wissens nach aber nur imitiert, damit z.B. ein Javaprogrammierer einen leichten Umstieg zu .Net hat. Du kannst das Programm ja nicht in der JVM laufen lassen.
                          .Net selber bietet zwar theoretisch die Plattformunabhängigkeit, aber da es eben das .Net FW nur für Windows gibt (mal abgesehen von Mono, was aber immer hinterhinkt), ist dieses eben nicht gegeben.
                          Da wäre es doch praktischer, direkt auf Java zu setzen, oder eben auf Ruby (womit ich mich aber nicht auskenne)!?
                          Bei Java hast du dann direkt auch das passende Javafrontend, netbeans oder so.

                          Gruß Thomas

                          Kommentar


                          • #14
                            Zitat von Thomas Beitrag anzeigen
                            Die Programmiersprachen werden meines Wissens nach aber nur imitiert, damit z.B. ein Javaprogrammierer einen leichten Umstieg zu .Net hat.
                            Was genau wird wo und von wem imitiert?
                            Zitat von Thomas Beitrag anzeigen
                            Du kannst das Programm ja nicht in der JVM laufen lassen.
                            Es ist ja auch kein Java. Das Analogon zur JVM bei dotnet ist die CLR (common language runtime). So wie der java compiler bytecode für die jvm erstellt, erzeugt der .net compiler bytecode für die clr.

                            Kommentar


                            • #15
                              Hi,

                              Ich weiß, habe ja auch mit C# schon programmiert. prodigy7 ging es ja darum, dass man eben die anderen Programmiersprachen nutzen kann, weshalb ich das Beispiel mit Java angeführt habe, denn J# ist eben kein Java, es wird nur die Syntax nachgebaut/imitiert.

                              Gruß Thomas

                              Kommentar

                              Lädt...
                              X