Webanwendungen mit Mono

Dieses Thema: "Webanwendungen mit Mono" im Forum "Java/Mono/dotGNU" wurde erstellt von miketech, 10.08.2005.

  1. #1 miketech, 10.08.2005
    miketech

    miketech Routinier

    Dabei seit:
    03.04.2003
    Beiträge:
    403
    Zustimmungen:
    0
    Hi zusammen,

    mit Java kann ich ja sehr bequem Webanwendungen schreiben, z.B. Serverdienste, oder auch Webservices, inkl. dynamische Webseiten usw.

    Wie mache ich sowas mit Mono?

    Also Server werde ich damit ja ohne Probleme schreiben können, da ich mit Mono sicher auch ohne weiteres einen Socket öffnen kann.

    Aber wie schauts mit dynamischen Webseiten und Webservices aus? Unter .NET gibt es soweit ich weiß dafür ASP.NET. Da ASP.NET aber nicht zum Standard gehört und sicher voller Patente von MS ist möchte ich das nicht nutzen. Gibts da auch was eigenes für Mono?


    Und noch eben eine Frage zu C#:

    Wenn ich eine Anwendung mit mehreren Threads habe, wie geh ich mit gemeinsam genutzten Variablen um? Mit Java kann ich eine Variable als synchronized deklarieren und dann kümmert sich Java darum, dass keine zwei Threads gleichzeitig auf eine Variable zugreifen. Wie ist das unter C#?

    Gruß

    Mike
     
  2. Anzeige

    schau mal hier --> (hier klicken). Viele Antworten inkl. passender Shell-Befehle!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. pinky

    pinky König

    Dabei seit:
    11.08.2004
    Beiträge:
    795
    Zustimmungen:
    0
    ich wüßte nicht, dass es was anders für Mono gibt. Es gibt ja auch keinen Grund nicht etwas zu implementieren wie man es von .Net kennt, höchstens man wollte zwanghaft inkompatibilitäten herein bekommen.

    Bei C# macht lock() das gleiche.

    Allgemein ist das keine schlechte Quelle[0] wenn du wissen willst wie eine bestimmte Funktion von Java unter C# heißt oder wo die Unterschiede sind.

    [0] http://www.25hoursaday.com/CsharpVsJava.html
     
  4. #3 miketech, 10.08.2005
    miketech

    miketech Routinier

    Dabei seit:
    03.04.2003
    Beiträge:
    403
    Zustimmungen:
    0
    Hi,

    naja das Problem ist, dass ASP.NET ja nun nicht zum Standard von .NET gehört, oder? Zumindest höre ich immer wieder, dass alles, was über Standard C# hinausgeht stark von Patenten betroffen sein kann. D.h. implementiere ich jetzt etwas in C#/Mono mit ASP.NET statt Java kanns sein, dass mir Microsoft irgendwann den Hahn zudreht, wenn ich nicht Windows auf dem Server habe und das Original .NET verwende, da Mono dies nicht mehr implementieren darf.

    Danke für den Link, werde ich mir mal in Ruhe durchlesen.

    Aber noch eine Frage: Auf PL wurde zuletzt diskutiert, wie das mit dem Heap und Stack läuft, bei Structs und Classes. Kann mir das hier vielleicht nochmal jemand erklären? Wo genau sitzt Heap und wo sitzt der Stack im Speicher?

    Gruß

    Mike
     
  5. #4 miketech, 10.08.2005
    miketech

    miketech Routinier

    Dabei seit:
    03.04.2003
    Beiträge:
    403
    Zustimmungen:
    0
    Hi nochmal,

    ich hab mir gerade mal den Link angeschaut. Schöne Übersicht! Allerdings wird hier anscheinend noch nicht auf Java 5 Rücksicht genommen. Mit Java 5 müsste sich die ganze Situtation ja etwas verändert haben, da so einige Features in den Sprachkern aufgenommen wurden.

    Gruß

    Mike
     
  6. #5 pinky, 10.08.2005
    Zuletzt bearbeitet: 10.08.2005
    pinky

    pinky König

    Dabei seit:
    11.08.2004
    Beiträge:
    795
    Zustimmungen:
    0
    ja.

    das trifft wahrscheinlich auch auf Teile des Standards zu und auch auf alle anderen Programmiersprachen/Frameworks und Programme die über ein "Hello-World" hinaus gehen.

    Den Hahn können viele zu drehen, nicht nur MS und auch nicht nur wenn du Mono verwendest.
    Ich denke man muß das prinzipielle Verhalten von Patente klären um das zu klären.
    Patente sind völlig unabhängig von Programmiersprache, Framework und Implementierung.

    Die Funktionen die ASP.Net zur verfügung stellt sind von der Funktions- bzw. Wirkungsweise nichts anderes als das was auch die entsprechenden Java Pakete zur Verfügung stellen.
    Wenn ein Patent also die prinzipielle Funktionsweise so gut abdeckt, dass es wirklich kein Weg herum gibt, dann hätte nicht nur Mono ein Problem, sondern genauso Java, oder jede andere lib für jede beliebige Sprache die diese Funktion zur verfügung stellt.
    Diese Frage ob und wie ein Patent greift hat absolut nicht mit der verwendeten Sprache/Framework zu tun und absolut nichts mit dem Namen der Funktion.
    Wenn man bei Mono also Webservices unter einem anderen Namen entwickeln würde, hätte das auf die Patentsituation absolut keinen Einfluss. Das einzige was sich verändern würde wäre, dass es inkompatibilitäten zwischen .Net und Mono erzeugen würde. Die Patente (von MS und anderen) würde man aber entweder genauso verletzen oder genauso nicht verletzen.
    Es macht kein Sinn etwas einen eigenen Namen zu geben und zu glauben damit hätte man weniger mögliche Patentprobleme.

    Naja, sie sitzen alle im gleiche Speicher, du hast ja nur "einen" Speicher. Die Frage ist die Organisation. Der Heap (zu deutsch Halde) ist quasi ein großer Haufen wo jeder seine Sachen hinschmeißt und sich (auf dem Stack) merkt wo sie liegen. Diese Halde hat natürlich seine Probleme, wenn jemand neues etwas ablegen will muß er erstmal nach einem Platz suchen wo das neue Datum hin passt, man kann sich vorstellen das der Speicher mit der Zeit ziemlich stark fragmentiert und vielleicht viele kleine Lücken übrig bleiben und ein neues Datum keine groß genuge Lücke mehr findet. Dann gibt es zwei Möglichkeiten entweder du hast einen heapt überlauf und das Programm stürzt ab oder der Heap kann sich reorganisieren um die kleinen Lücken so zu ordnen, dass ein Segment entsteht das groß genung für das Datum ist.
    Wie du dur vorstellen kannst braucht das aber natürlich alles seine Zeit, wodurch der Heap im allgemeinen deutlich langsammer ist.

    Der Stack ist wie der Stack den du auch als Datenstruktur programmieren kannst ein ganz einfacher Keller (LIFO). Die Daten werden nacheinander wie sei kommen auf den Stack gelegt und so wie man die Blöcke verlässt auch wieder abgetragen. Die Daten die auf dem Stack landen müssen also Wertetypen sein die eine feste Lebensdauer in dem Block haben in dem sie erzeugt wurden. Dass das viel weniger Arbeit macht und der Specher optimal genutzt wird denke ich kann man erkennen.
     
  7. #6 miketech, 10.08.2005
    miketech

    miketech Routinier

    Dabei seit:
    03.04.2003
    Beiträge:
    403
    Zustimmungen:
    0
    Hi,

    erstmal danke für die genaue Erläuterung von Heap und Stack. Wo landen denn Variablen, wie:

    int i;

    ? Ist das auf dem Stack? Weil das Problem ist ja:

    int i;
    int j;

    Nun würde j doch über i liegen, d.h. an i komm ich nicht dran. Oder kann ich auch durch den Stack durchnavigieren?

    Selbiges Problem, wenn ich nur Adressen auf dem Stack speichere. Irgendwie muss ich ja dran kommen.

    Mit den Patenten hast Du natürlich Recht. Vielleicht liegts auch nur an dem Beigeschmack, den ASP.NET bei mir erzeugt :)

    Gruß

    Mike
     
  8. pinky

    pinky König

    Dabei seit:
    11.08.2004
    Beiträge:
    795
    Zustimmungen:
    0
    An die Daten die auf dem Speicher sind kommst du natürlich immer ran, es ist nur eine Frage wie der Speicher belegt und freigegeben wird.

    Ein Beispiel:
    Code:
    begin
      int i
      int j
      begin
        int x
          begin
            int y
          end
        int z
      end
    end
    
    der Stack pulsiert jetzt im Laufe des Programms so:
    i;j
    i;j;x
    i;j;x;y
    i;j;x;z
    i;j

    Solange die Daten auf dem Stack sind kommst du natürlich immer an alle auch ran.
     
  9. #8 miketech, 10.08.2005
    miketech

    miketech Routinier

    Dabei seit:
    03.04.2003
    Beiträge:
    403
    Zustimmungen:
    0
    Ah ok, d.h. ich muss mich nicht um ein mühseliges Freigeben des Speichers kümmern, da es eh von oben nach unten wieder freigegeben wird. Korrekt?

    Dafür ist der Stack wesentlich kleiner, als Heap, wenn ich das richtig sehe.

    Gruß

    Mike
     
Thema:

Webanwendungen mit Mono

Die Seite wird geladen...

Webanwendungen mit Mono - Ähnliche Themen

  1. Sicherheit: FuzzDB verbessert Testen von Webanwendungen

    Sicherheit: FuzzDB verbessert Testen von Webanwendungen: FuzzDB ist eine freie Datenbank mit Mustern und Ressourcen für Angriffe auf Webseiten. Ihr Hauptzweck ist es, Sicherheitsexperten das Suchen und...
  2. Xamarin übernimmt Mono-Support für Suse

    Xamarin übernimmt Mono-Support für Suse: Xamarin, die kürzlich gegründete Firma ehemals bei Suse beschäftigter Mono-Entwickler, ist eine Parterschaft mit Suse eingegangen. Weiterlesen...
  3. FFMPEG none monotone timestamps

    FFMPEG none monotone timestamps: Hallo, also hier steht jetzt seit kurzem ein neuer Fernseher inkl. Netzwerk/UPNP. :)) Leider ließt der meine VDR Aufnahmen erst, nachdem die...
  4. mod_mono und asp.net 3.5

    mod_mono und asp.net 3.5: hi, ich möchte gerne über meinen apache auch asp.net 3.5 seiten zur verfügung stellen. dies soll mit mod_mono funktionieren ... mit 2.0 ... mir...
  5. Kein Mono in Debian-Standardinstallation

    Kein Mono in Debian-Standardinstallation: In einer Reaktion auf Richard Stallmans jüngste Warnung vor Mono und C# hat ein Sprecher von Debian erklärt, dass es kein Mono in der...