2009-07-18 5 views

Antwort

0

UI-Status sollte nur den Geschäftsprozess, den es darstellt, beeinflussen. Sie sollten daher anstreben, dass Ihre Benutzeroberfläche automatisch auf Änderungen im Geschäftsmodell aktualisiert wird. Wenn Sie die Benutzeroberfläche manuell programmieren, haben Sie eher Fälle, in denen der Status des Geschäftsmodells nicht korrekt wiedergegeben wird. Die Programmierung der Benutzeroberfläche entfernt deklarativ die meisten dieser Bedenken. Verwenden Sie nach Möglichkeit die deklarative Methode.

2

Hier gibt es kein richtig oder falsch - es hängt davon ab, was Sie erreichen wollen.

Sie können sicher statische Kontrollen verwenden, wenn Sie Ihr Layout wissen, ist nicht Gegenstand (dh ein Gitter mit einer festen Anzahl von Spalten) ändern, oder künftige mögliche Veränderungen wahrscheinlich seinen statischen Natur (eine neue Spalte in Ihrem Raster). Dieser Ansatz ist vollkommen in Ordnung und offensichtlich schneller im Fall der durchschnittlichen realen Welt.

Wenn Sie Flexibilität benötigen dann Sie müssen die Steuerelemente erzeugen programmatisch (das heißt Sie benötigen eine variable Anzahl von Gittern zu erzeugen - oder andere Kontrollen). Für Flexibilität meinen wir, dass Ihr Layout Variablenwerte berücksichtigen muss, die Sie bis zur Laufzeit nicht kennen können.

1

Ich finde Anwendungen für beide Modelle, aber tendieren dazu, das Markup in den Aspx-Seiten zu verwenden, wo ich kann, weil es einfacher zu lesen ist und mir hilft, meinen Ansichtscode von meinem Logikcode zu trennen. Die Stellen, an denen ich Steuerelemente programmatisch erstelle und Daten an sie binde, sind, wenn ich eine dynamische Anzahl von Steuerelementen brauche. Ein gutes Beispiel hierfür könnte sein, wenn Sie eine Reihe von Drop-downs dynamisch für Benutzer Suchkriterien zu erzeugen - ich so etwas tun würde:

SqlDataReader dr; 

// Set up database connection and set dr to search query. 

while(dr.Read()) 
{ 
    Literal name = new Literal(); 
    name.Text = dr["Name"] + ": "; 

    Page.Controls.Add(name); 

    DropDownList ddl = new DropDownList(); 
    ddl.ID = "Search_" + dr["ID"]; 

    SqlDataReader dr2; 

    // Set up database connection and set dr2 to search items query. 

    while(dr2.Read()) 
    { 
     ListItem li = new ListItem(dr2["Name"], dr2["Value"]); 
     ddl.Item.Add(li); 
    } 

    Page.Controls.Add(ddl); 
} 

Eine andere Sache im Auge zu behalten ist, Sie Markup-Steuerelemente erstellen können Ihre Aspx-Seite und binden Sie sie dann an benutzerdefinierte DataSets, die Sie in Ihrem Code-Behind füllen.

Verwandte Themen