Home > Gedanken, Programming > Die Gretchenfrage: Wann Flash und wann Flex?

Die Gretchenfrage: Wann Flash und wann Flex?

August 15th, 2008 Leave a comment Go to comments

flexflashfrage flashicon flexicon

Vor 2-3 Wochen kam bei uns in der Firma die Frage auf, sollen wir das nächste Projekt in ActionScript 2 oder nun mit Flex realisieren. Da wir alle im Team schon gut Erfahrungen mit ActionScript 3 hatten, aber seitens Flex mehr Theoriewissen besassen als wirkliche Praxiserfahrung, entschlossen wir uns an das neue Projekt mittlerer Grösse mit Flex heranzuwagen und unsere Flex Skills auszubauen. Mittlerweile bin ich froh, dass wir uns für die Portierung entschieden haben, aber mein Bild zu Flex hat sich dadurch ein bissl gewandelt. Denn bei Anpassungen und Erweiteurngen von Komponenten, die von der Standardfunktionalität abweichen, wird es sehr schnell komplex mit dem Flex Framework zu arbeiten. Man muss sehr genau die Initialisierungs- und Renderingsprozesse von Flex verstehen um diese Funktionalitäten implementieren zu können. So bin ich nämlich bei der Erweiterung der Chartkomponente in Flex auf einige wirklich komplexe Probleme gestossen, die mich häufig veranlasst haben über eine komplette Neuimplementierung mit nur ActionScript 3 Mittel nachzudenken. Es sind zum Teil sehr triviale Funktionaliäten, wie z.B. das Zeichnen eines Rechtecks im Hintergrund eines Graphens. Denn wenn dieses Rechteck z.B. über den Rand des Graphens hinausgeht, wird es erst gar nicht mehr gezeichnet bzw. gerendert. Um diesen Effekt zu verhindern muss man eigentlich sein eigene Drawing API für die Chartkomponente schreiben, die dann wieder sehr stark verschiedene Renderer und DataTransform Objekte benötigt. Absolut nicht trivial und widerspricht total den Simplicity Tutorials zur ChartKomponente, jedoch für einen sehr gut erfahrenen Flexer sollte das kein Problem sein. Nun gut, schlussendlich kam ich zu diesem Ergebniss wann man Flash und wann man Flex einsetzen sollte:

Wann Flash:

  • Für kleine bis mittlere Webseiten und -applikationen
  • Für sehr designlastige Webseiten, die eine nicht standardkonforme Struktur aufweisen
  • Bei statischen (pixelbasierten) Layouts
  • Wenn wenig Zeit für Recherche, sowie Einarbeitung in neuen Tools vorhanden ist
  • Wenn das Application Management nicht sehr komplex ist. Tipp: Gaia Flash Framework
  • (Entwicklung von Games)

Wann Flex:

  • mittlere bis sehr komplexe Web Applikationen
  • bei mittleren bis komplexen Datenmanipulationen
  • bei dynamischen und skalierbaren Layouts
  • standardkonforme Interaktionsformen und Benutzerführung
  • Fast Prototyping -> für schnelle GUI Testings
  • Wenn modulare Entwicklung eine grosse Rolle spielt
  • Bei grösseren Entwicklungsteams mit Budeget für die Recherche und Ausbildung

Vor einigen Wochen war mir nicht bewusst, dass das Flex Framework so umfangreich und leistungsstark ist. Ein einfaches loslegen, wie es nach dem ersten Blick immer erscheint, ist es nämlich nicht. Man kann wirklich sehr schnell eine Oberfläche zusammenklicken, die für die ersten Usabilitytest zu gebrauchen sind. Aber hinsichtlich modularer Programmierung (Software Design) kann man mit Flex sehr schnell grossen Mist bauen, wenn man sich nicht an die Prinzipien vom Model-View-Controller oder anderen GUI-Software-Patterns hält. Dazu gehört schon einiges an Programmier- und Abstrahierungserfahrung und ist (hoffentlich trete ich jetzt mit meiner Aussage niemanden aufs Gemüt) glaub von einem oder einer, der/die mal hier ein bissl Design und Programmierung macht nicht zu leisten. In diesem bin ich für jede andere Meinung offen 😉

Categories: Gedanken, Programming Tags: , ,
  1. Simon
    April 30th, 2009 at 21:01 | #1

    Beim entwickeln eigener Komponenten bin ich zum teil ebenso auf die gleichenb Probleme gestoßen wie du. So habe ich anfange wirklich versucht mit komplette neue Komponeten zu schreiben und bin gescheitert. Nach ein paar tutorials hats aber dann auch auch geklappt. Für mich sind eigene Kompontenen jedoch weiterhin gewöhnungbedüftig vorallem wenn ich ich Graphische komponenten rendern möchte. z.B. Pinselgrößen usw.

  1. No trackbacks yet.