Menú de navegaciónMenú
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

1037 artículos publicados

La mentalidad CSS

Rara es la semana en la que CSS no es objeto de una acalorada discusión online: que si es muy difícil, que si es muy fácil, es impredecible, está anticuado... No sé por qué CSS provoca tantas emociones diferentes en los desarrolladores, pero tengo una idea de por qué a veces puede parecer ilógico o frustrante: necesitas cierta mentalidad o manera de pensar para escribir un buen CSS. La naturaleza declarativa de CSS hace que sea particularmente difícil de "pillarle el truco", especialmente si piensas en él en términos de un lenguaje de programación "tradicional". No se trata solo de conocer todos los detalles técnicos, sino más bien de tener un sentido general acerca de las ideas que subyacen detrás del lenguaje. En este artículo repasamos los puntos claves de esta mentalidad... [Más]

4 reglas para programar bien bajo presión

Un buen programador no se vuelve muy bueno simplemente por escribir un código impresionante. Un buen desarrollador se convierte en uno buenísimo porque se muestra tranquilo y resolutivo en situaciones de presión: hace y continúa haciendo lo que debe hacerse, independientemente de los plazos que se ciernen sobre él. Pero esto es muy fácil de decir y no es tan fácil de hacer. En el día a día en la oficina surgen imprevistos, cambios de requerimientos, improvisaciones, etc. El reto consiste en mantenerse lo suficientemente tranquilo como para gestionar la presión del momento, de modo que se pueda tener éxito de cara a un plazo que asoma las zarpas peligrosamente. Este artículo detalla algunas de las formas en que los buenos programadores manejan las situaciones de presión. [Más]

Integración continua: qué es y por qué deberías aprender a utilizarla cuanto antes

En el mundo del software, palabras como integración continua o despliegue continuo (CI/CD) están a la orden del día. Se da por supuesto que todos los que estamos metidos en este gremio conocemos su significado y sus ventajas, pero la triste realidad es que no es así. Mucha gente no lo conoce y otra lo conoce y no lo aplica. Por esa razón, en el artículo de hoy voy a intentar aclarar las ventajas que nos ofrece el concepto, para aseverar que, sin lugar a dudas, para hacer software de calidad, la integración continua es un requisito necesario y no negociable. En este breve artículo te presentamos qué es y por qué deberías utilizarlo. [Más]

async y await en C#: cómo manejar asincronismo en .Net de manera fácil

Una de las cosas que más te pueden frustrar cuando empiezas en el mundo de la programación es ver que, cuando a base de mucho esfuerzo has conseguido que tu programa funcione, el resultado es que funciona... pero se bloquea la interfaz, no escala bien, etc. Has oído o leído algo sobre "hilos de ejecución" y te decides a probarlos, pero ves que tienes que manejarlos, que sincronizarlos, preguntarles qué tal están de vez en cuando... Un trabajo tedioso y que muchas veces no es necesario porque existe una herramienta para ello. Este es el caso del asincronismo que conocemos hoy en día. Desde hace ya mucho tiempo (desde la versión 5.0 de C#) tenemos a nuestra disposición 2 palabras clave que nos permiten manejar estas situaciones multi-hilo con una lógica y una sintaxis verdaderamente asíncrona. Vamos a verlo... [Más]

Los mejores editores gratuitos de HTML, CSS y JavaScript (2019)

Este post es una actualización de uno que escribí hace 5 años con una lista bastante larga de opciones para crear y editar páginas web, muy orientada especialmente a editores visuales. En la actualidad usar editores visuales no tiene mucho sentido y además el panorama ha cambiado sustancialmente. Tras años de peticiones para que actualizase aquel post, por fin me he decidido a hacerlo (¡siento haber tardado tanto!). Aquí os dejo los motivos del cambio de enfoque y una lista de mis editores favoritos con 3 enfoques/categorías diferentes. ¡Allá vamos! [Más]

Cómo "dockerizar" un entorno de Github Pages

En la serie de artículos de David Charte sobre cómo escribir un blog y generar webs estáticas con Jekyll para GitHub Pages, aprendimos los conceptos y detalles para conseguir un entorno local de desarrollo con Ruby y Jekyll. Profundizando un paso más, vamos a explicar como haciendo uso de Docker podemos olvidarnos de cualquier proceso de instalación y conseguir un entorno fácil, sencillo y listo para compartir entre diferentes equipos sin importar el SO (MacOS/Windows/Linux) y sin "ensuciar" el sistema con instalaciones. En este artículo aprenderemos a crear nuestra imagen base de Docker para finalmente ejecutar nuestro entorno local con un simple docker-compose up. [Más]

Cómo adaptarse a la RGPD con ASP.NET Core

Con la llegada de la RGPD (o GDPR, General Data Protection Regulation) y sus efectos sobre todas las empresas respecto a la privacidad, nos vimos obligados a introducir modificaciones en nuestras aplicaciones web con objeto de soportar los nuevos requisitos de seguridad y privacidad impuestos por las autoridades europeas.
La entrada en vigor, el 25 de mayo de 2018, prácticamente coincidió con el lanzamiento de ASP.NET Core 2.1, que se subió al hype y aprovechó para introducir algunas novedades que, de alguna forma, nos ayudaban a implementar algunos de los requisitos exigidos por esta nueva normativa.
Algunas de estas funcionalidades, que exploraremos en mayor detalle a lo largo de este artículo, se implementan en forma de componentes incluidos en el framework ASP.NET Core, mientras que otras son simples adiciones a la plantilla de proyectos MVC y Razor Pages. [Más]

Cómo crear operadores personalizados para clases propias en C#

En cualquier aplicación .NET lo más normal es tener que crear clases propias para representar entidades y trabajar con ellas. Aunque .NET de serie ofrece muchos operadores (suma, resta... comparaciones, etc...) que funcionan con los tipos por defecto, con nuestros propios tipos no funcionan por defecto. En este artículo vamos a descubrir cómo podemos crear versiones de cualquier operador que permitan trabajar con nuestras propias clases. [Más]