7 Stimmen

Wie verwaltet man riesige und kaum wartbare XAML-Dateien?

Ich habe echte Schwierigkeiten mit XAML-Dateien in Silverlight, da sie sehr schnell sehr groß werden, wenn ich Blend verwende. Es wird einfach eine Wand aus Text, nachdem nur eine Handvoll Steuerelemente hinzugefügt und animiert werden.

Ich hoffe, dass bald eine bessere Version von Blend auf den Markt kommt, so dass unsere Designer XAML gar nicht mehr sehen müssen. Im Moment ist das jedoch keine Lösung - XAML muss immer noch manuell verwaltet werden, und das ist eine deprimierende Aufgabe.

Hat jemand eine Lösung für dieses Problem gefunden? Wie halten Sie Ihre XAML-Dateien in Ordnung? Wie verstehen Sie sie, wenn sie groß werden?

Editar : Ich bin besonders an Silverlight-Lösungen interessiert, da die naheliegendste WPF-Lösung - das Aufteilen von Dingen in Ressourcen-Wörterbücher - in Silverlight nicht unterstützt wird.

12voto

Pop Catalin Punkte 59610

Die Pflege von XAML-Dateien erfordert zwar ein wenig Arbeit, aber im Grunde genommen müssen Sie sie in Ressourcendateien (XAML Resource Dictionaries) aufteilen und dabei ein für Sie sinnvolles Schema verwenden.

Wir verwenden zum Beispiel ein Schema mit einer Ordnerstruktur wie dieser:

  • Ressourcen (enthält XAML-Dateien, die die Benutzerelemente und Seiten darstellen)

    • Stencils (XAML-Dateien mit Shapes)
    • Stile (XAML-Dateien mit Stilen)
    • Pinsel ( ... )
      • Gemeinsame
    • Schablonen ( ... )

Ihre Struktur kann variieren, aber die Trennung aller Ressourcen in verschiedene Dateien macht die Wartung auf lange Sicht wirklich einfacher.

8voto

FireWire Punkte 436

Ich benutze Silverlight 2 seit Januar, als es in der privaten Version war, und wir liefen in dieses Problem, alle unsere XAML war in einer großen Datei. Was wir als Best Practices taten, war die Aufteilung der Benutzeroberfläche in separate Steuerelemente auf der Grundlage der visuellen Kategorisierung (Kopfzeile, Fußzeile, Navigationssteuerungen usw.) Ursprünglich versuchten wir, verschachtelte Leinwände zu verwenden (Raster waren dem Framework noch nicht hinzugefügt worden), was sich später zu einem Wartungsalptraum entwickelte.

In Blend kann man ein Canvas/Raster etc... aus dem Objekt- und Zeitleistenfenster auswählen, mit der rechten Maustaste darauf klicken und erhält die Option "Make Control...". Dies ermöglichte ein schnelles Re-Factoring und Modularisierung unserer Haupt-XAML-Datei. Wir haben dann Ereignisse verwendet, damit die Benutzerelemente untereinander kommunizieren können.

Ich hoffe, das hilft Ihnen, und wünsche Ihnen viel Glück!

2voto

Alan Le Punkte 8273

Ich bin ein kreativer Entwickler und arbeite viel mit Blend.

Letztes Jahr habe ich einige Gedanken zum Thema XAML sauber halten .

Silverlight unterstützt derzeit keine MergedResourceDictionaries, so dass es schwierig ist, die XAML in separate ResourceDictionary-Dateien aufzuteilen, wie ich es in weiterer Beitrag .

Paul Stovell hat auch einige interessante Richtlinien für XAML .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X