Frage

Ich verwende derzeit das Flex MVC-Framework und genieße es PureMVC.Ich habe einiges Gutes über Cairngorm gehört, das von Adobe unterstützt wird und als Erster auf den Markt kommt.Und es gibt einen neuen Player namens Mate, der viel Aufsehen erregt.

Hat jemand zwei oder drei dieser Frameworks ausprobiert und sich eine Meinung gebildet?

Danke!

War es hilfreich?

Lösung

Kumpel ist meine Wahl.Der erste und wichtigste Grund ist, dass es völlig unauffällig ist.Mein Anwendungscode weist keine Abhängigkeiten vom Framework auf, er ist stark entkoppelt, wiederverwendbar und testbar.

Eine der schönsten Funktionen von Mate ist die deklarative Konfiguration. Im Wesentlichen vernetzen Sie Ihre Anwendung mithilfe von Tags in einer sogenannten Ereigniskarte – im Grunde eine Liste von Ereignissen, die Ihre Anwendung generiert, und welche Aktionen bei ihrem Auftreten ausgeführt werden sollen.Die Ereigniskarte gibt einen guten Überblick darüber, was Ihre Anwendung tut.Mate verwendet den Flex-eigenen Ereignismechanismus und erfindet keinen eigenen wie die meisten anderen Frameworks.Sie können ein Ereignis von überall in der Ansichtshierarchie aus versenden und es automatisch an das Framework weiterleiten lassen, anstatt eine direkte Leitung wie Cairngorms CairngormEventDispatcher oder das Benachrichtigungssystem von PureMVC benötigen zu müssen.

Mate verwendet außerdem eine Form der Abhängigkeitsinjektion (Nutzung von Bindungen), die es ermöglicht, Ihre Modelle mit Ihren Ansichten zu verbinden, ohne dass eines davon etwas vom anderen weiß.Dies ist wahrscheinlich die leistungsstärkste Funktion des Frameworks.

Meiner Meinung nach kommt keines der anderen Flex-Anwendungsframeworks auch nur annähernd an Mate heran.Dies sind jedoch die Konkurrenten und warum ich sie für weniger nützlich halte:

PureMVC verweigert Ihnen aktiv viele der Vorteile von Flex (z. B. Bindungen und Event-Bubbling), damit das Framework portierbar ist – ein zweifelhaftes Ziel meiner Meinung nach.Es ist außerdem überentwickelt und so invasiv, wie es nur geht.Jeder einzelne Teil Ihrer Anwendung hängt vom Framework ab.PureMVC ist jedoch nicht schlecht, passt nur nicht besonders gut zu Flex.Eine Alternative ist FlexMVCS, ein Versuch, PureMVC besser für Flex geeignet zu machen (leider gibt es noch keine Dokumentation, nur die Quelle).

Cairngorm ist ein Bündel von Anti-Patterns, die zu Anwendungen führen, die eng an globale Variablen gekoppelt sind.Nuff sagte (aber wenn Sie interessiert sind, Hier sind noch einige meiner Gedanken, Und auch hier).

Schweiz ist ein Framework, das vom Spring-Framework für Java und Cairngorm inspiriert ist (und versucht, die schlimmsten Teile des letzteren auszugleichen).Es stellt einen Abhängigkeitsinjektionscontainer bereit und verwendet Metadaten, um die automatische Verknüpfung von Abhängigkeiten zu ermöglichen.Es ist interessant, aber insofern etwas bizarr, dass man so weit geht, die globalen Variablen von Cairngorm durch Abhängigkeitsinjektion zu umgehen, dann aber eine globale Variable für die zentrale Ereignisverteilung verwendet.

Das sind die, die ich ausprobiert oder recherchiert habe.Es gibt noch ein paar andere, von denen ich gehört habe, aber keines davon ist meiner Meinung nach weit verbreitet.Mate und Swiz wurden beide kürzlich auf der 360|Flex-Konferenz vorgestellt und es sind Videos verfügbar (Die Mate-Leute haben Anweisungen, wie man sie beobachtet)

Andere Tipps

Kasse Roboterbeine.

„Es liefert den Klebstoff, den Ihre Anwendung benötigt, um problemlos und entkoppelt zu funktionieren.Durch den Einsatz automatisierter Metadaten-basierter Abhängigkeitsinjektion entfernt Robotlegs Boilerplate-Code in einer Anwendung.Durch die Förderung der losen Kopplung und die Vermeidung der Verwendung von Singletons und Statik im Framework kann Robotlegs Ihnen dabei helfen, Code zu schreiben, der in hohem Maße testbar ist.“

Ich habe solche Diskussionen schon oft gesehen.Sie beginnen normalerweise damit, WELCHEs Flex-Framework Sie verwenden.Nicht viele Leute stellen die Frage, WARUM Sie überhaupt ein Framework zusätzlich zum Flex-Framework verwenden müssen.

Ich bin nicht dafür, irgendein MVC-Framework (Cairngorm, PureMVC) in Flex-Code zu verwenden.Mate ist ein besserer Kandidat.Zumindest ist es einfach zu verstehen und nicht aufdringlich.Ich bevorzuge die Verwendung verbesserter Komponenten
A la carte.Wir haben eine Reihe davon erstellt und als Open Source bereitgestellt (siehe clear.swc im Clear Toolkit unter http://sourceforge.net/projects/cleartoolkit/.

Das erste Kapitel unseres kommenden O'Reilly-Buches „Enterprise Development with Flex“ enthält einen detaillierten Vergleich mehrerer Flex-Frameworks: http://my.safaribooksonline.com/9780596801465 .

Wir arbeiten derzeit an einem MVCS Umsetzung in der Spring ActionScript Rahmen.Es nutzt die volle Leistungsfähigkeit des Inversion of Control-Containers, sodass Sie über ein zentralisiertes Abhängigkeitsmanagement verfügen und Dinge einfach austauschen können.Es gibt keine großen Vorgaben für die Art und Weise, wie Sie Dinge tun, bietet Ihnen aber eine sehr flexible Infrastruktur.

Wenn Sie neu bei Spring ActionScript und MVCS sind, habe ich einen Einführungsbeitrag in meinem Blog: http://www.herrodius.com/blog/158

Ich verwende (und empfehle) das Swiz-Framework.Es ist nicht so komplex und PureMVC, aber es erledigt den Job.Außerdem ist es ein IoC-Container, und ich mag IoC.

Ich habe Mate nie verwendet, daher kann ich dazu nichts sagen.Aber ich rate von Cairngorm ab.Cairngorm soll Open Source sein, wird aber von der Community wirklich nicht gut unterstützt.Der Veröffentlichungszyklus ist ebenfalls langsam.Ich habe EWIG darauf gewartet, dass die Betaversion der Navigationsbibliothek endet.

Bedenken Sie, dass Cairngorm DAS von Adobe gesponserte Framework ist und jetzt auf opensource.adobe.com gehostet wird.Beachten Sie auch, dass es derzeit bei weitem das produktivste unter den Entwicklern ist.

Wenn Sie Cairngorm kennen und auf der Suche nach einem Job sind, werden Sie nicht viel falsch machen.

Cairngorm ist einfach zu bedienen und gut dokumentiert:http://www.cairngormdocs.org/

Ich empfehle das Cairngorm-Diagramm-Explorer und der klassische Artikel darüber Cairngorm.

Ich war neu bei Flex, als ich Cairngorm lernte, fand es aber nützlich und einfach, es mit den oben genannten Methoden zu erlernen.

MATE ist der richtige Weg. Ein Framework, das tut, was ein Framework tun sollte.De-gekoppelte Architektur einfache Effizienz kleiner Fußdrucke Effizienz

Ich habe ein bisschen meine Zweifel an diesen MVC-Frameworks (Mate, Cairgnorm usw.) wegen der Art und Weise, wie sie Event Maps und Event Controller implementieren, es erinnert mich zu sehr an wxWidgets und andere GUI-Toolkits dieser Art.

Allerdings wäre es wirklich schön, wenn Flex oder eines dieser MVC-Frameworks das Signal/Slots-Paradigma verwenden würde, das Qt bietet.

Ich empfehle die Verwendung von MATE für die Entwicklung großartiger und komplizierter Projekte. Wie andere Frameworks geht Mate auf die allgemeinen Architekturprobleme in Flex ein, z. B. Ereignisbehandlung, Datenbindung und asynchrone Verarbeitung. Das wichtigste Ziel besteht jedoch darin, dass es nur Tag-basiert ist Sehr einfach in unseren Flex-Anwendungen zu verwenden.

Ja, Mate ist das beste Framework für Flex.Ich habe es in einer Anwendung verwendet, die sowohl hinsichtlich der GUI als auch des Back-End-Datendienstes mehrere Revisionen hatte.Ich musste meine Ereigniskarte nur jedes Mal ändern, wenn es eine Änderung gab.

Mate verfügt außerdem über eine MockService-Implementierung, die das Testen vereinfacht. Dies ist kein Vorteil für Mate, aber es ist schön, einen zu haben.

Sie sollten Ihr eigenes MVC-„Framework“ basierend auf Ihren eigenen Anforderungen entwerfen.Wenn Sie sich mit Designmustern ein wenig auskennen, hat Flex nativ viel zu bieten.

Das Beste am Entwurf Ihres eigenen MVC ist, dass er je nach Bedarf leichtgewichtig oder komplex sein kann.

Meine Erfahrung mit Frameworks ist, dass man im Grunde doppelt so viel Code schreiben muss wie ohne die Verwendung eines Frameworks.Das Gute an Frameworks ist, dass sie Sie dazu zwingen, konsistent zu arbeiten. Wenn Sie jedoch konsistent arbeiten können, indem Sie Designmuster, Best Practices und gesunden Menschenverstand nutzen, würde ich empfehlen, sich von Frameworks fernzuhalten.

Es ist sehr schwierig, eine Schlussfolgerung darüber zu ziehen, welches Framework besser ist als andere.Abhängig von der Art und Komplexität des Projekts und der Fachkenntnisse und Präferenzen der Teammitglieder kann in einer bestimmten Situation einer besser geeignet sein als der andere

Ich habe unter dieser URL eine Liste der Flex Frameworks mit kurzen Beschreibungen und Hinweisen auf weitere Informationen darüber zusammengestellt.http://practicalflex.blogspot.com/2011/08/list-of-adobe-flex-tools-frameworks.htmlDie URL kann für jeden hilfreich sein, der ein Flex-Framework für sein Projekt evaluieren möchte.

Nachdem ich die meisten Flex-Frameworks evaluiert hatte, fand ich, dass das Swiz-Framework für einen neuen Entwickler am einfachsten und einfachsten zu nutzen ist.Dadurch wird eine einfache Wartbarkeit und Erweiterbarkeit Ihrer Anwendung gewährleistet.

Ich habe an Cairngorm- und Mate-Frameworks gearbeitet.Ich habe mit dem Cairngorm-Framework begonnen.Es ist gut zu bearbeiten, aber am Anfang schwer zu verstehen.Es handhabt das Event-Dispatching geschickt.Sie können Ereignisse von den Klassen selbst auslösen und diese werden von den verkabelten Befehlsklassen des Frameworks erledigt.Es gibt ein einziges Repository zum Speichern der Daten, sodass die Daten einfach zu handhaben sind.Es ist eine Singleton-Klasse.Sobald Sie das Framework in den Griff bekommen, ist die Arbeit einfacher.Mate hingegen ist ein Tag-basiertes Framework.Da es sich um ein ereignisgesteuertes Framework handelt, werden alle Ereignisse in der Eventmap-Datei verarbeitet.Es führt Event-Listening, Property-Injection und viele andere Dinge aus dieser Klasse selbst durch.Sie können Ereignisse von den Klassen versenden, indem Sie ihnen die Instanz des Framework-Ereignis-Dispatchers übergeben.Sie müssen hier keine Singleton-Klasse wie Cairngorm verwenden.Sie können Eigenschaften in einer Klasse direkt mithilfe der Eigenschaftsinjektion an Ansichten binden, sodass Sie keine Singleton-Klasse verwenden müssen.In Mate sind alle Klassen und Ansichten frei von Framework-Code, es handelt sich also um ein entkoppeltes Framework.Es ist einfach, Komponenten von einem Ort zum anderen zu bewegen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top