[Remix] Multitud de recursos para .NET

Multitud de recursos para .NET

En los últimos tiempos no he podido escribir con toda la frecuencia que me gustaría, pero no por ello he dejado de trabajar con .NET y coleccionar multitud de recursos que me han permitido mejorar mucho mi conocimiento con este framework.

SharpLab C# interactivo y online

Sharplab captura con texto lenguaje de programación

SharpLab permite correr código C# desde el navegador, además de inspeccionar tanto el resultado como el código intermedio generado. Para mí es una herramienta imprescindible para realizar pruebas de código, prototipar y realizar ejemplos. Además, al ser todo online, puedes compartir el resultado fácilmente con tus compañeros, con solo mandarles tu url.

 

Coyote

Coyote es un proyecto creado por Microsoft que permite resolver uno de los problemas más difíciles de detectar, los errores en aplicaciones multihilo. Si has programado algún tipo de aplicación de este estilo, seguramente conocerás que hay varias técnicas para sincronizar hilos o procesos, como semáforos, locks, monitores, barreras, etc. Sin embargo, crear código que los use sin producir interbloqueos suele ser muy complejo. Por esta razón Microsoft ha desarrollado esta librería, la cual prueba tu código multitud de veces y si detecta algún error te guarda el escenario para que puedas reproducirlo. Reproducir un interbloqueo es muy complicado, porque en desarrollo es difícil tener el tráfico necesario para que se produzca, por eso este recurso me parece excelente y añade una gran mejora al ecosistema .NET

Coyote es uno de los mejores recursos .net para detectar problemas de concurrencia

La imagen superior ha sido obtenida de este artículo en inglés con una guía detallada de su uso.

Leer más

¿Qué es un puntero y cómo se usan?

Que son los punteros y como se usan

Uno de los problemas más comunes a los que se enfrentan los usuarios que empiezan a programar en C o C++, es el uso de los punteros.

¿Qué es un puntero?

Un puntero no es más que una variable, en la cual se almacena una dirección de memoria. Esto parece muy simple, pero luego da muchos quebraderos de cabeza. Al ser una dirección de memoria, le podemos decir a un puntero que en ese lugar donde apunta queremos almacenar un valor, por ejemplo un número.

Para realizar una explicación muy sencilla, vamos a decir que un puntero es como un buzón de correos y nuestra memoria RAM, es similar a una comunidad de vecinos donde hay muchos buzones. Además en esta comunidad en lugar de tener el nombre puesto en el buzón, cada uno va a tener un identificador único.

Explicación simple de los punteros

Como se puede ver en la imagen, hay muchos buzones (zonas de memoria), pero no todas las podemos usar, ya que hay buzones que son nuestros y otros que son de otros vecinos (otros programas).

Leer más

Los 10 mejores paquetes nuget que tienes que instalar

Los 10 mejores paquetes nuget que tienes que instalar

Cuando empiezas un proyecto hay una serie de aspectos comunes que suelen ser resueltos mediante la instalación de una serie de paquetes básicos. Hoy te vengo a hablar de los que yo uso de manera habitual. Aunque lo primero que te recomiendo es configurar bien tu Visual Studio.

 

Logs con Serilog

Serilog el mejor framework de logs para .NET

Para mí Serilog es un paquete indispensable para gestionar los logs de una aplicación en .NET. Este paquete tiene varias características por las que lo considero imprescindible:

  • Gran integración con el framework
  • Está especialmente pensado para usar logs estructurados
  • Configuración flexible, tanto por código como por fichero de configuración
  • Puede exportar o enviar estos logs a muchos proveedores
  • Gran flexibilidad debido a la multitud de extensiones que tiene

Leer más

Haz los mejores layouts y patrones CSS fácilmente

Haz los mejores layouts y patrones CSS fácilmente

Si alguna vez has tenido que realizar un desarrollo de front-end seguramente te habrás dado cuenta que CSS es una tecnología mucho más compleja de lo que parece. En este artículo te traigo un recurso que puede que te sea útil para simplificar tus desarrollos y tener un punto de partida.

Patrones y CSS

Muchas veces el término patrón va unido al de lenguaje de programación, un término que aplicarlo a CSS es quizás demasiado, sin embargo, que no sea un lenguaje de programación, no significa que sea sencillo y carezca de dificultad. Por ello, a lo largo de los años y principalmente en los más recientes, con el crecimiento del desarrollo front-end, han surgido una serie de patrones de diseño que se repiten por doquier:

  • Menús hamburguesa
  • Sistemas de pestañas
  • Avatares
  • Tarjetas

Aunque antes de meterte con estas cuestiones, te recomiendo que revises el artículo de cómo aprender CSS de manera visual.

Leer más

10 lugares con retos y competiciones de programación

10 lugares con retos y competiciones de programación

Una vez que una persona ya ha aprendido lo básico sobre un lenguaje de programación, se suele preguntar qué hacer después. Hoy te enseño 5 sitios donde probar tu nivel y aprender con retos.

¿Por qué realizar retos de programación?

Normalmente en el día a día, se realiza una serie de cosas que suelen ser parecidas, por lo que ya las dominas. Sin embargo, el lenguaje es muy amplio y seguramente desconozcas mucho sobre el mismo. Estas son algunas de las cosas que te pueden aportar los retos y competiciones de programación:

  • Ampliación y asentamiento de los conceptos de programación (algoritmos, estructuras de datos, etc)
  • Mejora en la compresión de tu lenguaje
  • Un camino para aprender otros lenguajes cuando ya sabes programar
  • Descubrir nuevos paradigmas de programación
  • Conocer otras formas de enfrentarte a problemas, que quizás nunca hayas tenido

Leer más

¿Cómo elegir un buen hosting para tu proyecto?

¿Cómo elegir un buen hosting para tu proyecto?

Hoy en día, un gran porcentaje de los proyectos que se desarrollan son páginas webs. Por ello, es muy importante elegir un buen hosting o servidor web donde alojar tu proyecto web. Esto es debido a que un mal servidor hará que tu aplicación deje de funcionar, vaya lenta y multitud de efectos desagradables que querrás evitar. Sin embargo, elegir un buen servidor no es nada sencillo ya que hay que valorar:

  • Localización del servidor: por cuestiones de SEO, latencias, etc.
  • Recursos necesarios: memoria, CPU, espacio de disco, conexiones de red…
  • Escalabilidad: uso por horas, balanceamiento, ajuste de recursos según demanda, etc.
  • Tecnologías que soporten: Windows server o Linux, discos SSD, etc.
  • Versiones que soportan: PHP7 o mayor, para WordPress por ejemplo.
  • Seguridad: hosting compartido, dedicado, etc.

Como ves, muchas características a analizar y por ello, la frase: “el mejor hosting es X“, suele ser algo bastante discutible. Seguramente haya empresas de hosting muy buenas para algunos proyectos, pero que para otro tipo de proyectos se quedan cortas o simplemente no lo soportan. En mi caso, siempre prefiero contratar con una empresa de alojamiento que me permita administrar el servidor, ya que cuento con conocimientos sobre ello y así puedo afinar y ajustar la configuración que busco.

Leer más

Cómo crear patrones CSS fácilmente en menos de un minuto

Cómo crear patrones CSS fácilmente en menos de un minuto
Hoy te muestro un recurso con el que crear patrones CSS con los que conseguir diseños espectaculares rápidamente.

¿Qué es un patrón?

Un patrón no es más que un elemento, que se repite muchas veces. Si hablamos de patrones CSS, en este caso nos referimos a elementos que van a dar estilo a nuestra página web. Una forma bastante habitual de usar estos patrones, es creando fondos visualmente impactantes. Aunque se pueden utilizar en multitud de sitios, como banners, cabeceras, anuncios, etc.

En este caso vamos a crear un mosaico, como fondo de una web sin necesidad de utilizar las nuevas características de CSS3.

Leer más

Las 5 mejores extensiones para Visual Studio

Las 5 mejores extensiones de Visual Studio

Visual Studio es uno de los principales entornos de desarrollo y, desde mi punto de vista, uno de los más completos. Sin embargo, para mí hay 5 extensiones imprescindibles que deberías instalar en Visual Studio.

 

.NET Portability Analyzer

Como seguramente sabrás, el ecosistema de .NET está cambiando a gran velocidad y es preciso adaptarse a las nuevas APIs, si no te quieres quedar atrás a medio plazo. Este cambio, significa que hay métodos, clases y bibliotecas que van a dejar de funcionar y por tanto, hay que realizar migraciones.

Este plugin te va a ahorrar multitud de tiempo, analizando qué partes de tu código actual no son compatibles y si debes cambiar algo. Desde mi experiencia las aplicaciones que necesitan más cambios son las de tipo web, ya que en ASP.NET Core se han eliminado multitud de APIs y compatibilidades con desarrollos legacy.

Leer más

Undefined: nuestro podcast de desarrollo

Undefined: nuestro podcast de desarrollo

Llevaba mucho tiempo detrás de la idea de comunicar cuestiones técnicas desde otro medio que no fuera escrito. En un principio me centré en los eventos y sus conocidas charlas, sin embargo, creo que la difusión de los mismos es bastante reducida. Otra opción era grabar vídeos para YouTube, pero esto requiere demasiado tiempo y actualmente no cuento con él.

La única forma de comunicación que todavía no había descartado, era realizar un podcast. Así que empecé a darle vueltas a esta idea, para conseguir un concepto algo distinto al resto y así surgió Undefined.

¿Qué es Undefined?

Undefined es un podcast de programación con las siguientes características que lo distinguen del resto:

  • El formato es similar a un debate o mesa redonda
  • Si comenta el tema desde la experiencia de los ponentes y no sobre las características puramente técnicas
  • El número de ponentes difiere según temática
  • La temática es de actualidad, intentando abordar conceptos del día a día de desarrolladores comunes
  • Está ligado a la programación, pero es más amplio
  • Su duración es de aproximadamente 1 hora
  • Su publicación es quincenal/mensual
  • Está abierto a colaboraciones e incorporaciones

Leer más

Como crear una base de datos de ejemplo en 5 minutos

Como crear una base de datos de ejemplo en 5 minutos

Uno de los problemas habituales que podemos tener al querer probar una nueva tecnología, es la necesidad de tener una base de datos de ejemplo con información.

¿Qué es una base de datos de ejemplo?

Una base de datos de prueba no es más que un conjunto de datos relacionados, con los que poder trabajar. Esto es muy útil en multitud de casos:

  • Aprender un lenguaje de consultas, como SQL
  • Conocer cómo usar los conectores de base de datos de cada lenguaje
  • Hacer pruebas de rendimiento a nuestra base de datos
  • Testear configuraciones

¿Cómo crear una base de datos de test?

Para crear este conjunto de datos, podemos seguir dos alternativas principales. Crear una copia de datos que actualmente tengamos nosotros ya en una base de datos, o utilizar conjuntos de prueba disponibles en la red. En mi opinión, si se va a utilizar de manera interna tiene sentido utilizar datos propios. Sin embargo, liberar estos datos para que otros los utilicen pueden entrañar problemas de seguridad. Por ello, voy a utilizar la segunda opción.

Leer más