Oct 19
2007

Im MSDN-Magazin 6.2007 schreibt auf Markus Egger auf den Seiten 65-75 einen sehr interessanten Artikel über "Flexible Inhaltsanzeige mit Flow Documents". Mit Flow Documents ist ein Entwickler in der Lage, Dokumente intern mit WPF zu erstellen. Diese werden i.d.R. mit XAML erstellt. Sofern der User das .NET Framework 3.0 auf seinem Rechner installiert hat, kann er sich ein mit FlowDocument erzeugtes Dokument im Browser ansehen (IE/FF). Ansonsten bietet der Browser den Download des XAML-Files an. Im aktuellen Mozilla raucht bei mir die Seite nach dem Aufruf mit einer Fehlermeldung ab. Bei einem Kollegen hat der Firefox automatisch eine Art PlugIn installiert, dann funktionierte die Seite. Der Einsatz des Controls ist nach diesen Erkenntnissen leider noch nicht völlig unbedenklich möglich.

Das supercoole an der ganzen Sache ist jedoch, das immer, wenn ein Flow Document angezeigt wird, Features wie Zoom, Paginierung sowie verschiedene Ansichtsmodi und sogar eine Suchfunktion angeboten werden. Diese Infos waren mir einen Eigenversuch wert. Flow Documents sind Auflistungen von Blöcken, wie z.B. nachfolgend dargestellt:

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
        <FlowDocument IsOptimalParagraphEnabled="true" IsHyphenationEnabled="true" FontFamily="Helvetica">
            <FlowDocument.Resources>
                <Style x:Key="Style_H1">
                    <Setter Property="TextElement.FontSize" Value="22" />
                    <Setter Property="TextElement.FontWeight" Value="Bold" />
                </Style>
                <Style x:Key="Style_H2">
                    <Setter Property="TextElement.FontSize" Value="16" />
                    <Setter Property="TextElement.FontWeight" Value="Bold" />
                </Style>
            </FlowDocument.Resources>

            <Paragraph Style="{StaticResource Style_H1}">
                <Figure HorizontalAnchor="ContentLeft" VerticalAnchor="ContentTop" Width="1Content">
                    <Paragraph>
                        Eindrücke von der ersten Microsoft-XTopia-Konferenz vom 9.-11.10.2007 in Berlin
                    </Paragraph>
                </Figure>
            </Paragraph>
            <Paragraph Style="{StaticResource Style_H2}">
                1. Tag
            </Paragraph></FlowDocument></Page>

Man sieht, es ist auch die Verwendung von Style-Angaben möglich. Ebenfalls können Listen und Bilder angewendet bzw. eingebunden werden. Wie leistungsfähig das FlowDocument wirklich ist, zeigt ein Sample, das unter http://msdn2.microsoft.com/en-us/library/ms771316.aspx bezogen werden kann. Da kann man nur staunen.

Problematisch war aus meiner Sicht die Texteingabe. Für die manuelle Erstellung war viel Arbeit notwendig. Aber dies kann ja auch automatisiert erledigt werden, z.B. dynamisch über einen Datenbankzugriff. Allerdings muss der Text dann dort schon im passenden Format vorliegen. Das WPF bietet ein dafür vorgesehenes RTF-Steuerelement an, das in seinen Funktionen noch sehr rudimentär ist. Ich bin mir jedoch sicher, dass hier die Zeit für den Entwickler arbeitet und das geeignete Editoren bald verfügbar sein werden.

 

Tags: Tags: | |
Sep 23
2007

Vereinzelt wurde dieses Beispiel für eine Windows Forms Applikation mit WPF im Netz in diversen Blogs schon beschrieben. Ich möchte es dennoch nochmals kurz aufgreifen. Natürlich war ich voller freudiger Erwartungen, als ich unter diesem Link den Quellcode für eine Microsoft Expression Blend Test-Applikation heruntergeladen hatte. Um das Example selbst Schritt für Schritt ausführen zu können, ist neben Expression Blend (gibt es derzeit als Beta2 auf 180 Tage laufzeitbegrenzt zum freien Download) auch ein HandsOnLab sinnvoll. Dieses kann als pdf hier downgeloadet werden. Das HOL hat zum Ziel, eine Outlook 2007 ähnliche Oberfläche mit den genannten Werkzeugen zu erstellen.



So bewaffnet hat man die besten Voraussetzungen, die Welt von WPF und XAML step by step zu erkunden und ganz nebenbei macht man sich mit der Bedienung von Expression Blend vertraut. Der mitgelieferte Sourcecode ist in Etappen gegliedert. Falls man sich irgendwo beim Üben verzettelt, bietet sich ein neuer Einstieg durch den mitgelieferten Code an fortgeschrittener Stelle an. Teilweise hatte ich tatsächlich Probleme, jeden der im HOL beschriebenen Schritte nachzuvollziehen. Vermutlich liegt das an der verwendeten Version von Expression Blend. Das beschriebene Beispiel wurde wohl mit MS Expression Blend 1 erstellt, während ich mit der Beta 2 das Example nachvollzog.

Aber grundsätzlich eignet sich das HOL sehr gut, um in die künftige Welt der Software Entwicklung mit Microsoftwerkzeugen und -technologien einzutauchen. Besonders der Wechsel zwischen Designansicht und XAML-Code zeigt, was hinter den Kulissen abläuft. Meine anfangs geschilderten Erwartungen haben sich erfüllt.

Tags: Tags: | |
Mar 24
2007

Grenzenlose Begeisterung, Ernüchterung, Frust, Erkenntnis und schlussendlich die realistische Einschätzung der Möglichkeiten. Das sind unserer Erfahrung nach die Stufen, die ein Entwickler durchläuft , wenn er die ersten Schritte in der Windows Presentation Foundation (WPF) wagt. Uns ist noch kaum jemand untergekommen, der angesichts der in Beispielanwendungen plakativ vorgeführten Möglichkeiten von WPF nicht begeistert gewesen wäre und voller Tatendrang seine erste Anwendung mit XAML & Co zu schreiben begonnen hat. Es folgt meist die Ernüchterung darüber, dass der Einstieg WPF alles andere als banal ist. Wie auch in anderen Entwicklungsumgebungen decken die „Hello-World“-Beispiele eben doch nicht alle Themen ab, die man für Anwendungen im wirklichen Leben braucht.

http://www.codezone.de/DetailPage.Codezone?GUID=0ba369b8-42d4-4875-bcbd-8e29940347c3 

Dem Gesagten kann ich mich nur anschließen. Um sich ein eigenes Bild von WPF zu machen, kann es nicht ausbleiben, sich mit der neuen Materie intensiver zu befassen. Klar, es ist nicht alles Gold, was glänzt. Aber die Richtung, die mit WPF aufgezeigt wird, läßt erahnen, wie in kurzer Zeit schon Anwendungen entwickelt werden. 

Tags: Tags: |