2008-11-05 8 views
7

Ich habe echte Schwierigkeiten mit XAML-Dateien in Silverlight, da sie bei der Verwendung von Blend sehr schnell sehr groß werden. Es wird zu einer Textwand, nachdem nur eine Handvoll Steuerelemente hinzugefügt und animiert wurden.Wie verwalten Sie große und kaum wartbare XAML-Dateien?

Ich hoffe, dass eine bessere Version von Blend bald herauskommen wird, so dass unsere Designer XAML nie sehen müssen. Für den Moment ist das jedoch keine Lösung - XAML muss immer noch manuell verwaltet werden und es ist eine deprimierende Aufgabe.

Hat jemand eine Lösung gefunden? Wie halten Sie Ihre XAML-Dateien in Ordnung? Wie verstehst du sie, wenn sie groß werden?

Bearbeiten: Ich bin besonders an Silverlight-Lösungen interessiert, da die offensichtlichste WPF-Lösung - Aufteilen in Ressourcenwörterbücher - in Silverlight nicht unterstützt wird.

Antwort

7

Ich habe Silverlight 2 seit Januar verwendet, als es in der privaten Veröffentlichung war, und wir stießen auf dieses Problem, alle unsere XAML war in einer großen Datei. Was wir als Best Practices getan haben, war die Aufteilung der Benutzeroberfläche in separate Benutzersteuerelemente basierend auf visueller Kategorisierung (Kopfzeile, Fußzeile, Navigationssteuerelemente usw.). Ursprünglich versuchten wir geschachtelte Leinwände zu verwenden (Gitter wurden noch nicht zum Framework hinzugefügt). und das wurde später zu einem Wartungsalbtraum.

In Blend können Sie tatsächlich ein Canvas/Gitter usw. aus dem Fenster Objekte und Zeitleiste auswählen, mit der rechten Maustaste darauf klicken, und Sie erhalten die Option "Kontrolle machen"."Das ist für schnelle Wieder Factoring gemacht und unsere XAML-Datei Modularisierung. Wir haben dann Ereignisse verwendet, damit der Benutzer steuert untereinander zu kommunizieren.

hoffe, das hilft und viel Glück!

11

Es erfordert ein wenig Arbeit, um XAML-Dateien zu pflegen, aber im Grunde müssen Sie sie in Ressourcendateien (XAML Resource Dictionaries) unter Verwendung eines für Sie sinnvollen Schemas aufteilen.

Zum Beispiel verwenden wir ein System, in dem wir eine Ordnerstruktur wie folgt aussehen:

  • Ressourcen (enthält XAML-Dateien, die die Bedienelemente und Seiten repräsentieren)

    • Stencils (XAML-Dateien mit Shapes)
    • Styles (XAML-Dateien mit Stile)
    • Bürsten (...)
      • Gemeinsamer
    • Vorlagen (...)

Ihre Struktur könnte aber variieren, alle Ressourcen in verschiedenen Dateien zu trennen macht wirklich auf lange Sicht Wartung einfacher.

2

Ich bin ein kreativer Entwickler und arbeite in Blend ausgiebig.

Ich habe letztes Jahr ein paar Gedanken zu keeping XAML clean veröffentlicht.

Silverlight unterstützt derzeit keine MergedResourceDictionaries, daher ist es schwierig, das XAML in separate ResourceDictionary-Dateien zu zerlegen, wie ich es in another post vorgeschlagen habe.

Paul Stovell hat auch einige interessante guidelines for XAML.

+1

Die Links bieten Ihnen nicht länger aktiv. – vzczc

Verwandte Themen