Ankündigung

Einklappen
Keine Ankündigung bisher.

Welches Framework?

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

  • Welches Framework?

    Welches Framework nutzt ihr und warum?

    Wir nutzen aktuell Mootools (noch in der 1.2.x Version mit ClientCide). Die Frage, die sich uns nun stellt ist ob wir auf Mootools 1.4 mit ClientCide+Behavior gehen oder auf JQuery. Und falls JQuery, ob es sich vor JQuery UI 2 überhaupt lohnt umzustellen.

    Nachdem Dojo ja mal von MS unterstützt wurde ist es dort wieder recht ruhig geworden. Und so wie es ausschaut wird MS wohl eher was eigenes anbieten, schießlich brauchen sie für die Entwicklung gegen WinRT mit Javascript ja eh Bibliotheken.

    Der Einsatzzweck geht bei uns in Richtung Apps und Desktop-Ersatz. Das gleiche Framework sollte aber natürlich auch die Spielereien für marketinggetriebene Seiten beherrschen. Und das ganze möglichst auch noch für IE7, mindestens aber IE8.

    Ideen, Vorschläge, Ratschläge, Erfahrungen?


  • #2
    also ich nutze persönlich jQuery aus folgenden gründen:

    - Einfach zu benutzen
    - Gute Dokumentation
    - Viele leute die sich damit auskennen(Wie in PHP, desswegen benutze ich auch PHP und nicht Ruby )
    - Viele Plugins die man einfach nur einsetzen braucht
    - Mobile Unterstützung für Touchgeräte(jQuery Mobile)
    - jQuery UI
    - IE7+ support (bestimmt auch IE6 hab das nur nicht installiert und meine software damit nicht getestet)
    - Wird ständig weiter entwickelt

    Mittlerweile sieht mein Standard Tempalte für seite etwa so aus
    Code:
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8" />
    <script type="text/javascript" src="jquery.min.js"></script>
    <script type="text/javascript" src="jquery-ui.min.js"></script>
    <script type="text/javascript" src="functions.js"></script>
    <title>template</title>
    </head>
    <body>
    </body>
    </html>
    irgendwie kann ich mir das garnicht mehr vorstellen, js ohne jQUery zu nutzen.

    Also ich glaube dass man eigentlich nichts falsches machen kann wenn man jQuery verwendet

    MFG
    apt-get install npm -> npm install -g bower -> bower install <package> YOLO

    Kommentar


    • #3
      BlackScorp: word!

      Kommentar


      • #4
        Im Core von jQuery, dojo und auch mootools findest du bei allen dreien sizzle.js. Sprich, der Zugriff auf DOM-Objekte sollte bei allen 3en annähernd gleich schnell funktionieren.

        Bei Mootools entwickelst du deine Application im Scope des eigentlichen Objekts/Modules. Du hast deine php-änhliche Klassenabstraktion, jedoch auf Kosten dessen, dass MooTools den Prototype von nativen Typen erweitert. Dadurch, dass MooTools den Prototype von nativen Typen erweitert, wird es unnötig schwer, jQuery und MooTools parallel zu benutzen, da dir teilweise die jQuery-Plugins brechen. Dafür kommst du in den Genuss einer klassischen Vererbung wie bei php.

        Reine jQuery-Seiten sind sehr oft Spaghetti-Code, aber die haben dann auch meistens keinen Application-Charakter. Die sind meist DOM-zentrisch umgesetzt, damit nicht modular, schwer wiederverwendbar und immer im Scope des DOM-Knotens.

        Um jQuery sinnvoll für Applikationen einzusetzen, kannst du entweder auf Frameworks wie backbone.js ausweichen oder komplett jQueryUI benutzen. Bei Benutzerplugins bin ich meistens skeptisch, einiges von dem, was jQuery-Plugin heißt, würde ich nicht verwenden wollen.

        Für jQueryUI spricht die hohe Zahl der Beitragenden plus eine Widget-Factory, von der du alle Objekte ableitest, die aber nicht im Scope des DOM-Knotens läuft.
        Um dann zu einer Applikationsstruktur zu kommen, kannst du z.B. mit dem Mediator-Pattern arbeiten und dort deine Module registrieren. Für die Darstellung der Views kannst du aus einer der Template-Engines wählen, Models lassen sich mit Deferreds sehr hübsch abbilden.

        Da mir bisherige Ansätze für Mediatoren/Controller weniger gefallen haben, hab ich mir selbst eine eigene Klassenabstraktion geschaffen, mit der du ähnlich wie in jQueryUI leicht vererben kannst. Findest du hier. Wenns dich ernsthaft interessiert, wie man „my“ benutzt, mach ich mich demnächst mal an die Doku und pushe paar Scribbles in mein github repo. Der Core ist prinzipiell jQuery-unabhängig, falls jQuery vorhanden ist, kann man sich jedoch einige Bytes durch das Verwenden von my.jquerycore.js sparen. Ist leider noch alpha, da ich in letzter Zeit viel arbeiten musste.

        Grüße


        Basti
        I like cooking my family and my pets.
        Use commas. Don't be a psycho.
        Blog - CoverflowJS

        Kommentar


        • #5
          Schon mal vielen Dank.

          Eben wegen der OOP-orientierten Programmierweise hatte ich mich damals für Mootools entschieden. Was mich dazu gebracht hat, die Entscheidung zu überdenken ist so etwas profanes wie ein Image Cropper. Für Mootools schwierig zu kriegen. Letztendlich habe ich einen jQuery Cropper verwendet und diese eine Seite dann ausgekoppelt. Mootools und jQuery gleichzeitig zu nutzen, halte ich für keine sinnvolle Alternative.

          Fertige Plugins sind überall mit Vorsicht zu genießen. Da gibt es haufenweise Schrott.

          Kommentar


          • #6
            Hier noch paar Konzepte, die dich in dem Zusammenhang interessieren könnten:
            Extending jQueryUI Widgets
            Automagic Event Registration - sehr hübsche Idee, für nicht zu komplexe Anwendungsfälle genial
            Mediator Pattern in JS
            Addy Osmani - large scale app structure
            jQueryUI widget bridge

            Darüber bin ich gestern noch gestolpert: non-trivial-js
            Benutzt einen Mediator als Kernkomponente. Jedes Modul, das sich registriert, startet sich auch automatisch. Ist komplett auf requirejs und AMD (asnychronous module definition) aufgebaut, geht also stark in Richtung ES Harmony. Das wird meine Lektüre für Weihnachten, wenn ich endlich mal mehr Zeit zum nodejsn hab

            Zum Einstieg in Deferreds: http://www.erichynds.com/jquery/usin...eds-in-jquery/
            Für jQuery-Models sehr interessant: http://api.jquery.com/jQuery.Callbacks/
            I like cooking my family and my pets.
            Use commas. Don't be a psycho.
            Blog - CoverflowJS

            Kommentar


            • #7
              mhh man könnte natürlich auch JQuery zusammen mit der Mootools Klassen-Thematik verwenden: http://moo4q.com/

              Allerdings müsste ich da jetzt nochmal schauen wie da JQuery UI reinpasst.

              Kommentar


              • #8
                Kannst dir auch mal qooxdoo anschauen. Selber noch nichts mit gemacht, aber sieht zumindest für UI Sachen vielversprechend aus

                Kommentar


                • #9
                  mhh man könnte natürlich auch JQuery zusammen mit der Mootools Klassen-Thematik verwenden: http://moo4q.com/
                  Genau das bietet dir bereits jQueryUIs' $.widget. Schau mal hier und hier vorbei.
                  Deine ui.widget-Instanzen kannst du als View ansehen. Per pseudo-selector auf jQuery kannst du dir auch alle Instanzen eines speziellen Widgets holen und dich so unabhängig vom DOM an View Events ankoppeln, falls du generell auf bestimmte Events reagieren möchtest.
                  Bspw:

                  PHP-Code:

                  $.widget'namespace.jQueryFunctionName''base.classname',{
                      
                  options: {
                          
                  5,
                          
                  5,
                          
                  5
                      
                  }
                      
                  _create : function () {
                          
                  this._trigger"Create"nullthis.ui() );
                      },
                      
                  ui : function () {
                          return $.
                  extendtrue, {}, this.options );
                      }
                      
                  // ...
                  // in deinem controller: 
                  this.element.jQueryFunctionName({ 12})

                  $(
                  ':namespace-jQueryFunctionName').on'jQueryFunctionNameCreate', function ( options ) {
                  console.logoptions // { a : 1, b : 2, c : 3 }
                  // store laden oder was auch immer ..
                  }); 
                  Natürlich kannst du Listener auch wie gewohnt direkt an den DOM-Knoten binden.

                  Für Controllerklassen hast du die freie Auswahl, eine ganz simple Class-Abstraktion findest du hier.
                  I like cooking my family and my pets.
                  Use commas. Don't be a psycho.
                  Blog - CoverflowJS

                  Kommentar


                  • #10
                    Nutze JQuery + das eine oder andere Plugin. Habe mir aber offen gestanden auch nie etwas anderes näher angesehen. Alles klappt meistens sofort, ist leicht zu verstehen und ist schnell zusammengetippt. Das mit dem Spaghetti-Code stimmt schon, ist bei meinen überschaubaren Anwendungsfällen aber nicht so schlimm.
                    Es ist schon alles gesagt. Nur noch nicht von allen.

                    Kommentar


                    • #11
                      Das mit dem Spaghetti-Code stimmt schon, ist bei meinen überschaubaren Anwendungsfällen aber nicht so schlimm.
                      Niemand hindert einen, neben jQuery auch wohlstrukturiertes natives Javascript zu verwenden. In der Kombination ist das sehr mächtig. imho sollte man sich eher ab und an den Quatsch diverser jQuery UI-Schnickanöschen sparen.
                      --

                      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                      Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                      --

                      Kommentar


                      • #12
                        Agreed.

                        Gesendet von meinem GT-I9100 mit Tapatalk
                        Es ist schon alles gesagt. Nur noch nicht von allen.

                        Kommentar

                        Lädt...
                        X