JASoft.org

Hacer caché sólo durante la petición actual

Hacer caché sólo durante la petición actual
Siempre que se habla de la caché suele hacerse refiriéndose a la caché persistente que todos estamos acostumbrados a conocer y usar, bien la caché de salida de las páginas o bien la caché programática usando la clase System.Web.Caching.Cache. Sin embargo hay ocasiones en las que probablemente nos interesaría más hacer una caché mucho menos persistente. Algo que nos dure lo justo para el propósito de un momento determinado y luego no nos tengamos que preocupar siquiera de deshacernos de ella. En concreto me estoy refiriendo a la caché de contexto o caché de una sola petición. Imaginemos el caso: en una petición usamos un manejador propio para interceptarla y hacer algo antes de ser procesada la página o bien obtenemos alguna información más o menos costosa durante un evento de global.asax (en BeginRequest o durante la autenticación de la petición). El caso es que esa información la necesitamos usar de nuevo varias veces durante lo que dura la petición actual: en otros módulos o en di... [Más]

Caché en modo núcleo de HTTP.sys y ASP.NET 2.0

Caché en modo núcleo de HTTP.sys y ASP.NET 2.0
Bueno, es obvio que útlimamente se me da por la caché. El motivo es que he trabajado bastante con ella en los últimos meses por motivos de trabajo en la empresa, por un curso que he estado haciendo para campusMVP, y ya finalmente por parte de la charla que impartí en el developer Day, si bien en este caso por el tiempo que había apenas pude rozar la superficie del asunto... En fin.. El caso es que ya he mencionado alguna vez en posts anteriores que si movemos nuestra aplicación a Windows Server 2003 con Internet Information Server 6.0, podremos sacar partido de la nueva caché en modo núcleo que éste implementa a través de HTTP.sys. Esta caché de modo núcleo se comunica directamente con los componentes de E/S del kernel del sistema, sin pasar por el modo de ejecución usuario, e incrementa el rendimiento de la caché una barbaridad. Como ejemplo podemos ver los resultados del procesamiento de una página ASP.NET cuyo resultado ocupa 4KB de tamaño, usando una caché en modo núcleo y una cac... [Más]

Desactivar la recolección automática de la caché

Desactivar la recolección automática de la caché
Hace poco teníamos un problema con la caché en una aplicación ASP.NET 2.0 desarrollada en Krasis. En esta aplicación se hacía una caché basada en un criterio propio (VaryByCustom). En los equipos de desarrollo (XP) funcionaba estupendamente, pero al subirla al servidor (2003 Server) parecía comportarse erráticamente: a veces funcionaba y a veces no. Era como si hubiera algo que, fuera de nuestro control, se cargar a la caché... ...y de hecho algo había que hacía lo que le daba la gana... El recolector de memoria de caché de ASP.NET. El caso es que ASP.NET no hace caché de las cosas siempre que se lo dices. Ni mucho menos. Depende de la memoria libre que haya, no sólo la del sistema sino también la asignada por el gestor de caché para el propio proceso de la aplicación actual. No hay un tamaño por defecto sino que el gestor lo calcula automáticamente en función de muchos factores (no documentados). Mediante el nodo caching de Web.config se puede controlar hasta cierto punto el comport... [Más]

WebDay en Vigo el 19 de abril: ¿Eres desarrollador web?

WebDay en Vigo el 19 de abril: ¿Eres desarrollador web?
WebDay: ¿Eres desarrollador web?   Si es así el WebDay es tu evento. Y David Salgado de Microsoft y yo mismo estaremos contigo el próximo día 19 en Vigo, en el centro Social de Caixanova. En este evento David y yo: · Repasaremos los principios básicos para desarrollar sitios web estándares y accesibles. · Descubriremos Expression Web, una herramienta de diseño profesional utilizada para crear sitios modernos y basados en estos principios. · Aprovecharemos para ver cómo ASP.NET proporciona un modelo de desarrollo Web unificado que incluye los servicios necesarios para crear aplicaciones Web para la empresa. · Introduciremos ASP.NET AJAX, que incluye una serie de librerías en cliente y servidor que permiten construir más fácilmente interfaces de usuario ricas para mejorar la experiencia web de los usuarios. · Para finalizar veremos cómo construir aplicaciones, conocidas como gadgets, que se han convertido en uno de los principales atractivos del nuevo sistema operativo Wi... [Más]

Un año más soy MVP :-)

Un año más soy MVP :-)
Pues eso, que me acaba de ellgar el correo confirmándolo (soy de los que premian en abril), así que un año más, hasta abril de 2008, soy MVP en desarrollo ASP/ASP.NET. Y es el cuarto consecutivo ¡yupi!, jeje ¡Enhorabuena al resto de los premiados!

Uso de la clase Cache de ASP.NET 2.0 fuera de aplicaciones Web.

Uso de la clase Cache de ASP.NET 2.0 fuera de aplicaciones Web.
Hace un par de días Eduardo Quintas publicó en Geeks, un interesante post titulado "Desacoplando System.Web.Cache de nuestra lógica de negocio". En él describía cómo crear mediante el uso de algunos patrones una arquitectura de caché que permitía desacoplar nuestra aplicación de la tecnología de caché utilizada, de forma que usando el mismo código y sólo cambiando el proveedor podríamos usar diferentes tipos de caché y en distintos ámbitos (web, Windows Forms...). Léetelo porque es muy interesante. Al hilo de esto añadí un comentario sobre cómo usar la caché de ASP.NEt fuera de aplicaciones Web. Lo cierto es que las veces que lo he usado sólo ha sido con pruebas y no en aplicaciones reales, por lo que no puedo asegurar que no sea cierto lo que dice Eduardo sobre ciertos problemas al llamarla desde múltiples hilos, pero sí puedo asegurar que funciona mientras estemos dentro de un mismo dominio de aplicación. para usar la caché de ASP.NET en contextos diferentes a la Web basta con inst... [Más]

Cómo evitar la desaparición de Intellisense en el archivo web.config

Cómo evitar la desaparición de Intellisense en el archivo web.config
Hace unas semanas un alumno de mi curso de desarrollo Web de  campusMVP tenía un problema muy común: una vez que usaba la herramienta de configuración de la Web de ASP.NET 2.0 le dejaba de funcionar la característica de IntelliSense en el archivo web.config de su proyecto. Al escribir algo en él lo único que obtenía era algo como esto: Si te fijas bien notarás que ha habido un cambio respecto a antes de usar la herramienta de configuración.... Sí, en efecto, ¡bien visto!, es la declaración de ese espacio de nombres XML en la parte superior: xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0" basta con eliminarla para que todo vuelva a la normalidad y podamos disfrutar de Intellisense a tope, y así se lo hice saber al alumno: La mala noticia es que cada vez que usemos la herramienta de configuración nos volverá a pasar y tendremos que estar quitándolo. Menudo fastidio. Como librarse del problema de una vez por todas El caso es que este alumno enocntró u... [Más]

Cómo modificar la salida de una página a nuestra voluntad

Cómo modificar la salida de una página a nuestra voluntad
Pueden existir ocasiones en las que la salida que nos devuelve una página ASPX no es de nuestro agrado. Si queremos modificar de algún modo el HTML puro y duro que devuelve una página podemos sobrescribir el método Render de la página y ahí actuar a voluntad sobre el HTML generado. Por ejemplo, imaginemos que queremos que todas nuestras páginas, automáticamente, lleven una nota de copyright justo al final (vale, sé que hay muchas formas de hacerlo sin complicarse, hasta con el propio IIS, pero es sólo un ejemplo para ilustrar el concepto). Lo que podemos hacer es capturar el renderizado de la página y modificar el HTML devuelto. Vamos a hacerlo para una sola página. Lo que tenemos que hacer es sobrescribir el método Render, como ya he dicho. El código en VB (para variar) sería así: Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)  Dim sw As New StringWriter  Dim htmlsw As New System.Web.UI.HtmlTextWriter(sw)  'Se renderiza la página ... [Más]

Microsoft Developer Day: las mejores prácticas de desarrollo

Microsoft Developer Day: las mejores prácticas de desarrollo
La próxima semana (el jueves) se celebra en Madrid la nueva edición del Microsoft Developer Day, un clásico en eventos orientados a la comunidad de desarrolladores. Como en otras ocasiones, será un evento técnico, donde tendremos oportunidad de ver las mejores prácticas recomendadas para el desarrollo de la un proyecto de Windows o Web, así como las mejores técnicas de seguridad. Podremos echar un vistazo al futuro próximo y anticiparnos a Microsoft Visual Studio code name "Orcas". Veremos LINQ, nombre de código para un conjunto de extensiones para .NET Framework que abarca consultas sobre datos de lenguaje integrado, establece y transforma operaciones. Esto incluye extensiones de los lenguajes C# y Visual Basic con sintaxis de lengua nativa para consultas y brinda librerías de clase para sacar ventaja de estas capacidades. Por último asistiremos a una sesión sobre creación de gadgets para Windows vista y a la entrega de premios del concurso http://gadgetizate.madriddotnet.com/ Y... [Más]

De vuelta de Seattle: Toda una Odisea

De vuelta de Seattle: Toda una Odisea
Al igual que Ulises cuando volvía de la guerra de Troya, la vuelta de Seattle ha sido toda una Odisea. Sin sirenas, cíclopes ni lotófagos, pero con bastantes avatares. Al final me recorrí medio hemisferio norte para volver. Dado que había nieve en Nueva York y el avión original que iba a tomar no podía despegar tuve que re-rutarme por Chicago y Londres, con pérdida de enlaces, pérdida de maletas y demás. Resultado: casi dos días de viaje :-( En la siguiente foto se pueden ver los billetes utilizados tanto para la ida como para la vuelta: Pulsar para agrandar En fin. lo dicho, medio hemisferio. Respecto al MVP Summit, pues lo pasamos bastante bien como podéis haber leído en los blogs de los amigos, con todas nuestas aventuras en la América profunda (que miedo), fiestas varias, y también como no un poco de trabajo técnico en Microsoft que por desgracia no podemos comentar demasiado. Así que tampoco os voy a aburrir con eso. En fin, que ya estoy de vuelta y espero ir sacando tiempo ... [Más]

Este soy yo y este es mi blog técnico, dedicado al software y a la programación.

¡Sígueme en Twitter!

Mis otros blogs

- JM Alarcón @ campusMVP.es
Contenido técnico en español orientado a desarrolladores
- JMAlarcon.es
Blog personal no técnico: sociedad, innovación, empresa...

Krasis

- campusMVP.es:
Los mejores cursos online de programación en español

- SELF LMS:
La plataforma de elearning más potente del mercado.

Histórico