JASoft.org

GridView de ASP.NET a fondo: no te lo pierdas

GridView de ASP.NET a fondo: no te lo pierdas
El próximo día 1 de Julio tengo el gusto de participar como ponente en este interesante evento on-line de SecondNUG, el grupo de usuarios de .NET en Español que cada vez está teniendo más tirón: En este evento Luis Miguel Blanco se encargará de desvelar los secretos y dudas más comunes de las rejillas en programas de escritorio (Windows Forms), mientras que yo me encargaré de hacer lo propio con el control GridView de ASP.NET para desarrollo Web. Será una hora para cada control con contenidos eminentemente prácticos (mucha demo) y trataremos de resolver las dudas más comunes que se suscitan en los foros de MSDN. Apúntate pulsando sobre la imagen de más arriba.

Cómo detectar si la sesión ha caducado en ASP.NET (Método II)

Cómo detectar si la sesión ha caducado en ASP.NET (Método II)
En mi anterior post comentaba brevemente el funcionamiento más común de los sistemas de sesiones de los servidores de aplicaciones Web y en particular el de ASP y ASP.NET. Éste lleva acarreados una serie de problemas cuando ls sesiones terminan por lo que comentaba una forma sencilla de detectar que una sesión había caducado. En dicho post comenté que iba a explicar una forma más "profesional" y autocontenida de comprobar si una sesión está activa o no en ASP.NET, y a eso voy... El mecanismo para comprobar si la sesión actual está caducada o no pasa por el uso de una propiedad no muy conocida de la clase HttpContext: IsNewSession. Esta propiedad devuelve 'verdadero' únicamente cuando se acaba de crear una sesión para el usuario justo en la petición actual. Una sesión se crea cuando se crea una variable de sesión por primera vez. Al hacerlo se envía al cliente una cabecera con el identificador de sesión que es el que posteriormente el navegador envía de nuevo al servidor en cada petici... [Más]

Cómo detectar si la sesión ha caducado en ASP.NET (Método I)

Cómo detectar si la sesión ha caducado en ASP.NET (Método I)
El protocolo HTTP es un protocolo sin estado. Esto quiere decir que no hay forma incluída en el protocolo para discernir una petición de otra. Por lo tanto cuando llegan dos peticiones al servidor no hay forma de saber si pertenecen al mismo usuario (ni siquiera la IP como alguna gente me dice a veces, ya que muchas personas pueden salir a Internet desde la misma dirección IP (mismo router y conexión). Además los identificacdores estáticos como ese no son fiables nunca). Dicho esto, lo que está claro es que en la práctica sí que existe forma de distinguir que dos peticiones vienen del mismo usuario. Es el concepto que sostiene las sesiones de ASP.NET y otras tecnologías. ¿Cómo se consigue?. Bueno, existen muchas formas de hacerlo, pero la más habitual consiste en utilizar una cookie de sesión para almacenar un valor único que identifica de manera inequívoca a cada usuario. Estas cookies de sesión son realmente cabeceras HTTP que el navegador envía de vuelta al servidor en cada petició... [Más]

Cifrado de información en los archivos de configuración de ASP.NET

Cifrado de información en los archivos de configuración de ASP.NET
Una pregunta muy típica con la que me suelo encontrar es la de: "¿Cómo puedo hacer para proteger la información de mi cadena de conexión a la base de datos si ésta la pongo en mi web.config?". Bueno, lo primero que he de decir es que siempre conviene usar mejor la seguridad integrada de Windows (cadena de conexión con "Integrated Security=SSPI;") que las cuentas propias de SQL Sever, por lo que en ese caso no sería necesario encriptar nada. Por otro lado existe un manejador de peticiones de IIS que impide que el contenido de los archivos web.config sea accedido mediante HTTP, por lo que sólo debería preocuparnos que alguien viera nuestra configuración en caso de tener un agujero de seguridad en el servidor o bien en nuestro código (por cierto, aprende a evitarlos), en cuyo caso tendríamos un problema mucho mayor que el hecho de que sepan las credenciales de un usuario de SQL Server, que ya de po... [Más]

El problema de los valores por defecto en listas desplegables de ASP.NET

El problema de los valores por defecto en listas desplegables de ASP.NET
Se trata este de un truco sencillo, pero aún así interesante ya que mucha gente tarda en darse cuenta de cómo solucionarlo. El problema surge cuando usas un control DataSource del tipo que sea (ObjectDataSource, SqlDataSource, LinqDataSource, etc...) y lo enlazas con un DropDownList para mostrar una lista de valores para elegir, por ejemplo, la categoría de productos a mostrar en otro control GridView. El origen de datos te devuelve sólo los diferentes valores de categorías disponibles en la base de datos, pero lo habitual es que además de una categoría (o lo que sea) concreta, desees dar una opción o dos por defecto, por ejemplo "Ver todas" y "Ninguna". Pero claro el control de origen de datos no tiene esas categorías inexistentes contempladas, así que ¿cómo haces? Pues muy fácil, pero hay que saber un truquillo: la propiedad AppendDataBoundItems del control DropDownList. Si la estableces a True lo que consigues es que cualquier elemento que coloques en lalista en ti... [Más]

Bug en el control RangeValidator con los idiomas Búlgaro y Eslovaco

Bug en el control RangeValidator con los idiomas Búlgaro y Eslovaco
Bueno, esto es de estas cosas que crees que a ti no te van a pasar pero luego resulta que sí, que te pasan :-) Y es que un cliente nuestro ha encontrado la aguja en el pajar. Una aplicación que teníamos producía un error inexplicable en un par de clientes de este cliente, y no sabíamos de qué era. Viendo el registro de errores pudimos llegar a dar con el problema. Resulta que cuando el idioma del navegador del usuario es Búlgaro (bgt-BG) o Eslovaco (sk-SK) y tienes el cambio automático de cultura activado, el control RangeValidator puede romper si estás validando fechas. Sí, es que la aplicación que habíamos hecho está internacionalizada y nuestro cliente tiene clientes en todas partes de europa, así que... Al producirse el error la página incluso deja de cargar, ya que rompe durante la asignación de los valores máximo y mínimo si éstos se establecen mediante código (como es normal cuando se trata de fechas). El problema es que en estos países el formato de fechas es raro de narice... [Más]

Controles GridView que rompen con el nuevo Service Pack 1 para .NET 2.0 y .NET 3.5, y nueva propiedad de campos enlazados

Controles GridView que rompen con el nuevo Service Pack 1 para .NET 2.0 y .NET 3.5, y nueva propiedad de campos enlazados
Recientemente instalé el nuevo Service Pack 1 para .NET 2.0 (y .NET 3.5) en un servidor de producción. De repente la aplicación empezó a producir resultados inexplicables en unas rejillas de la aplicación de un cliente. De hecho desaparecían multitud de registros de éstas, aunque las consultas de las que dependían se seguían realizando sin problemas. Era un problema bastante raro y pensamos en un bug del SP1. El caso es que fué una combinación de un error nuestro y un cambio de comportamiento en el SP1 de .NET 2.0. Lo explico porque puede interesarle a bastante gente. De hecho este problema tiene mucho que ver con otro que ya ocmenté en este blog hace unos meses sobre el formato de fechas en los campos enlazados de una rejilla. En ese post además mostraba el código fuente de .NET que involucraba a este problema. En el SP1 han cambiado ligeramente el comportamiento del enlazado a datos de campos DataBound en rejillas. El caso es que el programador de nuestra aplicaicón había puesto ... [Más]

Hotfix para acelerar el desarrollo web con Visual Studio 2008 - Ahora en castellano

Hotfix para acelerar el desarrollo web con Visual Studio 2008 - Ahora en castellano
Hace poco comentaba en este blog que estaba disponible un parche que mejoraba Visual Studio 2008 para el desarrollo Web, y sobre todo aceleraba el ya de por si rápido diseñador Web. En esa ocasión sólo estaba disponible en inglés. Ahora ya está disponible en castellano y otros idiomas también. Estos retrasos en tener en otros idiomas las cosas es lo que hacen que me suela instalar todo en inglés. No deja de ser otra forma de colonialismo de los USA ;-) ¡Hala! Que te sea útil.

En acción de combate real: aquí encontrarás muchas preguntas resueltas, en el Ask The Experts

En acción de combate real: aquí encontrarás muchas preguntas resueltas, en el Ask The Experts
Como seguramente sabrás si eres asiduo lector o lectora de este blog, hace un par de semanas participé como ponente en el lanzamiento de Visual Studio 2008, durante los TechDays, The Evolution Show, en Madrid. Como parte de ese evento, aparte de la consabida ponencia, participé en una sesión de Ask The Experts (ATE) el segundo día por la tarde, enla que tuve oportunidad de conversar con mucha gente (antes,durante y después) sobre todo tipo de cuestiones técnicas relacionadas con el desarrollo Web. El ATE es, básicamente, una lotería. LLegas, y la gente que está allí te empieza a preguntar lo que se le ocurra, así que nunca sabes por dónde te van a salir. En esta ocasión la cosa fue estupenda, y los asistentes hicieron muchas preguntas interesantes. ¡Gracias a todos los que asistísteis! :-) Los buenos chicos de Microsoft grabaron todo el ATE para compartirlo en su página Comando Tomate, la última ida de olla de esos cracks que trabajan en DPE de Microsoft Ibérica. Creo qu... [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