Sauberer XAML Code

  • WPF

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von thefiloe.

    Sauberer XAML Code

    Hallo Zusammen,

    das wird mein erster Post und ich hoffe ich blamiere mich nicht gleich.
    Ich schreibe momentan ein WPF basierendes Programm und finde den XAML Code sehr unübersichtlich.
    Es gibt zwar in Visual Studio die Dokumentgliederung, aber um da drin was sinnvolles zu sehn, müsste ich jedem Control, auch wenn ich es nie ansprechen werde, einen Namen geben. ;(
    Ich hab auch einen Artikel gefunden, in dem Jemand behauptet, man solle alles in einzelne UserControls aufteilen, aber dann hüpfe ich ja ständig zwischen unzähligen UserControls hin und her, was ich jetzt auch nicht unbedingt sauberer finde. :wacko:
    Momentan besteht meine Orientierungshilfe aus Kommentaren, aber dafür sind die ja eigentlich nicht gedacht. :thumbdown:
    Wie haltet ihr den XAML Code sauber ? ?(
    Wenn man sich etwas mit HTML und XML oder gar ASP.NET auskennt, fällt einem die Struktur in XAML eigentlich unheimlich leicht (bzw. ist es für mich so). Und das wirklich Schöne (gegenüber WinForms): Code und Darstellung einer Anwendung sind endlich strikt getrennt.
    Ist WPF für Dich vielleicht Neuland? Man braucht natürlich eine gewisse Einarbeitungszeit bzw. muss sich erstmal an das Konzept von WPG gewöhnen.

    Andy schrieb:

    Wie haltet ihr den XAML Code sauber ?

    Einfach der Struktur folgen die XAML einem vorgibt. Ich weiß das klingt jetzt trivial.

    Kannst Du vielleicht etwas konkreter werden? Oder etwas XAML posten der Dir Kopfzerbrechen bereitet?

    Edit: Habe meinen Beitrag mal etwas "entbläht"

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „wertherchen“ ()

    ich find xaml auch prinzipiell unübersichtlich. Es hätte sich sicher sehr gelohnt, statt auf olle Xml aufzubauen eine moderne deklarative Sprache zu konzipieren, die hierarchische Organisation formulieren kann auch ohne dieses doppelt gemoppelte von vorn und von hinten.
    Ein "Xaml-Editor" sollte eiglich aussehen wie ein Treeview, finde ich.

    Zum sauber halten: Ich verwende als Einrück-Size nur 2, und treibe auch sonst einigen Aufwand mit Templates und Styles, dasses nicht zuviele Zeilen werden, und dass meine Zeilen mit wenigen Umbrüchen auskommen. Bildschirm kann nicht groß genug sein.
    Wann immer sich etwas wiederholt wirds wiederverwendbar ausgelagert, auf die eine oder annere Weise, ob nu mit Styles, Templates, Resources, UserControls oder auch selbstgebastelten Controls - das kommt halt jeweils drauf an.
    Gugge doch im Tut-Bereich - da fahren paar Beispiele von mir rum.
    Erst mal ein Danke an euch beide, dass ihr mir geantwortet habt.

    @wertherchen:
    Ja du hast durchaus recht, ich bin was WPF angeht ein Einsteiger, aber ich komme mit dem MVVM Model eigentlich recht gut zurecht und hab mich recht schnell mit den Neuerungen, wie zB dem Binding angefreundet. Also mein Problem liegt weniger in der Technik, sondern nur in der (un)übersichtlichkeit des XAML Codes. Ich hab nochmal drüber nachgedacht, was mich eigentlich so daran stört und bin auf folgende Punkte gekommen.

    1. Verschachtelungen
    Ich finde es ziemlich unübersichtlich, wenn ich folgenden Code habe

    XML-Quellcode

    1. <Grid>
    2. <Grid>
    3. <Grid>
    4. <Grid>
    5. </Grid>
    6. </Grid>
    7. </Grid>
    8. </Grid>

    Hier in dem kleinen Fenster, sieht man sofort, wo ein Grid anfängt und wo es aufhört, aber im wirklichen Quelltext muss ich erst ewig scrollen, um zu wissen welches Ende zu welchem Anfang gehört. Ich finde da hilft mir auch ein ordentliches Einrücken recht wenig.
    Momentan mache ich es wie in dem Buch, das ich mir gekauft habe (Galileo Verlag: WPF das umfassende Handbuch) und setze eben immer einen Kommentar an den Anfang und zusätzlich noch einen an das Ende, was dann etwa so aussieht:

    XML-Quellcode

    1. <!-- Gesamtes Fenster Anfang-->
    2. <Grid>
    3. <Grid.RowDefinitions>
    4. <RowDefinition Height="Auto"/>
    5. <RowDefinition Height="1*"/>
    6. <RowDefinition Height="Auto"/>
    7. </Grid.RowDefinitions>
    8. <!-- Menüleiste Anfang -->
    9. <Grid Grid.Row="0">
    10. </Grid>
    11. <!-- Menüleiste Ende -->
    12. <!-- Hauptfenster Anfang -->
    13. <Grid Grid.Row="1">
    14. </Grid>
    15. <!-- Hauptfenster Ende -->
    16. <!-- Statusleiste Anfang -->
    17. <Grid Grid.Row="2">
    18. </Grid>
    19. <!-- Statusleiste Ende -->
    20. </Grid>
    21. <!-- Gesamtes Fenster Ende-->

    Aber schön finde ich das nicht. Allerdings muss ich zugeben, als du HTML erwähnt hast - Ich finde auch HTML nicht besonders toll.

    2. Zu wenige Möglichkeiten sich Orientierungshilfen zu schaffen
    Im normalen VB Quelltext, kann ich als Orientierungshilfe und zur besseren Lesbarkeit Bsp. #Region "XYZ" verwenden, kann bei Propertys eine Description voranstellen, kann bei Funktionen mit ''' <Summary> arbeiten und kann die Kommentare ' XYZ für das verwenden, wofür sie eigentlich gedacht sind. Bei XAML kommt es mir so vor, als gäbe es nur die Kommentare <!-- --> .

    PS.: sehr netter Nickname, Werther ist meine Lieblingsfigur in der Literatur

    @ErfinderDesRades

    ich werd mir jetzt mal die Tutorials von dir anschauen und den Rat beherzigen, mehr auszulagern, um so mehr Übersichtlichkeit zu schaffen.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Andy“ ()

    Was manche auch machen(ich mache es nur hin und wieder) ist, gewisse Dinge als Ressource zu definieren.
    Dadurch wird die "verschachtelung" wie du es nennst nicht soo extrem. Jedoch kann und wird XAML hin und wieder mal etwas unübersichtlich werden.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.