2009-07-18 8 views

Répondre

0

L'état de l'interface utilisateur doit uniquement être affecté par le processus métier qu'il représente. Vous devez donc tenter de faire en sorte que votre interface utilisateur soit automatiquement mise à jour en fonction des modifications apportées au modèle de gestion. Si vous programmez l'interface utilisateur manuellement, vous êtes plus susceptible d'avoir des cas où l'état du modèle métier n'est pas reflété correctement. La programmation de l'interface utilisateur élimine de manière déclarative la plupart de cette préoccupation. Si possible, utilisez la méthode déclarative.

2

Il n'y a pas de vrai ou de faux ici - cela dépend de ce que vous essayez d'atteindre.

Vous pouvez utiliser en toute sécurité contrôles statiques quand vous savez votre mise en page ne sont pas sujets à changement (soit une grille avec un nombre fixe de colonnes), ou toutes les éventuelles modifications sont susceptibles d'être de nature statique (une nouvelle colonne dans votre grille). Cette approche est parfaitement bien et évidemment plus rapide dans le cas du monde réel moyen.

Si vous avez besoin flexibilité alors vous devez générer les commandes par programme (à savoir que vous devez générer un nombre variable de grilles - ou tout autre contrôle). Pour la flexibilité, nous voulons dire que votre mise en page doit prendre en compte des valeurs variables que vous ne pourrez pas connaître avant l'exécution.

1

Je trouve des utilisations pour les deux modèles, mais j'ai tendance à essayer d'utiliser le balisage dans les pages aspx où je peux car il est plus facile à lire et m'aide à séparer mon code de vue de mon code logique. Les endroits où je crée des contrôles par programme et les lier à des données sont quand j'ai besoin d'un nombre dynamique de contrôles. Un bon exemple est peut-être lorsque vous générez un ensemble de menus déroulants dynamiquement des critères de recherche des utilisateurs - je ferais quelque chose comme ceci:

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); 
} 

Une autre chose à garder à l'esprit que vous pouvez créer des contrôles de balisage dans votre page aspx, puis les lier aux DataSets personnalisés que vous remplissez dans votre code-behind.

Questions connexes