Lanzamiento de Visual Studio 2008

Hola a todos,

Este post es para mencionarles a todos aquellos que están cerca de la región fronteriza de México con Estados Unidos, mas específicamente en Ciudad Juárez, que el próximo 27 de mayo será el lanzamiento de Visual Studio 2008 en dicha ciudad, así que todos los que estemos interesados en acudir a este evento solo tenemos que registrarnos en la página de la comunidad.

Un evento muy interesante, muchas gracias a la Comunidad Net de Ciudad Juárez por el esfuerzo en la realización de este tipo de eventos.

Flyer

Manejando el Cache en ASP.NET

Hace unos dias tuve la necesidad de implementar una pequeña rutina de cache en una sitio desarrollado en ASP.NET, y me encontre que el manejo de objetos en cache en .net es muy sencillo y ofrece varias opciones para las distintas necesidades que tenemos en nuestros proyectos.

El espacio de nombres (namespace) que debemos usar es: System.Web.Caching, por lo tanto es necesario incluirlo con la sentencia using System.Web.Caching … en C#

Es asi que ASP.NET nos permite tener el manejo de Cache basado en politicas de dependencia o expiracion de manera que el manejo de Cache se hace manera automatica. De manera que cuando agregamos un item nuevo al Chache tenemos la opcion de especificarle al CLR cuando tenemos que invalidar dicho item, todo esto de manera automatica, es ese el concepto de dependencia.

Las dependencias que nos ofrece ASP.NET son: por archivo, por llave y por tiempo.

DEPENDENCIA POR ARCHIVO (file dependency)

Esta dependecia se usa para aquellos casos en los que queremos que el item que creamos en cache se invalide basado en algun cambio en cierto archivo fisico, por ejemplo en caso de que se este leyendo informacion desde un archivo xml y esta informacion se guarda en Cache mientras no se haya modificado el archivo, en el momento que el archivo cambia la dependencia lo detecta y de esta manera invalida el item de Cache, esto por supuesto debe ir acompañado de un manejo de Cache en codigo para detectar que el item ya fue invalidado y que necesita leer nuevamente el archivo desde su localizacion y guardarlo nuevamente en Cache.

CacheDependency cDep = new CacheDependency(”Clientes.xml”);
Cache.Insert(”Clientes”, xmlObject, cDep);

… donde xmlObject es el objeto que contiene la informacion que fue leida del xml

DEPENDENCIA POR LLAVE (key dependency)

Esta dependencia es usada cuando queremos invalidar algun item que agregamos a Cache basados en el cambio de algun otro item existente en el Cache, por ejemplo si tenemos el nombre en una item del cache y el apellido en otro y en caso de que el nombre cambie entonces el item del cache que contien el apellido deberia de ser invalidado 

Cache["Nombre"] = “Roberto”;
String[] dependencyKey = newString[1];
dependencyKey[0] = “Nombre”;
CacheDependency cDepend = new CacheDependency(null, dependencyKey);
Cache.Insert(”Apellido”, “Galindo Venzor”, cDepend);

DEPENDENCIA POR TIEMPO (time expiration)

Esta es una de las mas comunes, ya que la mayoria de los casos deseamos tener un objeto en cache por cierto tiempo. Este metodo tiene dos opciones: podemos definir un tiempo exacto en el que queremos que el item sea invalidado o podemos definir un periodo de tiempo en el cual el objeto puede estar en cache si que haya sido usado.

Podemos usar la primera opcion cuando queremos que nuestros items se actualizen por ejemplo una vez al dia en la mañana.

Podemos usar la segunda opcion si deseamos que los objetos se mantengan en cache cuando son usados de manera frecuente. Este metodo es tambien llamado en ingles: “sliding window”

Cache.Insert(“Clientes”, clientesObject, null, Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(30));

esta instruccion hara que el objeto se mantenga en memoria 30 segundos si nadie hace uso de el, de lo contrario en cuanto algun proceso haga uso de este objeto el “cronometro” se reinicia y se inicia la cuenta.

… espero que sea de utilidad… :D

Recurso de aprendizaje para examen de certificacion 70-536

El siguiente link es una recurso que se ve muy interesante y puedes ser de gran ayuda para aquellos que andamos buscando la certificacion de Microsoft:

http://learning.devworx.com.mx/certificaciones/70-536/default.aspx

… a estudiar… :D

Contando el numero de registros en una tabla de SQL Server

Hace tiempo estuve intentando contar el numero de registros que tenia una tabla de sql que correspondian a cierto ID de Ciudad, por ejemplo, tenia una tabla de usuarios y cada uno tenia asignado un City Id, de manera que en cierta situacion me vi en la necesidad de saber cuantos usuarios estaban asignados a un determinado City Id, el siguiente es el query de SQL que me ayudo a poder determinarlo:

SELECT     City_ID, COUNT(City_ID) AS Ocurrencias
FROM         Property_Listings
GROUP BY City_ID
ORDER BY Ocurrencias

… asi el SQL te regresa dos columnas, una en la que tendras el Id de la Ciudad, y en el otro podras tener el numero de veces que ese ID fue encontrado en la tabla,

Esto es en realidad algo muy sencillo, pero que me llevo un poco de tiempo darme cuenta que se tenia que hacer de esa manera, por lo que si estas en la misma situacion espero que sea de ayuda…

Hola de nuevo

Hola a todos, ya hace tiempo que no escribo en mi blog y creo que ya es tiempo de retomarlo con temas que al compartirlos sean de ayuda  para muchas personas que, como yo, desean aprender siempre algo nuevo

Asi que pronto estare escribiendo mas…

Curso C#: Simbolos y Tokens

Los símbolos y tokens son los constituyentes principales de los lenguajes, en esta sesión se hizo un análisis de los mas importantes y se describió la funcionalidad que tienen dentro del código que escribimos. En esta presentación esta la lista de aquellos símbolos que revisamos.

Curso C#: Reference Types

Al igual que para los Value Types, para los Reference Types ya existe un post en este blog, el cual puedes ver dando clic aquí, además se tienen ejemplos que sera de mucha ayuda, la primer parte de ejemplos es sobre Streams y Exceptions, y la segunda parte sobre Strings y Arrays. En en esta presentación se pueden ver algunos de los conceptos basicos que se revisaron en la sesión.

No olvides agregar tus comentarios.

Curso C#: Value Types

El tema de Value Types ya lo vimos en un post que hice hace tiempo, este post puedes verlo dando clic aquí, además en otro post se hicieron algunos ejemplos que pueden ser de ayuda para hacer algunas practicas.

En la clase estuvimos revisando algunos conceptos que nos ayudaran a entender de mejor manera los conceptos relacionados con este tema, aquí esta la presentación que se uso ese día.

Curso C#: Introduccion al .NET Framework (2)

Esta es la segunda parte de la introducción a la arquitectura y el concepto de .NET Framework, en esta presentación se aborda a mas detalle la funcionalidad del CLR y se hace una revisión de los tipos por valor y referencia.

Curso C#: Introduccion al .NET Framework

Para iniciar en C# es importante revisar los conceptos básicos del .NET Framework, en esta presentacion se hace una introducción a muchos de los conceptos que estan relacionados con la arquitectura del framework.

Considero que es muy importante hacer una revisión de la arquitectura del framework ya que esto nos ayudara a que se entienda de mejor manera como es que nuestro código funciona dentro de la tecnología .NET.

« Artículos anteriores