JASoft.org

El blog de José Manuel Alarcón Aguín. Programación web y mucho más...

MENÚ - JASoft: JM Alarcón

ASP.NET 4.0: Nueva sintaxis declarativa para evitar XSS

Los que ya tenemos una cierta edad y hemos trabajado (y mucho) con ASP Clásico estamos acostumbrados a ver la sintaxis <%= %> en las páginas Web. Este tipo de expresiones se limitan a mostrar lo que vaya dentro de ellas en el lugar indicado en la página. Por ejemplo, si escribimos: <%= Request.Url.ToString() %> Obtendremos la URL de la página actual. Se puede usar cualquier tipo de expresión dentro de estas etiquetas (llamadas a funciones, condicionales, bucles...) y veremos en la página el resultado. Este tipo de sintaxis siempre fue denostada por generar mucho código espagueti, el cual es típico de otros lenguajes como PHP. Está soportado por ASP.NET Web Forms, aunque prácticamente apenas se utiliza pues hay muchas opciones mejores. Sin embargo vuelve a estar más de moda que nunca debido a ASP.NET MVC. En MVC se utilizan mucho en las vistas ya que permiten mostrar de manera directa y sencilla los valores de las propiedades del modelo. Y la verdad es que convierte... [Más]

Creación de manejadores de peticiones asíncronos: El contador de Meneame.net

Meneame.net es una Web recopiladora de enlaces en la que los usuarios publican enlaces que creen de interés, y el resto de los usuarios votan o critican en función de lo sus intereses. La teoría es que, de este modo, los enlaces más interesantes subirán hacia las primeras posiciones de su categoría en virtud de este proceso de "crowdsourcing". La práctica es que no siempre es así (prueba a posicionar un enlace técnico, por ejemplo). Pero no obstante la web es muy interesante para encontrar enlaces y noticias de interés general dentro de temáticas más o menos prosaicas. A cada voto que recibe una URL se le denomina "meneo". El caso es que, al menos oficialmente, no existe ningún botón de información sobre cuántos "meneos" tiene una determinada URL, al estilo de los que tiene Facebook o Twitter. Los únicos desarrollos que integran este botón para poder poner dicha información en tu blog o web pertenecen a sitios de valoración social, estilo ShareIt y compañía, por lo que si quieres tene... [Más]

Solución al mensaje "Error genérico de GDI+" en aplicaciones Web que generan gráficos

Este fin de semana he estado trabajando en una pequeña aplicación que en breve colgaré con código fuente para todo el mundo y que me dio el error que os comento en el título del post. Aunque todo lo que utilicé era compatible con .NET 2.0, la desarrollé en mi equipo con Visual Studio 2010 y .NET 4.0, donde todo funcionaba a la perfección. Al subirla al servidor donde iba a estar albergada, de repente, me daba el error "Error genérico de GDI+" o -en inglés- "A generic error occurred in GDI+", sin más explicaciones, y con unas referencias muy raras a Remoting. Mi código original generaba una imagen que posteriormente se devolvía al navegador en formato PNG. El código que estaba utilizando era similar al siguiente: Bitmap img = new Bitmap(sRutaImagenPatron);Graphics g = Graphics.FromImage(img);Font f = new Font(fuente, tamanio, FontStyle.Bold);Brush b = colorLetra;g.DrawString(string.Format("{0:n0}", iDato), f, b, posX_Letra, posY_Letra); context.Response.ContentType = "image/png";img... [Más]

La manera correcta de actualizar contadores de rendimiento personalizados

Esta es una pregunta interesante que ha surgido en el curso de fundamentos de la plataforma .NET que tutelo on-line en campusMVP. Se trata de una pregunta sencilla pero con una sutileza interesante respecto a la creación de contadores de rendimiento para Windows desde .NET. Cuando creamos un contador personalizado en .NET incrementamos o disminuimos su valor para actualizar la medición que queremos reflejar en el contador de rendimiento del sistema. Algunos ejemplos de contadores que podemos crear son: uno que indique el número de usuarios actualmente autenticados en nuestra aplicación Web, uno que indique el número de compras realizadas en una tienda on-line, el promedio de consultas lanzadas contra un almacén de datos, etc, etc... Tienen mucha utilidad ya que nos permiten monitorizar con las herramientas propias de Windows el desempeño de nuestras aplicaciones, tanto en tiempo real como haciendo trazas para un análisis posterior. El caso es que todos ellos implican generalmente e... [Más]