JASoft.org

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

MENÚ - JASoft: JM Alarcón

¿Cómo averiguar qué versión o versiones de la plataforma .NET tengo instaladas en mi equipo?

A veces, quieres ejecutar o instalar una aplicación en una nueva máquina o en un servidor que no controlas, y tu aplicación escrita en .NET necesita una versión determinada. Lo normal que cualquiera se preguntarías ¿dónde se ven las versiones instaladas? Seguro que hay un sitio en el que se muestra esta información o, en el peor de los casos, se puede lanzar algún comando desde la terminal del sistema que nos lo diga ¿verdad? Pues en .NET 4.x o anterior, o sea, .NET "tradicional" no hay nada similar. En este post te hablo de una utilidad muy sencilla que he creado para facilitar averiguar esta información. [Más]

Git: establecer WinMerge como herramienta de diferenciación de archivos

En este post te hablo de algunas herramientas muy interesantes para trabajar con control de código fuente (con Git en concreto), y para comparar archivos y carpetas, y te comento cómo puedes hacer para utilizar una de ellas, WinMerge, para ser utilizada por Git como herramienta de diferenciación externa. Aunque en el 95% de los casos me arreglo con lo que trae de serie VSCode + GitLense, a veces tener a mano esta otra opción es muy interesante también. Veamos cómo hacerlo... [Más]

Cómo arreglar definitivamente la búsqueda de Windows

Seamos sinceros: la búsqueda que trae Windows integrada siempre ha sido tremendamente mala. Aunque ahora tenemos a Cortana y además nos da resultados de búsqueda de aplicaciones, ajustes... y hasta de Internet, al final lo que casi todos queremos es encontrar el maldito archivo que nos hace falta. Y en eso siempre se ha quedado corta por desgracia. Yo hace años que he resuelto el problema. ¿Cómo? Muy sencillo: pasando totalmente de la búsqueda de Windows y utilizando herramientas alternativas. En concreto utilizo dos, con propósitos totalmente diferentes y que cubren todas mis necesidades de búsqueda. Te las cuento a continuación. [Más]

Windows 10: deshabilitar fondo desenfocado en la pantalla de login

Recientemente Microsoft ha lanzado una nueva versión "grande" de Windows conocida como Windows 10 "1903". La verdad es que desde el punto de vista del usuario trae muy pocas cosas, y de las pocas que trae algunas son un tanto irritantes. Por ejemplo, la que nos ocupa hoy... A mi me encantan las fotografías que saca por defecto Windows 10 como fondo de pantalla de login. Cada día ves un lugar del mundo diferente y las fotos suelen ser muy buenas. Lo que ocurre es que en Windows 10 1903, en cuanto pulsas una tecla y salta el diálogo de autenticarse en el sistema le mete un efecto de desenfoque enorme y no te deja ver la foto de fondo. No te facilitan desactivarlo, así que a continuación te comento cómo lograrlo... [Más]

Cómo gestionar las teclas rápidas en Visual Studio Code: Guía visual definitiva

Visual Studio Code se ha convertido en poco tiempo en uno de los editores de código más utilizado del mundo (incluso puede que el que más), sobre todo entre los desarrolladores Web, aunque permite programar con casi cualquier lenguaje o plataforma. Tiene muchas virtudes, pero uno de los factores de su éxito es también, sin duda, que es muy personalizable. Es fácil adaptarlo a los gustos personales en casi todos sus aspectos. Y si hay algo que adoramos los desarrolladores son las teclas rápidas. Raro es el que usa el ratón para todo y lo más habitual es preferir las teclas rápidas porque, como su propio nombre indica, ahorran mucho tiempo. En esta guía te cuento cómo sacarle todo el partido a esta personalización. [Más]

Descartes en C# 7: el uso que no conocías para el guión bajo

En muchas ocasiones, cuando trabajas con la plataforma .NET debes forzosamente pasar parámetros o recibir resultados de llamadas que en realidad no necesitas para nada. Muchas veces puedes hacer caso omiso de ellos y simplemente no declararlos, pero lleva a código menos mantenible y "feo". En otras ocasiones no puedes eludir declararlos aunque luego no vayas a utilizarlos en absoluto. Para gestionar esta casuística en C# se introdujo una nueva característica para crear precisamente eso: descartes. Para evitar tener que declarar cosas que no vamos a utilizar. Vamos a verlo... [Más]

Intl: la API de localización nativa de JavaScript

Como seguramente ya tengas claro, la traducción y la localización son conceptos relacionados pero muy distintos. Para traducir tu aplicación basada en Web mucho me temo que no te queda más remedio que usar archivos de lenguaje de algún tipo y alguna biblioteca especializada. Sin embargo para la localización, es decir, la adaptación de la aplicación a las particularidades de cada idioma, todo lo que necesitas viene incluido con tu navegador. Para casi todas las tareas comunes relacionadas con la localización de aplicaciones, JavaScript nos proporciona ayuda integrada y no vamos a necesitar utilizar bibliotecas externas que añaden complejidad, peso y que además con toda seguridad no serán tan buenas como el sistema operativo para estos menesteres. Vamos a conocer cómo sacarle partido... [Más]

Solucionar el error "Thread was being aborted" en ASP.NET

En ASP.NET ¿has visto alguna vez el error System.Threading.ThreadAbortException? ¿Aunque tus usuarios no se quejan de ningún error, en tus logs no dejan de aparecer errores com este? ¿Si ves tu código no hay nada raro, como mucho una simple redirección a otra página, pero se sigue produciendo? Si contestas que sí a alguna o a todas estas preguntas, a continuación te cuento por qué pasa y cómo solucionarlo. [Más]

Solución a la conexión sin identificar y pública en Windows Server

En ocasiones, cuando se reinicia el sistema se fuerza un reconocimiento de las redes a las que está conectado el servidor. Cuando una de ellas no tiene acceso a Internet, Windows la clasifica como una red sin identificar. Generalmente esto ocurre con la que se conecta a la red local. ¿Y cuál es el problema de esto? Pues que a este tipo de redes, por defecto, Windows las clasifica como redes públicas. Y si tienes un servidor, lo más común es que tengas el cortafuegos configurado de manera que las redes públicas tengan muchas restricciones, y las redes privadas o de dominio muchas menos. Vamos a ver cómo evitar el problema. [Más]

Creando diálogos y pop-ups nativos con HTML: El elemento "dialog" de HTML 5.2

Una necesidad común en casi cualquier aplicación Web es la de mostrar diálogos al usuario. Se trata de los típicos "pop-ups" que surgen en la aplicación de vez en cuando con múltiples propósitos: notificaciones, preguntar algo al usuario, mostrar los detalles de un registro en una base de datos... Casi cualquier cosa que se te pueda ocurrir. Crear algo como esto mediante el uso de capas y un poco de JavaScript no es muy complicado, pero tiene bastantes "pegas". Por eso el W3C, encargado de los estándares Web, definió en HTML 5.2 un nuevo elemento específicamente pensado para esta tarea: <dialog> y que tiene muchas aplicaciones. Vamos a ver cómo sacarle todo el partido. [Más]