30 nov 2011

Windows 8 Developer Preview y IE 10

Buen día a todos

Como verán ya puede ser descargado e instalado el IE 10, pero sólo es  soportado por Windows 8. Así que si lo quieren probar tendrán que instalar el demo developer del windows 8 para conocer las nuevas bondades que nos trae el IE 10

Asi que les dejo los links:

29 nov 2011

Manipulando Eventos y Manejando Estados Parte Practica I

Hola buen día a todos, como verán aquí se tocan varios puntos así que la practica estará dividida en varias partes....


Iniciemos con conocer: ¿En donde se encuentra los eventos de aplicación?
Todos ellos están en el global.asax





Si crearon una aplicación vacía esta no contendrá en un inicio este archivo para ello deben agregarlo como cualquier otro archivo, lo buscan con el nombre de Global Aplication Class.


Ahora continuemos con el viewstate, este para que sirve¿?
Pues es el que mantiene el estado de los controles. Aja y que quieres decir con eso¿?
Con un ejemplo lo entenderemos mejor.


Supongamos que tenemos un button con el texto Hola colocado en la pagina aspx, y por programación queremos que cuando le de click cambie el texto de Hola, ah me as Clickeado!!!. Efectivamente si dejamos el viewstate mantendrá el estado de me as Clickeado!!! así refresque la pagina ( Es decir le doy a F5 ), si no tengo el viewstate el botón no mantendrá el estado del texto que le pase por programación cuando refresque la pagina, si no volverá a mostrar el Hola.


Aquí en esta imagen podemos ver el ViewState (remarcado) de esta pagina de prueba, en algunos casos si lo dejas habilitado en todas las paginas así no lo necesites podria llegar a ocupar mucho mas espacio, haciendo mas pesada la pagina, repercutiendo por ende en el rendimiento de la aplicación web.





¿Porque se ven un montón de numero y letras que no comprendo?
Esto es porque el viewstate siempre esta encriptado por seguridad.


Como accedemos a ese código¿?
En cualquier browser pueden dar click derecho en cualquier parte de la pagina y debería tener alguna opción de ver código fuente de la pagina (como es en este caso en chrome) o algo por el estilo.





¿Ahora como hacemos para inhabilitar el viewstate de nuestras paginas o controles ya que en todas este esta por defecto activado?Para esto podemos hacerlo de distintas formas.


  • Si queremos que sea de manera global en nuestra pagina ya que sabemos que no necesitamos mantener el estado en ninguna de nuestras paginas, ponemos:
<configuration>
<system.web>
<pages enableViewState="false">
</system.web>
</configuration>
  •  A nivel de directiva de pagina:
        EnableViewState="false"
  • O de control pero para esta parte debemos usar algo llamado: ViewStateMode
      Esto lo pude encontrar explicado de manera bastante sencilla en el blog de Chalalo: http://geeks.ms/blogs/gperez/archive/2009/08/28/asp-net-4-0-mejorando-el-rendimiento-con-viewstatemode.aspx

Bueno ya tengo sueño jejeje.. en las siguientes partes ya tocaremos la parte de Hidden fields, Cookies y Query strings

21 nov 2011

Manipulando Eventos y Manejando Estados

Hoy les voy a dejar el resumen de Handling Events and Managing State esta incluye: 

  • Que es:
    • View state
    • Hidden fields
    • Session state
    • Cookies
    • Query strings
    • Application state
  • Todos los eventos que levanta una pagina durante su ciclo de vida.
  • Eventos del lado de la aplicación
  • Elegir entre Client-Side o Server-Side  para el Manejo de  los estados
Y mucho mas... espero que les sea de grata ayuda. Aquí se los dejo.


14 nov 2011

Usando Master Pages, Themes y Caching (Parte Practica II)

Hola buen día a todos

Hoy les traigo la continuación de la anterior entrega respecto al cache que era el que nos hacia falta (Disculpen por no hacerlo la semana pasada eh estado muy full...).


En resumen a la teoría la memoria cache sirve para almacenar en memoria algunos objetos de la pagina o toda la pagina si lo desean en la memoria del servidor (o la del navegador del cliente) de manera que el navegador no tenga que descargar siempre el contenido de la pagina si no lo obtiene todo directamente desde la memoria cache.


Nota: La memoria cache del navegador es case-sensitiveesto puede resultar en el navegador la descarga del mismo objeto más de una vez si yo no uso consistentes casos para las direcciones URL que se refieren al mismo objeto. Por ejemplo no seria lo mismo en la memoria cache la descarga del objeto <img src="myimage.jpg" width="50" height="50" /> <img src="myimage.JPG" width="50" height="50" /> como verán son la misma imagen pero la extensión termina en mayúscula ya con este ligero cambio lo considera como otro objeto.


Para poder empezar a usar el cache tenemos que agregar una nueva directiva de pagina llamada OutputCache (  <%@ OutputCache Duration="60" VaryByParam="None"%> ) este es el tipo de cache que se usa para la pagina completa y lo ponemos en las paginas que queramos que tengan cache y si queremos un punto central en donde modificarlo por ejemplo el tiempo lo podemos hacer en el web.config dentro de <system.web>:



<caching>
      <outputCacheSettings>
        <outputCacheProfiles>
          <add name="Cache60sgd" duration="60"
            varyByParam="none" />
        </outputCacheProfiles>
      </outputCacheSettings>
</caching>



y se pondría en la directiva de pagina CacheProfile ( <%@ OutputCache CacheProfile="Cache60sgd"%> ) 






Cabe mencionar que no solo se usa para el OutputCache la propiedad varyByParam tambien esta:
Ahora un ejemplo de como carga la pagina sin cache





y con cache





como podrán notar la imagen dentro del documento no se cacheo esto pasa en firefox y en google chrome pero en internet explore ( por lo menos la versión 9 que fue donde probé) si se cachea el documento completa mente cuando hace el request hace solo una petición al cache que se trae todo el documento completo.


Estas pruebas se hicieron fue como localhost pero según con IIS todo se almacena automáticamente como podrán ver en este articulo que encontré en la web: http://technet.microsoft.com/es-es/library/dd239248(v=ws.10).aspx


Ahora también esta el objeto como tal Cache que a diferencia del Output guarda son resultados de objetos por ejemplo: Estamos programando una aplicación para una universidad que se trae todos los profesores de la base de datos y los guarda en un dataset este lo podemos guardar en el objeto cache de modo que no tenga que ir todo el tiempo a la base de datos y traerse todos los profesores si no que lo obtiene directo de memoria.


Se puede usar asi: Cache["key"] = "value";


o asi: 

Cache.Insert("key", myXMLFileData, new 
  System.Web.Caching.CacheDependency(Server.MapPath("users.xml"))); 
En este caso cambia cuando el archivo users.xml cambia
Cache.Insert("key", myTimeSensitiveData, null, 
  DateTime.Now.AddMinutes(1), TimeSpan.Zero);
En este otro caso se le estableció un tiempo de duración al cache 
Para mas información respecto a las sobrecargas y los parámetros la pueden conseguir aquí: 
http://msdn.microsoft.com/es-es/library/system.web.caching.cache.insert.aspx
Y para el caso que mencione en el ejemplo seria mas o menos así:
public DataTable GetTeachers(bool BypassCache)
{
   string cacheKey = "TeachersDataTable";
   object cacheItem = Cache[cacheKey] as DataTable;
   if((BypassCache) || (cacheItem == null))
   {
      cacheItem = GetTeachersFromDataSource();
      Cache.Insert(cacheKey, cacheItem, null,
      DateTime.Now.AddSeconds(GetCacheSecondsFromConfig(cacheKey), 
      TimeSpan.Zero);
   }
   return (DataTable)cacheItem;
}
Bueno esto es todo por hoy asta el siguiente post... (Esperemos que sea pronto jeje...)

1 nov 2011

Usando Master Pages, Themes y Caching (Parte Practica)

Hola buen día a todos

En la anterior publicación les deje la teoría respecto a las master pages, temas y skins. Hoy vamos a hacer una parte práctica relacionada con estos…

Para crear Master Pages le dan click derecho al proyecto web y seleccionan -> Add -> New Item, y dentro de la lista de elementos seleccionan Master Pages. En la imagen podemos ver la página maestra creada , la cual contiene los ContentPlaceHolders que es donde ira el markup especifico de cada página y el resto es lo que será la página maestra como tal que es lo que visualizaremos en el resto de las páginas que estén enlazadas a esta.


Cuando creamos una página aspx que deseemos usar con nuestra página maestra podemos usar la plantilla que dice: Web Form using Master Page, esta estará automáticamente enlazada a nuestra página maestra.


Para lo demás ya se los dejo a su creatividad para que conozcan bien las Master Page cualquier duda también me pueden escribir a mi correotambién pueden repasar el resumen que les publique en el post pasado.

Ahora para los Themes y skins deben agregar la carpeta de themes

¿Dónde se encuentra esta?

La pueden hallar dándole click derecho al proyecto -> Add -> Add ASP .NET Folder -> Theme. Luego de que lo agregan le ponen el nombre que deseen y dentro de esta le pueden agregar solo 2 archivos CSS o Skins, aparte de imágenes.


En esta última imagen se puede ver como establecemos el theme a toda nuestra aplicación web es decir todas nuestras páginas aplicaran este theme.


Por ejemplo si pusimos en nuestro theme un skin para los button para que tengan fondo azul, todos nuestros botones tendrán fondo azul, además de las características que hayamos establecido en el css.

Bueno hasta aquí llegamos por hoy (ya para la próxima haremos la parte practica del cache) y disculpen por no explicarme mejor en él y no publicar más comúnmente ya que actualmente estoy bastante ocupado con las asignaciones de la universidad y las ocupaciones del trabajo…

Pero aun así espero que les sea de su agrado, saludos y feliz día.