You are currently browsing the tag archive for the ‘C#’ tag.

Ya habíamos hablado sobre cómo hacer uso del objeto Cache de ASP.NET para poder guardar en caché aquellos objetos que almacenan datos que requieren de un largo tiempo de procesado para ser obtenidos y que no cambian con demasiada frecuéncia.  Con el uso del objeto Cache, evitábamos tener que volver a recuperar los datos (con todo lo que eso implica: realizar la conexión a la base de datos, realizar la consulta, cerrar la conexión y realizar un tratamiento de los datos si es necesario). Eso repercute en una mejora sustancial en el tiempo de procesado de una petición a un recurso determinado. Pero ¿cómo podemos reducir aún más ese tiempo?  Hasta ahora, guardamos en caché el resultado de consultas a una base de datos, a un archivo o cualquier objeto cuya inicialización u obtención requiere de un tiempo notable de procesado. Ahora bien, eso no quita que se deba llevar a cabo toda la renderización de la página pasando por cada uno de los eventos de ASP.NET (PreInit, Init, Load, PreRender, Render, etc…) para acabar generando el código Html que se envia finalmente al cliente. Si prestamos atención, veremos que el simple hecho de renderizar los controles de servidor (WebControls) a tags Html implica un coste elevado (pero necesario) de tiempo. Necesario si pero ¿siempre?. La respuesta es no. Si analizamos con calma las páginas de nuestro site, nos daremos cuenta de que muchas de ellas son completamente estáticas (siempre muestran el mismo contenido) y que otras disponen de contenidos dinámicos que cambian cada cierto tiempo (pero no de forma contínua, ni por usuario ni nada por el estilo).
Si lo miramos así, sería genial poder guardar en Cache el resultado de la renderización de estás páginas (es decir, Cachear el códgio html que se envia al cliente) evitando así todo el proceso de renderización de la página. Es aquí donde entra en escena la directiva OutputCache.

Leer el resto de esta entrada »

Muchos son los beneficios que se pueden obtener al hacer un uso correcto de la Cache de ASP.NET, pero cierto es que muchos programadores son reticentes a su uso o bien desconocen todas las opciones que ASP.NET nos ofrece con tal de Cachear objetos. Con este artículo pretendo “desmitificar” el uso de la caché de ASP.NET, mostrando ejemplos prácticos de sus diferentes usos. En este primer artículo, nos centraremos en el objeto Cache, mientras que en la segunda parte nos centraremos en la directiva OutputCache. Leer el resto de esta entrada »

C# 3.0 incluye una nueva característica llamada expresiones Lambda. Las expresiones lambda son los fundamentos sobre los que se constuye LINQ. Estas provienen del paradigma de programación funcional. En el mundo de la programación funcional, las expresiones lambda son un mecanimos para definir métodos Leer el resto de esta entrada »

Los métodos parciales son una nueva característica de los lenguajes C# 3.0 y VB.NET 9.0. Los métodos parciales nos permitirán declarar y utilizar métodos sin estar éstos implementados.

Leer el resto de esta entrada »

En este artículo se pretende describir que son los friendly assemblies (o ensamblados amigos) y como implementarlos. Este es un concepto que ya existía en la versión VB.NET 2005 (8.0) y en C# 2.0.

El concepto de ensamblado amigo nos indica que un ensamblado podrá compartir sus miembros Friend / Internal con otros ensamblados determinados (es decir, que tenemos que especificar explícitamente). Leer el resto de esta entrada »

La relajación de delegados es otra de las nuevas características del lenguaje VB.NET (9.0) (que ya venía incluida en la versión 2.0 del lenguaje C#). 

Un poco de historia para contextualizar esta característica:

Como todos sabemos, un delegado no es sino un puntero que hace referencia a una dirección de memoria que contiene la firma de un método (y el método en sí). En versiones anteriores (podríamos ir directamente al lenguaje C++ para comprobar esto) la firma del método era fuerte (strong). Leer el resto de esta entrada »

Anonymous types (o tipos anónimos, también llamados projections) es una nueva característica que incorporan las nuevas versiones de los lenguajes C# y VB.NET (3.0 y 9.0 respectivamente). 
Los tipos anónimos nos permiten declarar tipos al momento, sin tener que hacer una declaración explícita (es decir, sin tener que crear una clase).  Los tipos anónimos tienen una mayor utilidad en las expresiones LINQ, ya que estas sentencias muchas veces no se mapean a una entidad lógica concreta y requieren la creación de un nuevo tipo de objetos al momento (on the fly) para poder ser tratadas posteriormente. Leer el resto de esta entrada »

Extension Methods es una de las novedades que incorporan tanto la nueva versión del lenguaje C# (3.0) como el lenguaje VB.NET 2008 (o 9.0, que representan exactamente lo mismo, pero uno hace referencia a la versión del compilador y el otro es un nombre más comercial) ambos desplegados con la versión 3.5 del .NET Framework . Los Extension Methods (o métodos extensores) nos permiten añadir nuevos métodos a tipos ya existentes sin tener que crear un tipo derivado. Leer el resto de esta entrada »