viernes, 25 de marzo de 2011

Las primeras Impresiones sobre mi Aplicación Sample Hattrick

Como lo comente este juego lo haré siguiendo como molde a Hattrick, pero no usare código alguno que este en Hattrick(html, etc).


Problemas con el Menú.

Después de crear mi proyecto ASP.NET Web Application con net.framework 4.0, el VS10 te lanza una aplicación con un menú ya creado en la MasterPage y otras dos Paginas "Acerca" y "Login". Aquí fue donde encontré mi primera tarea al ver que el Menú reproducido en la vista diseño no era el mismo que aparecía al correr la aplicación. Como pueden ver en la imagen siguiente:
Como puedes ver al ejecutarse el menú deja una nueva linea tras de


si, dando la impresión de que creció en altura o algo parecido. Esto se da por la propiedad SkipLinkText, que no esta "nulleada" en la plantilla que te ofrece VS10 al inicio(o al menos en la mía). Esa propiedad es para colocar texto alternativo para los Lectores de Pantalla que omiten la lista vínculos del menú. Puedes leer la descripción en el hipervinculo de arriba. Como esta aplicacion no esta hecha para "Screen Reader" establecemos la propiedad skiplinktext="".

asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" 
SkipLinkText="" EnableViewState="False"
IncludeStyleBlock="False" Orientation="Horizontal"
Nuestro menu(ya modificado),  queda mas o menos así al ejecutarse:

Como puedes notar el molestoso salto de linea que aparecía antes del menú desapareció, esto soluciono viejos problemas que tenia desde antes.

Cantidad de Menús.

Una vez solucionado el problema del salto de linea, necesito tener al menos dos menús, uno para la pagina inicial y otro para el usuario ya conectado, decidí crear dos de ellos almacenados en dos user control distintos, cada user control lo cargare con el método load de la Master Page principal.
Primero deberé discernir si el usuario esta o no conectado, eso pienso manejarlo con una variable de sesión.
De momento ya tengo los dos UserControl cada uno con un asp:Menu diferente, y ya probé la forma de cargar los UserControl desde el método load de la MasterPage, para eso tengo que añadir un PlaceHolder que va a contener el UserControl especifico, y llamar control.add(new control) de nuestro PlaceHolder cuando el load de la Master corra.


//if(Session["Iniciado"] == 0)~/Menu/MenuUsuario.ascx
 Control oMenu = LoadControl("~/Menu/MenuInicial.ascx");
 //Control oMenu = LoadControl("~/Menu/MenuUsuario.ascx");
 algunMenu.Controls.Add(oMenu);
Aquí les presento una imagen de como va quedando los dos UserControl.

Una cosa que también note es que los estilos definidos para los menús incrustados en algún UserControl, no se representan en vista diseño, hubiera sido mejor así.

Y el html del SiteMaster (la cabecera) va quedando así:

Voy a subir todo el proyecto a un servidor de subversion, para que puedan descargarlo ya que pienso convertirlo en Open Source o Free Software, eso depende de lo que llegue a discernir en las próximas horas, días.
Cualquier comentario sugerencia seria bien recibida.
Gracias



2 comentarios:

Los comentarios seran revisados, para lograr su aprobación.