JASoft.org

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

MENÚ - JASoft: JM Alarcón

Auto-clausuras en JS: el fundamento de las propiedades privadas

En mi anterior post hablé sobre el concepto de clausuras en Java_Script (JS a partir de ahora), y de cómo les podíamos sacar partido en programación avanzada en este lenguaje. En esta ocasión voy a rematar aquello comentando la existencia de auto-clausuras, un concepto muy interesante al que se le puede sacar partido para conseguir algo a priori imposible en este lenguaje: miembros privados en clases JS. En JS podemos definir una clase de la manera convencional, tratando al mismo tiempo de encapsular el acceso a las variables privadas simulando la existencia de propiedades con funciones 'get' y 'set', por ejemplo así: function coche() { var modelo = "NINGUNO"; this.getModelo = function () { return modelo; }; this.setModelo = function (sModelo) { modelo = sModelo.toUpperCase(); }; } var miCoche = new coche; miCoche.setModelo("Ferrari"); alert(miCoche.getModelo()); //Muestra FERRARI En este caso hemos definido... [Más]

Closures en JavaScript: una herramienta muy útil

JavaScript es un lenguaje de programación que, a pesar de los años que tiene, cada vez está más de moda y se utiliza más (y no sólo para la web). En los últimos años está viviendo una época dorada que pocos quizá le vaticinaron, gracias sin duda a la popularización de las técnicas AJAX tan necesarias para la Web 2.0. Desde mediados de los '90 cualquier programador Web tenía que conocer como mínimo sus fundamentos (de ahí que mi libro sobre el tema vendiera en el año 2.000 un número indecente de ejemplares y fuera de los más vendidos de Amazon en su categoría en todos los idiomas). Sin embargo, lo cierto es que poca gente va más allá de su superficie, y la mayor parte de los programadores Web se quedan en esos fundamentos. Incluso muchos programadores lo rechazan y lo consideran un lenguaje de segunda categoría por ser debilmen... [Más]

¿Timers o Threads para ejecución de código en servicios Windows?

En Krasis Press/campusMVP hemos publicado un nuevo artículo corto. Esta vez nuestro tutor Alberto Población trata de responder a una pregunta muy común entre los programadores que se aventuran a crear por primera vez un servicio Windows, y es "¿Qué es mejor para ejecutar el código de un servicio Windows? ¿Un Timer o crear hilos?". La respuesta no es tan clara como pueda parecer... ARTÍCULO: ¿Timers o Threads para ejecución de código en servicios Windows? ¡Esperamos que te sea útil!

ARTÍCULO: Búsqueda de ensamblados en tiempo de ejecución en .NET

Hoy he escrito un pequeño artículo sobre la carga de ensamblados por parte del motor de tiempo de ejecución de .NET. Se trata de algo que no muchos programadores de .NET tienen totalmente claro y que creo que puede resultar de interés general. En este documento explico los tipos de ensamblados que tenemos en .NET, cómo el motor de tiempo de ejecución de la plataforma busca los diferentes ensamblados que usan nuestras aplicaciones, y cómo podemos incluir referencias a ensamblados de la GAC desde Visual Studio. Finalmente, como apéndice, explicaré un truco para poder ver ensamblados propios en el diálogo de agregar referencia de Visual Studio. Como ves no hay más que ensamblados por todas partes ;-) Lo he colgado en la página en Scribd de Krasis Press, y lo puedes leer on-line y también descargártelo. ARTÍCULO: Búsqueda de ensamblados en tiempo de ejecución en .NET ¡Espero que te resulte útil!

WindowUP: coloca cualquier ventana de Windows por encima de las demás

Ayer necesité hacer precisamente eso: que una pequeña ventana que estaba utilizando se quedase por encima de todas las demás para tenerla siempre a la vista. Y de repente me acordé que hace muuuuchos años había desarrollado un programa para hacer precisamente eso. Así que rebusqué en el baúl de los recuerdos y encontré esta joyita. ¡Qué recuerdos! Se trata de un programa que hice nada más y nada menos que hace 12 años, en 1997, y que está escrito ¡en Visual Basic 3!. Me entran escalofríos sólo de recordarlo. De aquellas ya había por lo menos VB5, asi que seguramente lo hice con VB3 porque entonces casi todos los ordenadores con Windows 95 tenían las DLLs de tiempo de ejecución de VB3 incluidas, y era más "portable". Por fortuna tenía una versión compilada para usarlo, porque, si no, ni de broma me iba a poner a buscar una copia deVB3 para recompilarlo :-) Lo alucinante es que funciona igual de bien en Windows 7 hoy en día. Eso es compatiblidad hacia atrás, jeje El programa WindowUP ... [Más]

Detener un Timer de ASP.NET AJAX

Los temporizadores (Timer) de las extensiones de AJAX para ASP.NET son muy útiles. Nos permiten ejecutar una determinada tarea cada cierto tiempo, provocando postbacks de la página  (tanto completos, como parciales) en intervalos regulares. Un único Timer colocado en la página puede conseguir que se refresquen todos los UpdatePanels disponibles o cada uno de manera individual. Lo habitual es colocarlos en la página y olvidarnos de ellos. Pero ¿qué pasa si queremos poder pararlos y activarlos a voluntad? La cosa tiene más complicación de la que parece a simple vista. Lo primero que se nos ocurre a cualquiera es que, dado que tiene una propiedad Enabled para activarlo y desactivarlo bastará con establecerla en False para conseguir el efecto deseado. Si lo hacemos desde un postback asíncrono enviado desde dentro de un UpdatePanel, ni se notará en la página, ¿no?. Lo malo de esta idea es que, simplemente, no funciona. El motivo es que en un refresco parcial de página, aunque s... [Más]