Flash/Flex Architektur Framework PureMVC
May 15th, 2008 - as3, bbs, design pattern, Flash, flex, mvc, puremvc
Bereits letztes Jahr habe ich mir PureMVC mal angesehen und zum Test eine kleine Flex Anwendung geschrieben. Doch wie das so ist, wenn es kein konkretes Projekt ist, dann kann man sich auch nicht so richtig tief einarbeiten. (so geht es mir zumindest)
Nun hatte ich aber endlich die Gelegenheit das Framework in einer realen Anwendung einzusetzen
Und zwar beim Felgen Showroom der neuen BBS Website die von Interone Hamburg umgesetzt wurde. Der auf Flash (AS3) basierende Showroom nutzt intern PureMVC.
Was mir bei der Entwicklung sehr gut an dem Framework gefallen hat ist, dass man recht schnell die Logik der Anwendung umsetzen und alle Funktionen testen konnte.
PureMVC ist sehr schlank und nach einer kurzen Einarbeitungszeit in die Facade, Mediadoren, Proxies und Commands, auch leicht verständlich. Es hilft zudem das eigene Wissen über Design Patterns aufzufrischen.
Allerdings gab es auch Schwierigkeiten. Z.B. beim erstellen asynchroner Vorgänge, da das Framework dies nicht direkt unterstützt. Um diese Problematik zu lösen, hat Philip Sexton hat ein Utility für PureMVC entwickelt, den Startup Manager, das asynchrone Vorgänge ermöglicht. (Davon habe ich jedoch zu spät erfahren, so dass ich es im BBS Projekt nicht benutzt habe)
Es nutzt erweiterte Commands und Proxies von PureMVC um diese Aufgabe zu lösen. Das klappt auch ganz gut, erscheint nur ein wenig komplex. Ohne den Einsatz von PureMVC wäre eine solche asynchrone Prozess Klasse bestimmt schlanker und leichter umsetzbar.
Ein weiterer Stolperstein ist der Wechsel zwischen verschiedenen Ansichten / Zuständen. Zwar sieht PureMVC für jede View einen Mediator (der die View steuert) vor, jedoch fehlt der Einstiegspunkt um z.B. verschieden View in einander zu faden.
Benutzt man das Framework mit Flex (dazu findet man auch die meisten Beispiele) ist es einfacher, da hier einfach der in Flex integrierte ViewStack benutzt werden kann um zwischen den Zuständen zu wechseln. Genau diesen muss man für “normale” Flash Projekte dann selbst programmieren.
Abgesehen von den Schwierigkeiten bei der asynchronen Datenaufbereitung gefällt mir das Framework sehr gut, da es sehr dabei hilft Model, View und Controller zu trennen. Zudem ist die Entwicklung der Logik einer Anwendung damit sehr schnell zu bewerkstelligen und lässt schon fruh in der Entwicklungsphase funktionale Tests zu.
Dennoch denke ich dass man für jedes Projekt erneut abwägen muss ob sich der Einsatz lohnt.
Anwendungsorientierte Projekte werden sich besser mit PureMVC entwickeln lassen als animationslastige Web-Specials.
Wer sich mit PureMVC beschäftigen möchte findet hier einige hilfreiche Resourcen und Demos:
- PureMVC Homepage (besonders gut: Best Practise Dokument)
- Flex User Group Hamburg (PureMVC Linksammlung)
- bumpslide.com – Flickr gallery demo

RELATED

ghostBlog
May 16th, 2008 at 09:39
New BBS Website – Visualizer with pureMVC…
Juten Tach, Interone, the company i work for, has recently relaunched the BBS website. It is an HTML website, but with some flash modules here and there. My colleague Björn Scholl was responsible for the wheel visualizer module. It was……