2009-07-18 42 views

Respuesta

0

El estado de la IU solo debe verse afectado por el proceso comercial que representa. Por lo tanto, debe aspirar a que su UI se actualice automáticamente a los cambios en el modelo comercial. Si está programando la IU manualmente, es más probable que haya casos en los que el estado del modelo comercial no se refleje con precisión. La programación declarativa de la IU elimina la mayor parte de esta preocupación. Donde sea posible, use el método declarativo.

2

Aquí no hay nada correcto o incorrecto, depende de lo que esté tratando de lograr.

Usted puede utilizar con seguridad controles estáticos cuando se sabe su diseño no está sujeta a cambios (es decir, una rejilla con un número fijo de columnas), o cualquier cambio futuro posibles es probable que sean de naturaleza estática (una nueva columna en su cuadrícula). Este enfoque es perfecto y obviamente más rápido en el caso promedio del mundo real.

Si necesita flexibilidad entonces necesita generar los controles mediante programación (es decir, se necesita generar un número variable de rejillas - o cualquier otro control). Por flexibilidad, queremos decir que su diseño debe tener en cuenta los valores variables que no podrá conocer hasta el tiempo de ejecución.

1

Encuentro usos para ambos modelos, pero tiendo a intentar utilizar el marcado en las páginas aspx donde puedo porque es más fácil de leer y me ayuda a separar mi código de vista de mi código lógico. Los lugares donde programáticamente creo controles y anexo datos a ellos son cuando necesito una cantidad dinámica de controles. Un buen ejemplo podría ser cuando se generan una serie de menús desplegables dinámicamente los criterios de búsqueda del usuario - Me gustaría hacer algo como esto:

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

Otra cosa a tener en cuenta es que puede crear controles de marcado en su página aspx y luego vincúlelos a los DataSets personalizados que rellene en su código subyacente.

Cuestiones relacionadas