2009-04-17 9 views
2

Ich bin ein Formular in einer C# 2.0-Anwendung zu entwickeln, die komplexe Logik über den Zustand (aktiviert/deaktiviert) verschiedener Steuerelemente auf dem Formular enthält. (Das Design ist ein Symptom für ein mangelhaftes Verständnis der Business Analyst von UI Best Practices.)Was ist der beste Weg, um den Form-Zustand zu verwalten?

Was wäre der beste Weg, um die Verwaltung der „Zustand“ des Formulars zu gehen? Normalerweise habe ich eine showcontrols (state) oder SetEnables (state) Funktion gesehen, in dem Zustand Aufzählung möglicher Konfigurationen (INITIAL, AFTER_SELECT, AFTER_COPY, etc.) ist. Ich sage voraus, dass dies schnell nicht mehr zu erreichen sein wird.

Welche Verfahren zur Aufrechterhaltung Form „Zustand“ verwenden Sie? Mit welchen Mustern können Sie komplexe Kontrollinteraktionen verfolgen?

Antwort

3

Mein Lieblingsmuster ist die passive view. Es entfernt alle Verantwortung für die staatliche Verwaltung aus dem Formular. Am Ende vereinfacht sich die Pflege Ihres Präsentationscodes erheblich, aber es entstehen vorab Kosten für zusätzlichen Code.

0

Sie könnten alternative Taktiken mit den Business-Analysten betrachten entweder ihn zu diskreditieren oder ihn auf Ihrem Lager bekommen, bevor Sie fortfahren, wie Sie ein schwarzes Loch klingt wie nach unten gehen. Sein Bestes, um ihn auf Ihrer Seite zu gewinnen, aber es erfordert mehr Geduld. Dies ist möglicherweise kein technisches Problem.

Aber auf die technische Diskussion ...

Da Sie Web verwenden Forms 2.0, autsch, Sie User Controls verwenden können Sie Ihre Form Zustand mit Anzeigestatus verkapseln. Sie sollten einen Top-Down-Ansatz verwenden. Nehmen wir an, Sie haben 5 Steuerelemente, die den Formstatus steuern. Innerhalb jedes Steuerelements haben Sie einen Platzhalter, unter dem Sie basierend auf dem Status der Steuerelemente Objekte dynamisch ein- und ausblenden können. Innerhalb jedes User Controls, das dynamisch in dir geladen wird, kannst du den russischen Doll-Effekt (Kapselung) machen und mehr verrückte Regeln hineinlegen, die der Analytiker nach dem Zufallsprinzip aus seinem Arsch zieht. Encapsulation und ViewState sind in diesem Fall Ihre Freunde. Stellen Sie sicher, dass die Steuerelemente auf dem Page_Init-Ereignis geladen werden, da dadurch alle anderen Ereignisse gut miteinander verknüpft werden. Es tut mir leid, dass Sie Webformulare und .net 2.0 verwenden. So leid.

Verwandte Themen