Autor en Google+
Saltar al contenido

Artículos, tutoriales, trucos, curiosidades, reflexiones y links sobre programación web ASP.NET Core, MVC, Blazor, SignalR, Entity Framework, C#, Azure, Javascript... y lo que venga ;)

17 años online

el blog de José M. Aguilar

Inicio El autor Contactar

Artículos, tutoriales, trucos, curiosidades, reflexiones y links sobre programación web
ASP.NET Core, MVC, Blazor, SignalR, Entity Framework, C#, Azure, Javascript...

¡Microsoft MVP!
martes, 21 de julio de 2015
Compartir:
En versiones anteriores de ASP.NET, podíamos utilizar la expresión HttpContext.Current.IsDebuggingEnabled para determinar si una aplicación web está ejecutándose en modo depuración o no, lo cual podía ser útil a la hora de introducir porciones de código específicas para cada caso.

Compilation debug en Web.configEl valor de esa propiedad estaba directamente relacionado con el de la propiedad debug del tag <compilation> presente en el archivo de configuración web.config.

Como sabemos, en ASP.NET Core esto no sería posible por tres motivos:
Bien, ¿y cómo podemos introducir código dependiente del entorno de ejecución? Pues tenemos varias fórmulas.

Compartir:
martes, 14 de julio de 2015
Compartir:
C#Desde luego, Stackoverflow, además de salvarnos la vida en numerosas ocasiones, es una fuente infinita de curiosidades, y hoy vamos a ver una que me ha llamado la atención últimamente, aunque sea un tema que lleva circulando por la red muchos años.

El asunto era que un usuario que quería saber cuál era el nombre del operador “-->” existente en muchísimos lenguajes, como podéis comprobar en un código perfectamente válido y compilable en C# como el siguiente:
static void Main(string[] args)
{

    int x = 10;
    while (x --> 0) // while x goes to 0
    {
        Console.Write(x);
    }
    // Shows: 9876543210
}

¿Y cómo se llama ese operador? No puedo negar que al principio me quedé un poco descolocado, como probablemente os haya ocurrido a algún despistado más, pero al leer las respuestas el tema quedaba bien claro que es sólo una cuestión de legibilidad de código, o mejor dicho, de falta de ella, acompañado de un comentario algo desafortunado que incita a la confusión. Complejidad innecesaria en cualquier caso.

En realidad, se trata de dos operadores seguidos, autodecremento y comparación, utilizados de forma consecutiva y abusando de las reglas de precendencia. Sin duda habría quedado mucho más claro de cualquiera de estas formas:
// Mejor: usar los espacios apropiadamente
while (x-- > 0) 
{
    Console.Write(x);
}

// Mucho mejor: usar paréntesis para dejar explícitas las precendencias
while ((x--) > 0) 
{
    Console.Write(x);
}

// Lo más claro: no liarse con expresiones complejas
while (x > 0) 
{
    x--;
    Console.Write(x);
}
WFTs/minutoEste tema lo publicó también Eric Lippert hace algunos años como broma del fool’s day, anunciando un operador que habían añadido a última hora a C# 4.0, aunque al parecer es algo que ya circulaba antes por la red.

En fin, lo que me resultó curioso y quería mostraros en este post es cómo unos simples espacios pueden hacernos ver operadores donde no los hay, introducirnos dudas incluso en algo tan conocido como son los operadores de nuestro lenguaje de programación favorito, y hacer que de un vistazo no entendamos el código que tenemos delante.

Pero ya sabéis: si queréis parecer muy inteligentes y aumentar vuestro ratio de WTFs/minuto en la próxima revisión de código, no dudéis en usarlo ;)

Y si queréis ser ya los reyes de vuestro equipo, tampoco dudéis en usar el operador inverso “<--" que sube un peldaño adicional en el nivel de absurdo:
static void Main(string[] args)
{

    int x = 10;
    while (0 <-- x) // while 0 is approached by x
    {
        Console.Write(x);
    }
    // Shows: 987654321
}

Publicado en Variable not found.
Compartir:
lunes, 13 de julio de 2015
Compartir:
Compartir:
martes, 7 de julio de 2015
Compartir:
Enlaces interesantesAhí van los enlaces recopilados durante la semana pasada, espero que os resulten interesantes :-)

Oportunidades

.Net

Compartir:
lunes, 6 de julio de 2015
Compartir:
MVP 2015

Estimados amigos:

Tengo la inmensa satisfacción de informaros de que, de nuevo este año, he sido distinguido como MVP (Most Valuable Professional) de Microsoft por las contribuciones realizadas a la comunidad técnica durante el pasado año en temas relacionados con ASP.NET/IIS.

Cinco años consecutivos recibiendo este galardón, y sintiéndome cada vez más afortunado y feliz por seguir perteneciendo a este grupo en el que, además de unas personas maravillosas, podemos encontrar auténticos gurús de las tecnologías de Microsoft que se esfuerzan día a día en compartir sus conocimientos con la comunidad.

Muchas gracias a todos los que seguís haciendo este sueño posible, comenzando por vosotros, queridos amigos de Variable not found. Muchas gracias también a Cristina González y el equipo del programa MVP en Microsoft, y a todos los compañeros con los que he tenido la fortuna de coincidir en esta aventura y con los disfruto aprendiendo cada vez que tenemos oportunidad de vernos, muchas veces en la otra parte del mundo ;)

Ah, y por supuesto aprovecho para enviar un abrazo y muchas felicidades a los recién nombrados MVP de julio, tanto nuevos como reincidentes, entre los que puedo presumir de tener muy buenos amigos :)

Nos seguimos viendo por aquí ;)

Compartir: