Am 12. September findet in der Börse Wuppertal die Konferenz NRW 08 statt. Veranstaltet wird das Ganze unter anderem von Daniel Fischer. Daniel ist nicht nur für sein Fachwissen rund um WCF (Windows Communication Foundation) sondern auch als Leiter der .NET-Entwickler-User-Group Niederrhein und als Vorstand der JustCommunity e. V. bekannt. Es freut mich sehr, dass ich auf der Nachfolgeveranstaltung des erfolgreichen “.NET Summit NRW” einem Vortrag zum Thema Rich Applications halten darf. Der Schwerpunkt liegt dabei auf dem “Designer und Developer Workflow” mit Adobe Flash und Flex. Aber auch eine Abgrenzung zu Silverlight darf in diesem Umfeld natürlich nicht fehlen. Über Vorschläge zum Inhalt und Themenwünsche im Vorfeld freue ich mich wie immer sehr…
Monthly Archive for July, 2008
Page 2 of 3
Keine Frage, dass es bei großen Projekten nicht empfehlenswert ist, Code und Design zu vermischen. Doch in der Praxis macht gerade diese Vorgehensweise bei kleineren Projekten Sinn, da so die Erstellung
- relativ einfach erlernt und
- alles von einer Person in
- einem Werkzeug umgesetzte werden kann.
Viele Sprachen wie HTML und Co. erlauben die Verknüpfung von Logik und Oberflächenbeschreibung in einer Datei. Ein gutes Beispiel für den Erfolg und die Gefahren dieser Vorgehensweise ist Flash. Denn Flash erfreut sich gerade dank dieser Vermischung einer recht steilen Lernkurve und erlaubt es auch Programm(ier)novizen, schnell zu Ergebnissen zu kommen. Doch wer hier nicht mit Disziplin vorgeht, findet seine Codeblöcke bei Problemen nur schwer in den zahlreichen Zeitleisten und Objekten wieder.
Softwarearchitekten wird es freuen, dass dieses Vorgehen in Silverlight nicht möglich ist und eine klare Trennung von Code und Design erzwungen wird. Denn Silverlight nutzt anstelle von Code-Inside Code-Behind. D. h. die Logik (z. B. C#) wird nicht mit der Oberflächenbeschreibung (XAML) vermischt sondern in eigenen Klassen platziert (partial classes) – anders als übrigens in WPF mit dem eigens dafür vorhandenen code Tag:
1 2 3 4 5 6 7 8 9 | <Canvas xmlns...> <Button Name="button1" Click="Clicked">Click Me!</Button> <x:Code><![CDATA[ void Clicked(object sender, RoutedEventArgs e) { button1.Content = "Hello World"; } ]]></x:Code> </Canvas> |
So schön das in der Theorie klingt, führt diese Aufteilung in der Praxis zu einer flacheren Lernkurve und Erschwert die Erstellung durch eine Person mit einem Werkzeug. Nur wer sowohl Expression Blend für das Design als auch Visual Studio für den Code sein eigen nennt und zusätzlich auch beherrscht, kommt in annehmbarer Zeit ohne weitere Unterstützung zu guten Ergebnissen.
Doch Abhilfe sollte in Silverlight möglich sein. Die Unterstützung von dynamischen Sprachen ließe sich kombiniert mit einer entsprechenden Erweiterung in XAML durchaus dazu nutzen, sollte Microsoft nicht selber nachbessern (wie gesagt, in WPF ist das ja bereits enthalten). Diese XAML-Erweiterung müsste nur den mit ihr verbundenen dynamischen Code interpretieren und ausführen. Bereits vorhanden bzw. angekündigt sind Codebibliotheken für Iron Ruby, Iron Python, Visual Basic Script und JavaScript. Einzig die Integration in XAML fehlt noch.
Die Angabe von Dateipfaden ist nicht ganz ohne Tücke. Denn je nach Betriebssystem folgt die Schreibweise dieser Pfade unterschiedlichen Kriterien – insbesondere das Trennzeichen der einzelnen Verzeichnisse wird unterschiedlich gehandhabt. Windows nutzt beispielsweise den umgekehrten Schrägstrich (Backslash), auf dem Mac ist der Doppelpunkt dafür bekannt und unter Unix der vorwärtsgerichtete Schrägstrich (Slash) üblich. URIs (Uniform Resource Identifier) sind ein Versuch, dies für das Internet zu vereinheitlichen. Hier kommt als Trennzeichen nur der vorwärtsgerichtete Schrägstrich zum Einsatz. Eine spezielle und bekanntere Form eines URIs ist die Angabe von Ressourcen im Internet als URL (Uniform Resource Locator).
Eigentlich könnte nun alles so einfach sein, hätten nicht einige Betriebssysteme eine mehr verwirrende als hilfreiche Toleranz gegenüber Falschangaben. Der Explorer unter Windows erlaubt sowohl den Backslash als auch den Slash und korrigiert letzteres einfach automatisch. Und der Internet Explorer steht dem in nichts nach und erledigt dasselbe für URLs- halt nur umgekehrt. Dieser Komfort führt dazu, dass die Schrägstriche ungewollt durcheinander geraten können, wenn man nicht auf der Hut ist. Und leider ist so ein Fehler gerade bei Web-Projekten dann sehr schwer zu finden, da er ja auf manchen Systemen abhängig vom Browser einfach automatisch korrigiert wird. Andere Webbrowser hingegen finden die Adresse einfach nicht und können Ressourcen demzufolge nicht laden. Dies trifft sogar für den Flash Player zu, der für Dateioperationen und URLs die Fähigkeiten des darunterliegenden Webbrowsers nutzt.