JASoft.org

Cómo permitir la desactivación de los botones de radio

Cómo permitir la desactivación de los botones de radio
Esto, que parece una tontería, no lo es en modo alguno. Cuando colocas un conjunto de botones de radio en una página Web con etiquetas de tipo <input type="radio">, al pulsar sobre cualquiera de ellos, éste queda seleccionado. Al pulsar sobre cualquier otro del mismo grupo, el primero se deselecciona ya que sólo uno de ellos puede estar seleccionado al mismo tiempo. Este es el comportamiento normal y esperado. Sin embargo hay un problemilla que mucha gente se encuentra que con sorpresa no pueden solucionar: ¿qué pasa si quieres desactivarlos todos una vez que ya hay alguno seleccionado?. Prueba por ejemplo esta página. Al abrirla pulsa en los botones de radio de cualquiera de los grupos que contiene. Ahora intenta deseleccionarlos. No funciona. Normalmente estos botones de radio se usan para dar a escoger entre varias opciones excluyentes entre sí, pero también puede darse la posibilidad de que la elección sea 'ninguna'. Lo que suele hacer la gente para solucionarlo es i... [Más]

Permitir la cancelación de peticiones asíncronas AJAX

Permitir la cancelación de peticiones asíncronas AJAX
Una de las ventajas de AJAX, aparte de la posibilidad de simular interfaces de usuario tradicionales de una sola capa, es que sirve para lanzar desde el cliente tareas pesadas en el servidor mientras permitimos seguir trabajando a los usuarios en e la lado cliente (navegador). Pero ¿qué pasa si una tarea tarda demasiado y queremos permitir que nuestros usuarios la cancelen cuando quieran sin tener que esperar a que terminen? ASP.NET AJAX en sus extensiones de JavaScript contempla esta posibilidad de manera sencilla y nos proporciona una forma de conseguirlo con muy poco código. Por ejemplo, arrastra en un formulario Web un ScriptManager y un UpdatePanel. Dentro de éste último coloca una etiqueta y un botón. En el manejador del evento de pulsación del botón detén el hilo de ejecución durante unos segundos para simular una tarea que tarda mucho tiempo en ejecutarse y despues pon algo en la etiqueta para manifestar que se ha terminado la operación. Finalmente añade un control UpdateProg... [Más]

Consolidación de Scripts para mejora de rendimiento

Consolidación de Scripts para mejora de rendimiento
Una de las mejoras sencillas y poco llamativas en primera instancia que ha incluido el Service Pack 1 de .NET 3.5 y Visual Studio 2008 es la consolidación de Scripts. Sin embargo es algo interesante que conviene conocer. Se trata básicamente de evitar que el navegador tenga que descargar multitud de pequeños archivos de Script desde el servidor, sustituyéndolos de manera automática por una sola descarga combonada, que es más eficiente y rápida como demostraré enseguida. Es la típica característica que va a pasar inadvertida para la mayoría de los programadores Web pero que es interesante, y por eso me ha apetecido contarla en detalle aquí. Para ello he desarrollado un ejemplo muy simple pero que da una idea de la utilidad de esta característica. En el siguiente vídeo muestro cómo funciona la consolidación de Scripts mediante las nuevas etiquetas CompositeScript. También muestro un control desconocido pero interesante y pensado para ayudarnos a trabajar con esta característica: el co... [Más]

Cómo detectar su nuestra página dispone de un ScriptManager o no

Cómo detectar su nuestra página dispone de un ScriptManager o no
Hay veces que necesitaremos usar programáticamente un ScriptManager dentro de una página, por ejemplo para añadir dinámicamente referencias a Scripts o a servicios Web o WCF. Para ello deberemos automatizar el control ScriptManager que toda página AJAX debe tener, pero ¿qué pasa si no existe ese control? Para asegurarnos de que el control está añadido a la página y que podemos utilizarlo podemos emplear el método estático GetCurrent de la clase ScriptManager para verificar su existencia, así: public static bool IsScriptManagerPresent(Page p) { ScriptManager Smgr = ScriptManager.GetCurrent(p); return (Smgr != null); } Con esta sencilla función podremos averiguar si hay un Scriptmanager presente o no. Es interesante notar que este método funciona y devuelve el valor correcto incluso cuando el ScriptManager no está presente en la página actual sino en la página plantilla (Master Page) que la contiene. No obstante es importante darse cuenta de que en ese caso devovlerá true i... [Más]

Cómo usar Fiddler con el servidor de desarrollo de ASP.NET

Cómo usar Fiddler con el servidor de desarrollo de ASP.NET
En mi anterior post comentaba los peligros de usar alegremente los controles UpdatePanel de AJAX y mostraba con la excelente herramienta Fiddler cómo eran las peticiones que se enviaban y recibían. Alguien me ha preguntado cómo hago para poder utilizar Fiddler con el servidor Web de desarrollo que viene con Visual Studio (conocido comunmente como Cassini), ya que por mucho que actives Fiddler por defecto no captura las peticiones hechas a dicho servidor. El servidor de desarrollo sólo admite peticiones locales y accedemos a ése a través de una URL del tipo: http://locahost:3572/miapp Eligiendo un puerto aleatorio de cada vez. Cuando lanzas Fiddler éste se coloca como proxy de Internet Explorer interceptando todas las llamadas que hace éste a las páginas Web. Lo que ocurre es que IE cuando detecta que una llamada se va a hacer en local (contra localhost vamos) automáticamente hace caso omiso de los posibles proxy que hubiera y lanza la petición directamente, de ahí que Fiddler no... [Más]

Los peligros del Update Panel

Los peligros del Update Panel
Las tecnologías de Microsoft han adolecido tradicionalmente de un problema que es a la vez, paradójicamente, su mayor ventaja: la sencillez aparente de uso. Pienso que  la clave del éxito de Windows, Office y otros muchos productos de la casa de Redmond ha sido y es su sencillez de uso. Pero esta misma sencillez de uso se convierte también un arma de doble filo: hace que la gente se quede en la superficie de las cosas, sin comprender bien las consecuencias de lo que hacen. Ha pasado toda la vida con las versiones de servidor de Windows, y ha pasado y pasa con las herramientas de desarrollo. Al ser fáciles de configurar y utilizar la gente enseguida "controla" la tecnología correspondiente, lo cual es un error grave. En este caso me estoy refiriendo en concreto a la tecnología ASP.NET AJAX que tanto facilita el desarrollo de aplicaciones de interfaz avanzada para la Web. Desde mi punto de vista el Update Panel es una obra de arte que debería llevar un premio al diseño de... [Más]

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]

Trabajo con JavaScript en Visual studio 2008: lo que no vísteis en el Evolution Show

Trabajo con JavaScript en Visual studio 2008: lo que no vísteis en el Evolution Show
Hola a todos: Como sabéis la semana pasada estuve en el Evolution Show en Madrid, en la presentación de Visual Studio 2008, Windows Server 2008 y SQL Server 2008. De hecho estuvimos un montón de tutores de campusMVP dando las ponencias, como ya os había comentado, y tuvimos un stand de Krasis/campusMVP por el que se pasó  mucha gente. Lo pasamos estupendamente, y nos visitaron muchos amigos y alumnos, a los que me encantó saludar. Gracias :-) Los que tuvísteis ocasión de ir a mi ponencia sobre desarrollo Web sabéis los problemas que tuve. Mi portátil al que le acababa de instalar el SP1 de Windows Vista se negó a trabajar y se rompió miserablemente (pantallazo azul, aunque no lo viéseis, y eso que el día anterior por la tarde había ido a comprobar que funcionaba bien). Por lo visto (me enteré luego) al instalar el SP1 de Vista se ponen otra vez los controladores de Microsoft y quita los que tu tuvieses, por lo que si como en micaso el controlador del fabricante es más reciente y... [Más]

AJAXInterceptor: convierte tus aplicaciones Web a AJAX sin escribir una sola línea de código

AJAXInterceptor: convierte tus aplicaciones Web a AJAX sin escribir una sola línea de código
Estos días he estado trabajando unas cuantas horas de mi (poco) tiempo libre en una idea que tuve ya hace bastante tiempo. Se puede resumir con sólo una frase: crear una pequeña biblioteca JavaScript que, añadida a tu página Web (PHP, ASP, ASP.NET...) la dotará automáticamente de funcionalidad AJAX, sin que tengas que escribir ni una sola línea de código. Pensé que iba a resultarme mucho más dificil, pero lo cierto es que ha sido bastante fácil de conseguir. Ahora ya la puedo presentar para que el que quiera se descargue el resultado: AJAXInterceptor 0.5 Beta. Sólo con añadir este pequeño módulo JavaScript al final de tus páginas consigues que los envíos de tus formularios se intercepten (de ahí el nombre), y en lugar de enviarse la petición al servidor de la manera normal, se hacen de manera asíncrona y en un modo suave estilo AJAX. Dado que es una biblioteca de lado de cliente funcionará con cualquier tecnología de servidor: ASP.NET, PHP, JSP, Classic ASP... e incluso con archivo... [Más]

AJAXInterceptor: AJAX-enable your web apps without writing a single line of code

AJAXInterceptor: AJAX-enable your web apps without writing a single line of code
These last days I've been working a few hours of my spare time on a idea I had long time ago. It can be summed up in just one sentence: to write a small JavaScript library that added to your Web page (PHP, ASP, ASP.NET...) will enable it to be AJAX-enabled without you needing to write a single line of code. I thought that it would be more difficult, but the fact is that it's been quite easy to achieve. Now I can present it for you to freely download the result: AJAXInterceptor 0.5 Beta. Just by adding this small JavaScript module to the end of your web pages, you get your form's submissions intercepted and, instead of sending request to the server in the usual way, they are done asynchronously and in an AJAX-style smooth way. As long as it is a client-side library it will work with any server technology: ASP.NET, PHP, JSP, Classic ASP... and even with local HTM files. However I've only tested it against ASP.NET and ASP 3.0 applications (please, drop me a line if you test it with o... [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